Merhaba,
aşağıdaki stratejideki gibi alış ve satış seviyelerini belirleyip deneyebilirsiniz.
oninitcomplate methodunu kendi seviylerinize göre düzenleyiniz.
1800-> kademe
Quantity-> alış satış adedi,
orderSide-> emir yönü alış için OrderSide.Buy, satış için OrderSide.Sell olmalı
Yon-> gönderilen emrin debug çıktışı için "Alış","Satış" yazılabilir yada isteneilen başka birşey çok önemli değil
kademeList[1800] = new orderDetail{
Quantity = 2, orderSide = OrderSide.Buy, Yon = "Alış"
};
burada şunada dikkat edilmeli fiyat belirlediğiniz seviyeye eşit olmama durumlarından dolayı fark diye bir değişken var belirlediğiniz seviyenin belirlenen fark kadar aşağısı ve yukarısını dahil eder.
istediğiniz gibi çalıştığından emin olmadan canlıda çalıştırmayınız.
deneme hesabında küçük miktarlarla deneyiniz.
using System;
using System.Collections.Generic;
using System.Linq;
using Matriks.Data.Symbol;
using Matriks.Engines;
using System.Windows.Media;
using Matriks.Indicators;
using Matriks.Symbols;
using Matriks.AlgoTrader;
using Matriks.Trader.Core;
using Matriks.Trader.Core.Fields;
using Matriks.Trader.Core.TraderModels;
using Matriks.Lean.Algotrader.AlgoBase;
using Matriks.Lean.Algotrader.Models;
using Matriks.Lean.Algotrader.Trading;
namespace Matriks.Lean.Algotrader
{
public class KademeliAlSAtList : MatriksAlgo
{
[SymbolParameter("GARAN")]
public string Symbol;
[Parameter(SymbolPeriod.Min5)]
public SymbolPeriod SymbolPeriod;
[Parameter(25)]
public decimal fark;
decimal aktifKademe = 0;
public class orderDetail
{
public decimal Quantity;
public OrderSide orderSide;
public string Yon;
}
Dictionary<decimal, orderDetail> kademeList = new Dictionary<decimal, orderDetail>();
public override void OnInit()
{
AddSymbol(Symbol, SymbolPeriod);
SendOrderSequential(true);
}
public override void OnInitComplated()
{
kademeList[1800] = new orderDetail
{
Quantity = 2, orderSide = OrderSide.Buy, Yon = "Alış"
};
kademeList[1900] = new orderDetail
{
Quantity = 3, orderSide = OrderSide.Sell, Yon = "Satış"
};
kademeList[2000] = new orderDetail
{
Quantity = 2, orderSide = OrderSide.Buy, Yon = "Alış"
};
kademeList[2100] = new orderDetail
{
Quantity = 2, orderSide = OrderSide.Sell, Yon = "Satış"
};
}
public override void OnDataUpdate(BarDataCurrentValues barDataCurrentValues)
{
var close = barDataCurrentValues.LastUpdate.Close;
var tut = kademeList.FirstOrDefault(x => x.Key >= close - fark && x.Key <= close + fark);
if (tut.Value != null && aktifKademe != tut.Key)
{
aktifKademe = tut.Key;
SendMarketOrder(Symbol, tut.Value.Quantity, tut.Value.orderSide);
Debug(tut.Value.Yon + " emri gönderildi. Teiklenen fiyat: "+close);
}
}
public override void OnOrderUpdate(IOrder order)
{
if (order.OrdStatus.Obj == OrdStatus.Filled)
{
}
}
}
}
Unblocked Games offering a wide range of experiences: action, puzzle, platform, racing, clicker mechanics, strategy, sports, even horror.
https://unblocked1games.github.io