M
marakano
New Member
NinjaTrader
- #1
Привет !
Проблема в следующем:
Прописываю условия при которых выставляется лимитник на покупку(продажу) через EnterLongLimit и все работает цена подходит и ордера открываются и споровождаются, но мне надо чтоб лимитник удалялся например через 10 баров.
Вопрос:
Как это прописать, Help заглядывал CancelOrder(), пытался примеры прописать у себя в стратегии так вообще ничего не выставляется и не убирается.
Кто в теме подскажите ....
Код очень простой:
protected override void OnBarUpdate()
EntryHandling = EntryHandling.UniqueEntries;
ManageOrders();
if (Position.MarketPosition != MarketPosition.Flat) return;
if (Time[0]>=dt_begin && Time[0]<=dt_end && Position.MarketPosition==MarketPosition.Flat && FirstTickOfBar )
{
//LONG
if (Close[2]
&& Close[1]>Close[2]
&& Close[0]>Close[1])
{
double half=(((Low[1]+High[1])/2)+Low[1])/2;
EnterLongLimit(0, true, 1, half, "LongLimit1");
EnterLongLimit(0, true, 1, half, "LongLimit2");
GoLong();
}
}
if (Time[0]>=dt_begin && Time[0]<=dt_end && Position.MarketPosition==MarketPosition.Flat && FirstTickOfBar)
{
//SHORT
if (Close[2]>Open[2]
&& Close[1]
&& Close[0]
{
double half=(((High[1]+Low[1])/2)+High[1])/2;
EnterShortLimit(0, true, 1, half, "ShortLimit1");
EnterShortLimit(0, true, 1, half, "ShortLimit2");
GoShort();
}
}
Проблема в следующем:
Прописываю условия при которых выставляется лимитник на покупку(продажу) через EnterLongLimit и все работает цена подходит и ордера открываются и споровождаются, но мне надо чтоб лимитник удалялся например через 10 баров.
Вопрос:
Как это прописать, Help заглядывал CancelOrder(), пытался примеры прописать у себя в стратегии так вообще ничего не выставляется и не убирается.
Кто в теме подскажите ....
Код очень простой:
protected override void OnBarUpdate()
EntryHandling = EntryHandling.UniqueEntries;
ManageOrders();
if (Position.MarketPosition != MarketPosition.Flat) return;
if (Time[0]>=dt_begin && Time[0]<=dt_end && Position.MarketPosition==MarketPosition.Flat && FirstTickOfBar )
{
//LONG
if (Close[2]
&& Close[0]>Close[1])
{
double half=(((Low[1]+High[1])/2)+Low[1])/2;
EnterLongLimit(0, true, 1, half, "LongLimit1");
EnterLongLimit(0, true, 1, half, "LongLimit2");
GoLong();
}
}
if (Time[0]>=dt_begin && Time[0]<=dt_end && Position.MarketPosition==MarketPosition.Flat && FirstTickOfBar)
{
//SHORT
if (Close[2]>Open[2]
&& Close[1]
double half=(((High[1]+Low[1])/2)+High[1])/2;
EnterShortLimit(0, true, 1, half, "ShortLimit1");
EnterShortLimit(0, true, 1, half, "ShortLimit2");
GoShort();
}
}