1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

  2. Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG, и ни чем они не отличаются друг от друга.
  3. Уважаемые форумчане!
    Перед тем как написать пост или создать тему с просьбой оказания технической поддержки, вам нужно указать как можно больше информации по теме, к примеру: счет реал или демо, версия Windows, версия NinjaTrader, прикрепить скрин с проблемой и прочее.
    Не забывайте воспользоваться поиском на форуме, возможно уже есть решение вашей проблемы.

    Подробнее по ссылке

    Скрыть объявление
  4. Уважаемые трейдеры!
    NinjaTrader 8 официально начала свой путь!
    Ветка форума для обсуждения по ссылке.
    Скрыть объявление
  5. Сколько я реально плачу комиссии?
    Подробнее по ссылке
    Скрыть объявление

EnterLong

Тема в разделе "Вопросы программирования на NinjaScript", создана пользователем crn, 27 сен 2015.

  1. crn

    crn New Member NinjaTrader

    Все привет. Есть пару вопросов от новичка.
    Есть простейший кусок кода:
    protected override void OnBarUpdate()
    {
    // Condition set 1
    if (Open[0] > Open[1])
    {
    EnterShort(DefaultQuantity, "");
    }

    }
    Вход в шорт, все верно.
    Далее убираем кусок кода по центру:
    // Condition set 1
    if (Open[0] > Open[1])
    {
    EnterShort(DefaultQuantity, "");
    }
    и оставляем только вызов OnBarUpdate()
    Скрипт ничего не делает, что тоже правильно.
    Далее, вместо шорта пишем лонг.

    protected override void OnBarUpdate()
    {
    // Condition set 1
    if (Open[0] > Open[1])
    {
    EnterLong(DefaultQuantity, "");
    }

    }
    а скрипт входит в шорт! никаких ошибок, ничего, просто в шорт и все.
    Как вообще такое может происходить?
     
  2. thinarthrill

    thinarthrill Well-Known Member NinjaTrader

    Такое может происходить, если не компилировать (F5) код после изменений и не перезапускать стратегию на чарте
     
  3. crn

    crn New Member NinjaTrader

    Да, это получилось, спасибо.
    И еще такой вопрос.
    Есть условие
    if (ZigZag(DeviationType.Percent, 0.5, false).ZigZagHigh[0] < ZigZag(DeviationType.Percent, 0.2, false).ZigZagHigh[0])
    {
    EnterLong(DefaultQuantity, "LN");
    }
    т.е. если ЗигЗаг 0.5 меньше ЗигЗага 0.2 на нулевом баре чарта (данные исторические) то вход в лонг.
    По факту имеем:
    zig.jpg
    ЗигЗаги начали рисоваться не с нулевого бара, но это понятно, нужен разгон, но ведь скрипт не должен входить в позу, т.к. на нулевом баре нет индикаторов, вместо этого мы видим, что он зашел примерно на 500 баре, причем противоположно условию, ЗигЗаг 0.5 (синий) больше ЗигЗага 0.2 (оранжевый). И причем не сразу, когда индикаторы разошлись, а спустя какое-то количество баров.
    Полное ощущение рандомности входа сделку, хотя я понимаю, что это не так.
    Если не сложно, поясните логику этого момента.
     
  4. thinarthrill

    thinarthrill Well-Known Member NinjaTrader

    В справке NT написано, что ZigZag может принимать значения -1 и 0. Возможно эти значения и попали в условие.
     
  5. crn

    crn New Member NinjaTrader

    Это да, понятно. Там скорее всего и есть -1.
    Но почему позиция открылась именно там?
     

Поделиться этой страницей