• Тинькофф Банк-лучшие банковские продукты еще выгоднее
    Выбирайте продукт от банка Тинькофф
  • Уважаемые форумчане, друзья и посетители!
    Поступило предложение ( ссылка на обсуждение ) на сбор средств поддержания форума в рабочем состоянии с 1 июня ( оплата хостинга, бэкап ежедневный на другой хостинг и тд), отчетность будет предоставляться ежемесячно. Пока на ЮMoney ( яндекс деньги), доступно картой перевод, далее добавлю другие способы. Сумму перевода указывайте на ваш выбор исходя из своих возможностей.
    Форум продолжает свою работу благодаря Вашим пожертвованиям.

Образцы кодов стратегий для NT 6.5

Дмитрий К сказал(а):
Даже количество сделок совершенно разное...

проскальзывание ..........

при проигрывании на "плеере" ....... оно учитывается.

а в тестере оно стоит у Вас на значении "0"

при кл-ве сделок 900 шт......... это как минимум 900 пипс

......наверное из-за этого и идет различие.
 
Каким образом проскальзывание влияет на количество сделок? 980 против 2417 - это как объяснить?
 
Повсюду был установлен период с 17.04.2012 по 18.04.2012 и Session template: Default 24/7. Попробуйте провести тот же эксперимент, но обязательно с "проигрыванием" на периоде.
 
vladko сказал(а):
Если находимся НЕ на 5-минутном графике евро и графике Kagi по фунту, то в процедуру инициализации добавляем:
CODE:
Add("6E 06-12",PeriodType.Minute, 5);


И в теле индикатора получаем доступ к тому, что нужно:
CODE:
SMA(Highs[1],14)[0]

Возвращаясь к вопросу об индикаторах "жёстко" привязанных к определённому графику, таймфрейму и валюте, провёл следующий тест на Market Replay:

1. Привязал одну и ту же простейшую стратегию, использующую такую "жёсткую" привязку индикатора на 8 различных графиков.
2. Запустил "плеер" Market Replay и получил одновременную работу стратегии на всех 8 графиках.

По логике хотелось получить одинаковые результаты на всех графиках. Но как видно из скиншота не получилось. Как же всё-таки можно решить такую казалось бы тривиальную задачу корректно? Будьте добры подскажите, пожалуйста!

Код стратеги:

Код:
#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Indicator;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Strategy;
#endregion

// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
    /// <summary>
    /// Enter the description of your strategy here
    /// </summary>
    [Description("Enter the description of your strategy here")]
    public class LineBreak6S : Strategy
    {
        #region Variables
        // Wizard generated variables
        private int a = 0; // Default setting for A
        private int b = 0; // Default setting for B
        // User defined variables (add any user defined variables below)
        #endregion

        /// <summary>
        /// This method is used to configure the strategy and is called once before any strategy method is called.
        /// </summary>
        protected override void Initialize()
        {   
			Add("6S 06-12",PeriodType.Minute, 1);
			
            CalculateOnBarClose = true;
        }

        /// <summary>
        /// Called on each bar update event (incoming tick)
        /// </summary>
        protected override void OnBarUpdate()
        {
			if (BarsInProgress != 0) return;
			
            // Condition set 1
            if (SMA(Highs[1],2)[1] < SMA(Highs[1],2)[2])
            {
                EnterShort(1, "");
            }
            // Condition set 2
            if (SMA(Highs[1],2)[1] > SMA(Highs[1],2)[2])
            {
                ExitShort("", "");
            }
        }

        #region Properties
        [Description("")]
        [GridCategory("Parameters")]
        public int A
        {
            get { return a; }
            set { a = Math.Max(-5, value); }
        }

        [Description("")]
        [GridCategory("Parameters")]
        public int B
        {
            get { return b; }
            set { b = Math.Max(-5, value); }
        }
        #endregion
    }
}
 

Вложения

  • 05.png
    05.png
    130,9 КБ · Просмотры: 148
Да, действительно
Код:
CalculateOnBarClose = false;
исправляет ситуацию.
 
vladko сказал(а):
Если находимся НЕ на 5-минутном графике евро и графике Kagi по фунту, то в процедуру инициализации добавляем:
Код:
Add("6E 06-12",PeriodType.Minute, 5);
AddKagi("6B 06-12", PeriodType.Minute, 1, 2, ReversalType.Tick, MarketDataType.Last);

И в теле индикатора получаем доступ к тому, что нужно:
Код:
SMA(Highs[1],14)[0]
SMA(Highs[2],14)[0]

Возможно ли использование "не базовых" видов графика в сравнении?

например 5RangeNoGap с 5Минутным
 
Вообще, можно. Ибо есть зарезервированные пользовательские типы баров
Код:
PeriodType.Custom0-9
Но каждый отдельный тип бара надо рассматривать отдельно в плане возможности программного добавления.
Возможно, больше информации найдете тут:
http://www.ninjatrader.com/support/foru ... add+custom
http://www.ninjatrader.com/support/foru ... ustom+type
http://www.ninjatrader.com/support/foru ... +bar+types
http://www.ninjatrader.com/support/foru ... ustom+type
 
Дмитрий К сказал(а):
Проделал следующие манипуляции:
1. погрузил данные по инструменту "6Е 06-12" через File-Utilities-Download Replay Data... (L1 и L2)
2. подключился к Market Replay Connection
3. открыл график "6Е 06-12" (Last, Tick, 1)
4. подключил к нему стандартную стратегию SampleMACrossOver
5. проиграл данные за период 16.04.2012 по 17.04.2012

Затем прогнал эту же стратегию на том же периоде с данными Data Series (Last, Tick, 1) и теми же параметрами, что и на Market Replay и получил КАРДИНАЛЬНО ДРУГИЕ результаты.
В чём может быть причина таких расхождений? И как же тогда настроить параметры тестирования, чтобы они хоть как-то совпадали с Real-Time?

Повторял неоднократно уже подобный эксперимент и с разными стратегиями - результат тот же! Точнее полное расхождение тестирования на тиковом графике с проигрыванием на Market Replay! Как можно после этого вообще писать стратегии и потом их ещё оптимизировать, если с реальностью результаты теста вообще никак не связаны?! Где эта "Ахилесова пята"?

Будьте добры, помогите, пожалуйста, разобраться в этом вопросе!
 
Я же показал скрин с полностью совпадающими результатами. Следовательно, вы где-то делаете ошибку. Вспомните ваше предыдущее обращение на форум...

А, вообще, "результаты тестов с реальностью" действительно мало связаны.
 
А ваш результат был после проигрывания на Market Play? Я вполне допускаю, что мною сделана ошибка, но чтобы понять, где она нужно для начала понять у меня ли одного такая ошибка.
 
vladko сказал(а):
А, вообще, "результаты тестов с реальностью" действительно мало связаны.
То есть смысла в программировании стратегий нет? Видимо разработчики NT просто создали "ЭЛЕКТРОННУЮ ИГРУШКУ" для любителей поковыряться в кодах? Странно это слышать от человека, занимающегося профессионально программированием для NT. Всегда есть объективные причины влияния рынка на расхождения результатов back-test и real-time торгов, но чтобы вот так утверждать, что результаты мало связаны.... Если бы я на собственном опыте на "игрушечной" MT4 не убедился в обратном, может быть я бы вам и поверил. Но при всей настроенности MT4 в пользу брокера (взять хотя бы отсутствие тиковой истории) и технических махинаций со стороны опять же брокеров, расхождения результатов теста и реальной торговли были вполне приемлемы, а в те периоды, кода исполнение со стороны брокера не вызывает нареканий совпадение вообще близко к 100%.
 
Вы все неправильно поняли. Результаты тестов с реальностью (работой в реал-тайм) мало связаны просто потому, что никакое тестирование на истории никогда не даст уверенности в том, что и на реал-тайме будет то же самое. А сравнивать МТ и прямой биржевой терминал - ну, просто нет слов...
 
Я так понимаю вся путаница в исторических данных - где же можно прочесть полный хелп по данной теме? Как они хранятся в каком виде, как вызываются? Мне кажется, именно с этой теории хелп начинаться должен. Жаль конечно, что вы один на этом форуме за всех разработчиков "отдуваетесь"... Спасибо, что хоть вы тут есть!
(Добавление)
Я даже мысли не допускаю, сравнивать NT и МТ - это как сравнить истребитель последнего поколения с Ладой "Калина" ))
 
Дмитрий К сказал(а):
где же можно прочесть полный хелп по данной теме?
Во встроенной справке ниндзи. Также на их официальном форуме.
http://www.ninjatrader.com/support/forum/index.php

Дмитрий К сказал(а):
Жаль конечно, что вы один на этом форуме за всех разработчиков "отдуваетесь"
На самом деле я никакого отношения к разработчикам ниндзи не имею)))
 
Дмитрий К сказал(а):
Я так понимаю вся путаница в исторических данных - где же можно прочесть полный хелп по данной теме? Как они хранятся в каком виде, как вызываются? Мне кажется, именно с этой теории хелп начинаться должен. Жаль конечно, что вы один на этом форуме за всех разработчиков "отдуваетесь"... Спасибо, что хоть вы тут есть!
(Добавление)
Я даже мысли не допускаю, сравнивать NT и МТ - это как сравнить истребитель последнего поколения с Ладой "Калина" ))
Русскоязычных разработчиков нет в NinjaTrader , так и нет русского (других языков) мануала и не будет, только английский.

Этот форум является частной инициативой, с целью разобраться в платформе, обменяться опытом, собрать всю доступную информацию на русском языке, приумножить её и сделать доступной.
Огромную и неоценимую помощь трейдерам на форуме оказывает брокер Mirius Futures Светлана Орловская (broker_mirus), а также другие уважаемые форумчане. При выявлении «багов» в платформе сообщаем разработчику.
Всем миром тут и разбираемся с ней. ::smile24.gif::
 
Дмитрий К сказал(а):
То есть смысла в программировании стратегий нет?
Есть конечно, только для тестирования нужны качественные исторические тиковые данные за долгий период, а не выкаченные данные с демо (в истории могут быть разрывы и прочее). Приобрести их можно с разных источников.
Попробую попросить график доходности робота у одного трейдера торгующего в Мирусе, если согласиться показать, то выложу.
Я его видел, и скажу что стоит программировать доходные стратегии.
 
Назад
Верх Низ