[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 298

 
Croaker:

Приветствую всех знатоков и просто опытных читателей этой ветки! Ну и просто всех, кто сможет мне помочь=)

Какой наиболее простой и "правильный" способ добиться периодичности? То есть, если упрощать, я хочу чтобы раз в 15 минут автоматически выполнялось некое действие.

В моем случае - это сохранение файла на диск с некоторыми статистиками. Сейчас у меня есть скрипт, который выполняет требуемое, и это буквально 20 строк кода. Как же заставить эти 20 строк повторяться через определенные интервалы времени? Как я успел понять, никаких временных таймеров в MQL нет... Нужно ли использовать эксперта, который будет делать какую-то проверку каждый тик?...

Надеюсь на вашу помощь и подсказки)

Ну к примеру проверять наличие нового бара на 15 минутном таймфрейме.

или запомнить начальное время и прверять текущее.

https://docs.mql4.com/ru/dateandtime/TimeCurrent

et=timecurrent();

if (et-bt>15*60) {bt=timecurrent(); грузим данные}

 
Croaker:

хочу чтобы раз в 15 минут автоматически выполнялось некое действие.

datetime save_time;
int tf=15;

start()===============================================

if(save_time!=iTime(0,tf, iBarShift(0,tf,Time[0]))){
        save_time =iTime(0,tf, iBarShift(0,tf,Time[0]));
        Alert("Новая свеча ТФ="tf);
     }
 
pvm117:

Неужели уважаемые гуру не помогут?

pvm117 20.10.2011 18:26

Добрый день!

В качестве первого опыта решил реализовать следующий алгоритм: можно ожидать, что после сближения линий Боллинджера в узкий коридор через какое-то время будет резкое движение рынка вверх или вниз. В советнике анализирую состояние линий Боллинджера и при их близком сближении (Delta пунктов) ставим отложенный ордер на продажу в нижнем направлении (на StepOpen пунктов ниже нижней линии) в надежде что рынок резко пойдет именно в эту сторону. Если рынок пошел в другую сторону, то просто удаляем этот ордер.

Алгоритм работает нестабильно, иногда открывает по два ордера через короткий промежуток времени, постоянно выдает ошибки OrderSend Error 130 и OrderSend Error 138, а удаление открытых ордеров в случае движения рынка в другую сторону вообще не срабатывает.

Большая просьба помочь советом! Спасибо!

Для тестера и не обращать на 130 ошибку, просто не возможно выставить ордер стоп по данной цене.

Далее дело за вами.

Файлы:
temp_2.mq4  21 kb
 

Ребят, я новенькая в этом деле, помогите найти ошибку пожалуйста.

Попробовала написать индикатор для подсчета количества растущих и падающих свечей за определенный период истории. Но он не отображается когда выводишь его в индикаторное окно. В чем дело? Вот мой код. Заранее спасибо.

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red

int Wh;
int Bl;
int a[],b[];
extern int History=500;
//+------------------------------------------------------------------+
int init(){
SetIndexBuffer(0,a);
SetIndexBuffer(1,b);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
return(0);}
//+------------------------------------------------------------------+
int deinit(){return(0);}
//+------------------------------------------------------------------+
int start()
{
int CountedBars=IndicatorCounted();
int i=Bars-CountedBars-1;
if (i>History-1) i=History-1;
while(i>=0)
{
if (Close[i]>Open[i])Wh++;
if (Close[i]<Open[i])Bl++;
a[i]=Wh;
b[i]=Bl;
i--;
}
return(0);}

 
Ellie:

Ребят, я новенькая в этом деле, помогите найти ошибку пожалуйста.

Попробовала написать индикатор для подсчета количества растущих и падающих свечей за определенный период истории. Но он не отображается когда выводишь его в индикаторное окно. В чем дело? Вот мой код. Заранее спасибо.



Замените

int a[],b[];

на

double a[],b[];
 
Ооо, спасибо, заработало. Только не пойму почему должно быть так? Количество свечей это же целое число. Не могли бы вы объяснить в двух словах плз?
 
Ellie:
Ооо, спасибо, заработало. Только не пойму почему должно быть так? Количество свечей это же целое число. Не могли бы вы объяснить в двух словах плз?


Обратите внимание на типы передаваемых в функцию SetIndexBuffer() параметров.

 
Спасибо огромное. Ведь восемь раз читала вчера про эту функцию но до меня не дошло((((((((
 
Roll:
Если поправить еще:
будет лучше...

Ага, спасибо, я уже заметила)))
 
Ellie:
Ага, спасибо, я уже заметила)))
Есть женщины в русских селеньях. И это радует.
Причина обращения: