Как реализовать массив ТАЙМФРЕЙМА в советнике MQL5 - страница 2

 
Lehfr:

Он работает по ценам открытия, а что в этом плохого?

А плохое начинается так, где Вы применяете трейлинг. Там где есть Стоп лосс и/или Тейк профит. В таком случае "по ценам открытия" - сплошное надувательство.

 
Vladimir Karputov:

А плохое начинается так, где Вы применяете трейлинг. Там где есть Стоп лосс и/или Тейк профит. В таком случае "по ценам открытия" - сплошное надувательство.

Трейлинг это без полезная штука, стопы выставляются согласно ММ 10% потери от депозита. 

Возможно вы и правы попробую на реале протестировать.
 
Lehfr:

Трейлинг это без полезная штука, стопы выставляются согласно ММ 10% потери от депозита. 

Внимание вопрос: в режиме "ПО ценам открытия" ГДЕ сработает СТОП у которого цена окажется не на цене ОТКРЫТИЯ бара, а посредине между Open и Close?


Не обманывайте сами себя. Хоть один раз проведите тест в режиме "Каждый тик на основе реальных тиков" в MetaTrader 5 - сразу увидите, чего стоят доморощенные "граали". На сём откланиваюсь и жду хоть один тест в режиме "Каждый тик на основе реальных тиков" в MetaTrader 5. Пока этого не сделаете - говорить о чём-то вообще бесполезно.

 

По всем тикам правда моделирование 25%, не много просел но все равно идет ровно, это из за чего не знаю может из за того чтоя где то в коде модифицировал уже не помню)))

По моему понял где собака зарыта, я переключался между разными счетами демо и реал. Интересно почему мт4 делает такие искажения в котировках... Или я ошибаюсь, ладно буду грешить на себя, но сомнения остались...

Форвард тест по недельно вроде проходит.

Долго оптимизируется, 2, 5 часа на один месяц уходит, с начала года сделать хочу оптимизацию для него, но четверка слабовата для него...

Файлы:
 
Vladimir Karputov:

Внимание вопрос: в режиме "ПО ценам открытия" ГДЕ сработает СТОП у которого цена окажется не на цене ОТКРЫТИЯ бара, а посредине между Open и Close?


Не обманывайте сами себя. Хоть один раз проведите тест в режиме "Каждый тик на основе реальных тиков" в MetaTrader 5 - сразу увидите, чего стоят доморощенные "граали". На сём откланиваюсь и жду хоть один тест в режиме "Каждый тик на основе реальных тиков" в MetaTrader 5. Пока этого не сделаете - говорить о чём-то вообще бесполезно.

Не увидел ваш ответ, я согласен с вами но в четверке моделируются тики, реальность я увижу только в мт5.

 
Vladimir Karputov:

Внимание вопрос: в режиме "ПО ценам открытия" ГДЕ сработает СТОП у которого цена окажется не на цене ОТКРЫТИЯ бара, а посредине между Open и Close?.........

Я, честно говоря, совсем не понял...

Как вооще можно выставить стоп на новом баре между ценой открытия и закрытия???? Владимир, Вы сегодня не пили горячительного? ))) 

А если вопрос стоит именно о там, что где сработает уже выставленный заранее стоп при формировании нового бара (формулировать нужно правильно), то при оптимизации/тесте по ценам открытия это не суть важно, ибо такие стопы ставятся исключительно как страховка и на общую картину "мира" никак не влияют. В противном случае сама система должна быть признана несостоятельной, и говорить вооще не о чем.

 
Сергей Таболин:

Я, честно говоря, совсем не понял...

Как вооще можно выставить стоп на новом баре между ценой открытия и закрытия???? Владимир, Вы сегодня не пили горячительного? ))) 

А если вопрос стоит именно о там, что где сработает уже выставленный заранее стоп при формировании нового бара (формулировать нужно правильно), то при оптимизации/тесте по ценам открытия это не суть важно, ибо такие стопы ставятся исключительно как страховка и на общую картину "мира" никак не влияют. В противном случае сама система должна быть признана несостоятельной, и говорить вооще не о чем.

Сергей, Владимир имел в виду скорее не новый бар, а про выставленный ордер, что он может закрыться внутри бара по стопу. На минутном графике когда шпилька может выйти за пределы стоплоса, и вернуться обратно, редкий случай в моей практике....

 
Vladimir Karputov:

Необходимо обьявить два массива: один массив с таймфреймами, а второй для хендлов индикаторов.

Пример: 

Что то виснет все, вы точно уверены что так надо???

А вот так нельзя???

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- input parameters

input int    Tfad1         = 2;        // TF ADX
input int    PerAdx1       = 14;       // ADX period   
//---
int Adx1=0;
ENUM_TIMEFRAMES   arr_tf[6]={PERIOD_CURRENT,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4};
int tf_ad1=0;      // variable for storing the handle's of the iADX indicator
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   tf_ad1=Tfad1;

   Adx1=iADX(_Symbol,arr_tf[tf_ad1],PerAdx1); if(Adx1==INVALID_HANDLE){printf("Error Adx indicator");return(INIT_FAILED);}  
   


return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
 
Pul-Adgi Mo-UlStan:

Что то виснет все, вы точно уверены что так надо???

А вот так нельзя???

Вы вероятно что-то вставили от себя в мой код - в таком случае понятно откуда "виснет" :)

Повторю на всякий случай свой код ещё раз:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как реализовать массив ТАЙМФРЕЙМА в советнике MQL5

Vladimir Karputov, 2019.09.06 08:27

Необходимо обьявить два массива: один массив с таймфреймами, а второй для хендлов индикаторов.

Пример: 

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- input parameters
input int      Input1;
//---
ENUM_TIMEFRAMES   arr_timeframes[3]={PERIOD_CURRENT,PERIOD_H1,PERIOD_H4};
int               arr_handle_iADX[3]; // variable for storing the handle's of the iADX indicator
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   for(int i=0;i<3;i++)
     {
      //--- create handle of the indicator iADX
      int handle_iADX=iADX(Symbol(),arr_timeframes[i],14);
      //--- if the handle is not created 
      if(handle_iADX==INVALID_HANDLE)
        {
         //--- tell about the failure and output the error code 
         PrintFormat("Failed to create handle of the iADX indicator for the symbol %s/%s, error code %d",
                     Symbol(),
                     EnumToString(arr_timeframes[i]),
                     GetLastError());
         //--- the indicator is stopped early 
         return(INIT_FAILED);
        }
        arr_handle_iADX[i]=handle_iADX;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+

Рецепт применения: НЕ ВНОСИТЬ изменений и запустить. После этого вдумчиво потихоньку менять на свои параметры.
 
Vladimir Karputov:

Вы вероятно что-то вставили от себя в мой код - в таком случае понятно откуда "виснет" :)

Повторю на всякий случай свой код ещё раз:


Рецепт применения: НЕ ВНОСИТЬ изменений и запустить. После этого вдумчиво потихоньку менять на свои параметры.

То что я показал сверху будет работать?

Ваш код мне понятен только цикл этот на четырех индикаторах виснет. все сделано по вашему принципу. 

Я повторюсь мой вариант будет работать?

Да по ходу придется методом тыка все познавать... Одного ордерклозетайм чего стоило перерыть все функции... В итоге пшык, пришлось воспользоваться библиотекой, я уже не говорю про документацию написана впопыхах.