• Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG.
    Обратите внимание, что в настоящее время CQG не высылает логин и пароль на электронные адреса от mail.ru, bk.ru, list.ru, inbox.ru, поэтому необходимо повторить регистрацию с электронного адреса от другого домейна (yahoo, gmail, и тд).
  • NinjaTrader с зарекомендовавшим себя брокерским сервисом предоставляет наилучшие условия для фьючерсной торговли, включая:
    • Низкие комиссии: Экономьте на торгах через низкие и понятные комиссии
    • Низкая маржа: Всего $50 для микро контрактов
    • Низкие минимумы: Откройте счет от $100
    • Бесплатная платформа: Включает весь необходимый функционал для торговли в реале
  • Уважаемые посетители форума!
    При регистрации на форуме отправляется письмо подтверждения на ваш почтовый ящик, если письмо не пришло, просьба проверить папку "спам" вашего почтового ящика, возможно письмо попало туда.
  • Сколько я реально плачу комиссии?
    Подробнее по ссылке

Нужна помощь с отменой лимитных ордеров

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();

}


}
 
N

NT8

Well-Known Member
NinjaTrader
  • #2
Запоминать номер бара при выставлении ордера (CurrentBar).
И на каждом следующем баре проверять разницу между текущим баром и запомненным.
 
  • Like
Реакции: marakano
M

marakano

New Member
NinjaTrader
  • #3
Подскажи где ошибка ?

public class Кed : Strategy
{
#region Variables
private IOrder myEntryOrder = null;
private int barNumberOfOrder = 0;
#endregion


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;
myEntryOrder = EnterLongLimit(0, true, 1, half, "LongLimit1");
myEntryOrder = EnterLongLimit(0, true, 1, half, "LongLimit2");
barNumberOfOrder = CurrentBar;

GoLong();

}
if (CurrentBar > barNumberOfOrder + 10)
CancelOrder(myEntryOrder);

}
 
N

NT8

Well-Known Member
NinjaTrader
  • #4
Тебе еще нужно запоминать что ордер выставлен. Ну и проверку на отмену ордера нужно делать до его выставления а не после.
 
  • Like
Реакции: marakano
M

marakano

New Member
NinjaTrader
  • #5
Может есть пример фаил или хоть в сторону каких методов и функций смотреть ?
 
Alexander

Alexander

Administrator
Команда форума
Помогли тебе - помоги другим!
  • #6
marakano, просьба к вам и всем программистам, код заключать в соответствующие теги, который есть в редакторе сообщений форума.

 
  • Like
Реакции: marakano
N

NT8

Well-Known Member
NinjaTrader
  • #7
Да почти все правильно. Надо логику немного подправить и всё.
 
  • Like
Реакции: marakano
M

marakano

New Member
NinjaTrader
  • #8
NT8 сказал(а):
Да почти все правильно. Надо логику немного подправить и всё.

Спасибо именно в логике и было проблема ! Все работает просто отлично !
 
Верх Низ