Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1287

 

Всем доброго, возможно ли это и как создать алгоритм открытия и закрытия сделки без применения каких либо индикаторов

например берем две линий одна трендовая вверх а вторая тоже самая вниз, ложим друг на друга появляется точка пересечения между двух линий допустим это точка стоит в 15-30 по времени, дальше как сделать так чтобы ордер автоматом открывался ровно в это же время для начало в любую сторону, как сделать так чтобы алгоритм будет находит эти точки и открывать позицию? Хотелось бы пояснение и ваши мнения. 

Можно ли на основе такого Т3 сделать советник?
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением...
 
Привет!!!   Такой возник вопрос?   Нужно  собрать в массивы, хендлы индикатора на разных таймфреймах, но оказывается  так 
Fractal=iFractals(Symbol(),tik);

нельзя сделать((    Странно, почему простые числа можно использовать в этом параметре, а переменную с числовой константой нет?
void OnTick()
  {
   for(int tik =1; tik <= 6; tik++)
     {
      Fractal=iFractals(Symbol(),tik);   // Вот эта tik переменная вызывает ошибку при компиляции

      switch(tik)
        {
         case 1:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalUP_W1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_W1),FractalDown_W1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_W1,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_W1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;
         case 2:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalUP_D1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_D1),FractalDown_D1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_D1,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_D1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;
         case 3:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalUP_H4);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H4),FractalDown_H4); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_H4,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_H4,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;
         case 4:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalUP_H1);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_H1),FractalDown_H1); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_H1,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_H1,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;
         case 5:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalUP_30);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M30),FractalDown_30); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_30,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_30,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;
         case 6:
            CopyBuffer(Fractal,0,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalUP_15);   // заполнение масива FractalUp[] верхними фракталами на дневном графике
            CopyBuffer(Fractal,1,TimeCurrent(),Bars(Symbol(),PERIOD_M15),FractalDown_15); // заполнение масива FractalUp[] нижними фракталами на дневном графике
            //--- индексация как в таймсериях
            ArraySetAsSeries(FractalUP_15,true);  //Заполнение массива FractalUp[],FractalDown, нулевым баром в первом окне массива и далее по порядку убывания от нулевого в тайм-серии
            ArraySetAsSeries(FractalDown_15,true);//Второй параметр -true- функции ArraySetAsSeries Устанавливает флаг индексации как в таймсериях.
            ;
            break;

        }
     }
 
Kira27:
Привет!!!   Такой возник вопрос?   Нужно  собрать в массивы, хендлы индикатора на разных таймфреймах, но оказывается  так 
нельзя сделать((    Странно, почему простые числа можно использовать в этом параметре, а переменную с числовой константой нет?

Потому, что там должен быть таймфрейм

handle=iFractals(Symbol(),tf);

Идентификатор

Описание

PERIOD_CURRENT

Текущий период

PERIOD_M1

1 минута

PERIOD_M2

2 минуты

PERIOD_M3

3 минуты

PERIOD_M4

4 минуты

PERIOD_M5

5 минут

PERIOD_M6

6 минут

PERIOD_M10

10 минут

PERIOD_M12

12 минут

PERIOD_M15

15 минут

PERIOD_M20

20 минут

PERIOD_M30

30 минут

PERIOD_H1

1 час

PERIOD_H2

2 часа

PERIOD_H3

3 часа

PERIOD_H4

4 часа

PERIOD_H6

6 часов

PERIOD_H8

8 часов

PERIOD_H12

12 часов

PERIOD_D1

1 день

PERIOD_W1

1 неделя

PERIOD_MN1

1 месяц

 
Kira27:
Привет!!!   Такой возник вопрос?   Нужно  собрать в массивы, хендлы индикатора на разных таймфреймах, но оказывается  так 
нельзя сделать((    Странно, почему простые числа можно использовать в этом параметре, а переменную с числовой константой нет?

Хендл индикатора в MQL5 НУЖНО СОЗДАВАТЬ ОДИН РАЗ!!! И делать это нужно в OnInit()!!!

 

Индикатор MQL5 

Значение баланса и эквити пишется только в нулевой элемент массива.

Но при запуске индикатора появляются вот такие шпили на разных массивах и в разных местах. 

 Код в init для всех массивов такой:

  SetIndexBuffer(0,Balance1Buffer,INDICATOR_DATA);
  ArraySetAsSeries(Balance1Buffer,true);
  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);


Как это убрать?

 

 
Sergey Likho:

Индикатор MQL5 

Значение баланса и эквити пишется только в нулевой элемент массива.

Но при запуске индикатора появляются вот такие шпили на разных массивах и в разных местах. 

 Код в init для всех массивов такой:


Как это убрать?

 

Нельзя ТОЛЬКО в [0] писать, нужно ОБЯЗАТЕЛЬНО учитывать prev_calculated и обнулять предыдущий бар.

А вообще есть уже такой код: LifeHack Balance Equity и  LifeHack Balance Equity 2
LifeHack Balance Equity
LifeHack Balance Equity
  • www.mql5.com
Индикатор отображает баланс и эквити торгового счёта.
 
Vladimir Karputov:

Хендл индикатора в MQL5 НУЖНО СОЗДАВАТЬ ОДИН РАЗ!!! И делать это нужно в OnInit()!!!

То есть, нужно создавать 6 хендлов  индикатора в   OnInit   для получения данных всех нужных таймфреймов?
 
Kira27:
То есть, нужно создавать 6 хендлов  индикатора в   OnInit   для получения данных всех нужных таймфреймов?

Нет. Не обязательно, если вам нужен только один из шести. И не обязательно создавать в OnInit(), главное не создавать хендл на каждом тике.

 
Kira27:
То есть, нужно создавать 6 хендлов  индикатора в   OnInit   для получения данных всех нужных таймфреймов?

Да. Можете создать шесть разных переменных для хранения шести хендлов, а можете (такой вариант предпочтительнее) создать массив и в массиве хранить шесть хендлов.

 
я подписан на сигнал у провайдера сигнала зделка 0.02 лота а у меня почемуто исполняется 0.01 подскажите почему так?