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

Вопрос к программистам

FOKS

Member
NinjaTrader
При разработке стратегии с торговыми сигналами при пересечении скользящих средних построенных на разных таймфреймах (например 5 мин. и 1 мин.) возникает ошибка с отображением сделок. На графике получаю сильное смещение сделок от точек пересечения построенных скользящих средних. Хотя на одном таймфрейме (например на 5 мин.) всё работает по алгоритму...
И вот собственно вопрос... есть ли у вас подобный опыт написания алгоритма совмещающего два разных таймфрейма в стратегии? В чем может быть проблема?
 
Господа программисты, не ужели никто не делал стратегии с параметрами из разных таймфреймов? Очень надеюсь на ваш совет ::smile24.gif::
 
Приветствую всех. Вопрос програмистам: как в стратегии обратиться к графику Volume1000 ? если стратегия стоит на другом...
Заранее спасибо.
 
Добавляем нужный ТФ в процедуре инициализации
Код:
Add(PeriodType.Volume, 1000);

И далее изучаем мануал на предмет:
Код:
BarsInProgress 
Opens
Closes
Highs
Lows
и т.д.
 
Спасибо, Владимир. Я жду, когда Ваша платформа начнет торговать! Удачи Вам!!!
 
if (BarsInProgress ==1)return;

Объясните, пожалуйста, это выражение обозначает продолжение формирования 0-го бара или что ?
Мне нужно запретить открытие позиции на том же баре, на котором сделано закрытие позиции.
 
У меня предложение переименовать ветку в "Вопросы без ответов".
Я думаю, что модераторы подумают над тем, как наладить работу форума и в частности - хотя бы отвечать...
Очередной вопрос в никуда : как сформулировать фразу:
Если приращение депозита сегодня (в результате нескольких сделок) X баксов (или пипсов), то остановить торговлю.
В мт4 это было очень просто, там была масса советников от Кима, из которых можно было взять любой блок или цитату. А в Си-шарпе надо выпрашивать на форуме каждую строчку.
ААААУУУУУУУУУУУ, программисты......
 
anik сказал(а):
У меня предложение переименовать ветку в "Вопросы без ответов".
Я думаю, что модераторы подумают над тем, как наладить работу форума и в частности - хотя бы отвечать...
Очередной вопрос в никуда : как сформулировать фразу:
Если приращение депозита сегодня (в результате нескольких сделок) X баксов (или пипсов), то остановить торговлю.
В мт4 это было очень просто, там была масса советников от Кима, из которых можно было взять любой блок или цитату. А в Си-шарпе надо выпрашивать на форуме каждую строчку.
ААААУУУУУУУУУУУ, программисты......
Форум предоставляет площадку по обмену опытом и взаимопомощи.
Все присутствующие тут независимые программисты помогают на сугубо добровольной основе (за что им большое спасибо) и заставить/требовать их силой отвечать мы не можем.
В NijaTrader есть подробный Help по NinjaScript.
Попробую связаться с образовательными ресурсами на счет организации платных ( бесплатно никто не будет делать как понимаю, если есть желающие- напишите) обучающих курсов по языку программирования в NT7.
 
anik сказал(а):
как сформулировать фразу:
Если приращение депозита сегодня (в результате нескольких сделок) X баксов (или пипсов), то остановить торговлю.


Код:
// Condition set 1

if (Position.MarketPosition == MarketPosition.Flat
&& Performance.AllTrades.TradesPerformance.TradesPerDay < 10
&& Performance.AllTrades.TradesPerformance.MaxConsecLoser < 5
&& Performance.AllTrades.TradesPerformance.Points.CumProfit/TickSize < 100  
&& Performance.AllTrades.TradesPerformance.Points.CumProfit/TickSize > -50

по порядку:
сделка открывается, только если по инструменту нет открытых сделок этим роботом.
максимальное количество сделок с момента включения! робота (10) - 11 ю сделку он уже проигнорирует.
максимальное количество последовательных! сделок с отрицательным итогом с момента включения робота (5) - дальше робот сигналы будет игнорировать.
максимальная величина прибыли с момента включения робота - пересчитывается после закрытия! каждой сделки (100) - при итоге торгов свыше +100 пипс...... робот сигналы дальнейшие игнорирует.
максимальный отрицательный итог в торгах с момента включения робота.


P.S. для двух последних параметров........ лучше заменить их для проверки торгового счета, а не итога торгов............. это будет надежнее с тех. стороны.


Код:
&& GetAccountValue(AccountItem.CashValue) < maxCash 
&& GetAccountValue(AccountItem.CashValue) > minCash

вот так например......... тогда данные параметры будут не измены при сбое связи и вкл/выкл робота в период торгов.

и не забудте (для рабочего варианта) прописать условие


Код:
// Make sure this strategy does not execute against historical data
			
			if (Historical)	return;
 
Всем добрый день! хочу, написать робота но не-могу найти документацию по программированию на NT , помогите ко может.Желательно на русском.
 
Подскажите выдает ошибку при компиляции стратегии. Принт скрин добавлен. В чем проблема?
 

Вложения

  • Ошибка1.jpg
    Ошибка1.jpg
    27,8 КБ · Просмотры: 49
Код:
        protected override void Initialize()
        {
            Add(PriorDayHLR(radius));
            Enabled = true;                    // сразу запускаться
            CalculateOnBarClose = true;      // Вычисляем по окончании каждого бара
            ExitOnClose            = true;     // выходить в конце сессии
        }

        /// <summary>
        /// Called on each bar update event (incoming tick)
        /// </summary>
        protected override void OnBarUpdate()
        {
                if(Position.MarketPosition == MarketPosition.Flat)  
                    {   
                        EnterShortLimit(PriorDayHLR(radius).PriorR_Up[0], "");
                        EnterLongLimit(PriorDayHLR(radius).PriorR_Dn[0], "");
                    }
               
        }

Почему то не получается установить сразу два лимитника. Ставиться только тот что прописан первым. Если поменять местами, то ставится EnterLongLimit
а EnterShortLimit не проходит.
Почему не могу понять. Такое ощущение что есть какоето ограничение на количество лимитных ордеров... хотя я могу и ошибатся.
Подскажите как выставить сразу два лимитника на краях канала Up и Dn.
Заранее спасибо и всех с наступающим.
 
Назад
Верх Низ