Спрашивайте!

 

Привет, друзья,

Я получил много личных сообщений с просьбой помочь мне с некоторыми частями кода.

Здесь вы можете задать свои вопросы, связанные с MQL4, и я постараюсь ответить на них.

 

Оповещения (по звукам или любые)

У меня есть два вопроса.

Первый. Иногда перед созданием советника необходимо протестировать несколько торговых стратегий вручную. Это нормально для M1, M5 и M15. Но для H1 и более старших таймфреймов это сложно. Какой кусок кода нужно включить в один индикатор (любой), чтобы сигнализация (звуковая или еще какая) сигнализировала о пересечении двух линий одного индикатора? Например, индикатор имеет только две линии, которые должны пересекаться (с сигнализацией).

Второе. У нас есть два индикатора. Какие части кода нужно включить в один или два индикатора для индикации пересечения двух линий: одной линии от первого индикатора и другой линии от другого (все эти две линии, конечно, в одном окне)?

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

 

Оповещения на кресте!

newdigital:
У меня есть два вопроса.

Первый. Иногда перед созданием советника необходимо протестировать некоторые торговые srateg вручную. Это нормально для M1, M5 и M15. Но для H1 и более старших таймфреймов это сложно. Какой кусок кода нужно включить в один индикатор (любой), чтобы сигнализация (звуковая или еще какая) сигнализировала о пересечении двух линий одного индикатора? Например, индикатор имеет только две линии, которые должны пересекаться (с сигнализацией).

Второе. У нас есть два индикатора. Какие части кода нужно включить в один или два индикатора, чтобы они показывали пересечение двух линий: одна линия - от первого индикатора, другая - от другого (все эти две линии, конечно, в одном окне)?

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

Второй вопрос требует доработки (суть идеи в работе с GlobalVariablеst, чтобы оба индикатора знали друг друга!)

Я поработаю над ним позже.

Вот код первого вопроса. Он нуждается в проверке (сейчас 6:40 утра здесь ).

//+------------------------------------------------------------------+

//| Demo1.mq4 |

//| Coders' Guru. |

//| https://www.forex-tsd.com |

//+------------------------------------------------------------------+

#property copyright "Coders Guru"

#property link "https://www.forex-tsd.com"

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_color2 Blue

//---- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(1,ExtMapBuffer2);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Custor indicator deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

bool Crossed (double line1 , double line2 )

{

static string last_direction = "";

string current_dirction = "";

if(line1>line2)current_dirction = "up";

if(line1<=line2)current_dirction = "down";

if(current_dirction != last_direction)

{

Alert("CRROSED: Line1 is (" + current_dirction + ") Line2 now");

last_direction = current_dirction;

return (true);

}

else

{

return (false);

}

}

int start()

{

int counted_bars=IndicatorCounted();

//---- check for possible errors

if (counted_bars<0) return(-1);

//---- last counted bar will be recounted

if (counted_bars>0) counted_bars--;

int pos=Bars-counted_bars;

while(pos>=0)

{

ExtMapBuffer1[pos]= iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,pos);

ExtMapBuffer2[pos]= iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,pos);

pos--;

}

Print(Crossed (ExtMapBuffer1[0],ExtMapBuffer2[0]));

//----

return(0);

}

//+------------------------------------------------------------------+
 

вопрос

Уважаемые кодерсгуру,

У меня есть несколько систем, которые мне нужно помочь перевести из Tradestation в Meta, а затем одна базовая торговая система. Я работаю над этим с нуля. Какова ваша почасовая ставка за помощь в этой услуге?

Некоторые системы будут опубликованы, а 2 системы я купил и подписал соглашение о конфиденциальности, так что я могу их опубликовать, и мне придется попросить вас поработать над ними в частном порядке за определенную плату. Какова ваша оплата?

Большое спасибо,

Рик

 

Еще нет. Я еще не тестировал.

Завтра вставлю этот код в какой-нибудь индикатор (любой с двумя пересекающимися линиями).

 

CrossedAlerts

newdigital:
У меня есть два вопроса.

Первый. Иногда перед созданием советника необходимо протестировать некоторые торговые srateg вручную. Это нормально для M1, M5 и M15. Но для H1 и более старших таймфреймов это сложно. Какой кусок кода нужно включить в один индикатор (любой), чтобы сигнализация (звуковая или еще какая) сигнализировала о пересечении двух линий одного индикатора? Например, индикатор имеет две линии, которые должны пересекаться (с сигнализацией).

Второй...

Привет, newdigital,

Вы протестировали код? Это то, что вы хотите?

Файлы:
 

Урок по бэктестингу

Здравствуйте,

не могли бы вы объяснить, как работать с бэктестингом?

что нужно сделать для подготовки нашего советника к бэктестингу?

как работает бэктестинг (каждый тик, цена открытия...)?

спасибо.

 
codersguru:
Привет newdigital, Вы протестировали код? Это то, что вы хотите?

Я протестировал его. Это здорово.

Мы можем использовать его в качестве образца.

Или если нам нужен просто звук, мы можем использовать прилагаемый код.

Файлы:
 

Или если нам нужен только звук (необязательно) и текст, написанный на графике (тоже необязательно), мы можем использовать этот код (прилагается).

Файлы:
 

Идеально!

newdigital:
Или если нам нужен только звук (необязательно) и текст, написанный на графике (тоже необязательно), мы можем использовать этот код (прилагается).

newdigital,

вы рок!

Спасибо

 

Я сделал очень маленькие советники для предупреждения о пересечении RSTL и Супертренда.

Первый работает на текущем баре.

Второй работает на любом баре (текущем, предыдущем или любом).

Только алерты.

Извините за плохое кодирование: мы еще не изучали советники.

И, возможно, я сделал какую-то ошибку ...

но я протестировал и все работает.

Файлы:
cross.mq4  3 kb
cross1.mq4  3 kb
rstl.mq4  4 kb
Причина обращения: