[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 335

 
snowman647 >>:

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

на сколько я знаю случайного числа в МКЛ нет. есть псевдослучайное. так оно практически тоже самое что и предложенная мной схема.

а вообще про псевдо случ числа читай здесь https://www.mql4.com/ru/search/?keyword=%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE%D0%B5+%D1%87%D0%B8%D1%81%D0%BB%D0%BE

 
vik-777 >>:
Здравствуйте, подскажите как сделать поиск бара по времени? и что бы при этом выводил цену open,close на экран. спасибо

повторюсь, очень надо

 
Stepan241 >>:

Во первых не совсем корректна запись

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,0); // Вызов функции индикатора
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,0);

Вместо нулей нужно поставить 1

Чтобы определить момент пересечения нужно рассматривать не только текущее значение (выше или ниже, но еще и предыдущее)

Поэтому надо добавить

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2); // Вызов функции индикатора
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2);

обратите внимание на цифру 2

Тоесть теперь этот блок будет выглядеть

MA_1 = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,1); // Вызов функции индикатора
MA_2 = iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,1);

MA_1_Prev = iMA(NULL,0,Period_MA_1,Sdvig_1,MODE_SMA,PRICE_CLOSE,2); // Вызов функции индикатора
MA_2_Prev= iMA(NULL,0,Period_MA_2,Sdvig_2,MODE_SMA,PRICE_CLOSE,2);

Строку

if (MA_2 < MA_1 && Fact_Up == true)

заменить на if (MA_2 < MA_1 && MA_2_Prev>MA_1_Prev && Fact_Up == true)


Аналогичную замену сделать для второго условия и условия выхода из сделки. Синим цветов отмечено новое условие. Теперь мы входим в длинную позицию тогда, когда Первая скользящая больше Второй, а предыдущее значение Первой скользящей меньше предыдущего значения Второй.

Спасибо.

 
vik-777 писал(а) >>

повторюсь, очень надо

 
DDFedor >>:

вот это понятно он находит сколько секунд до этого бара

datetime some_time=D'2004.03.21 12:00';

int shift=iBarShift("EUROUSD",PERIOD_M1,some_time);

 
vik-777 >>:

вот это понятно он находит сколько секунд до этого бара

а как узнать цену open и close этого бара

 
vik-777 писал(а) >>

а как узнать цену open и close этого бара

https://docs.mql4.com/ru/series

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

double MyOpenPrice =  iOpen(Symbol(),Period(),iBarShift(Symbol(),Period(),some_time));
 

блин ну не понимаю я как сделать, я это уже смотрел пример в инете искад(2 дня) не нашел

 
DDFedor >>:

https://docs.mql4.com/ru/series

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

огромное спасибо

 
vik-777 >>:
Здравствуйте, подскажите как сделать поиск бара по времени? и что бы при этом выводил цену open,close на экран. спасибо


   

datetime some_time=D'2009.12.07 01:15';
      int shift=iBarShift("EURUSD",PERIOD_M1,some_time); 

   Alert("бар: ",shift," * время: ",TimeToStr(some_time)," * цена откр.: ",
           iOpen("EURUSD",PERIOD_M1,shift)," * цена закр.: ",iClose("EURUSD",PERIOD_M1,shift));

Причина обращения: