Перейти к содержанию
Форекс Форум трейдеров Академии «MasterForex-V»

Хитрости и трюки MQL


Рекомендуемые сообщения

  • Ответов 31
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Иногда в стратегии выбает необходимо определить пересечение двух индикаторов.

В сложных случаях код, подобный этому, работает не четко:

MQL
//aV1 - один индикатор

//aV2 - другой индикатор

if( aV1[pos] > aV2[pos] && aV1[pos + 1] < aV2[pos + 1] )

{

// ......

}

 

Теже переплетенные SMA сущее наказание для бокового рынка. Стратегия становится непредсказуемой.

Предлагаю такой выход из положения:

 

MQL
int isCross(double aV1[], double aV2[], int aShift, int aMinDif, int aLimitBars)

{

// 0 - не пересекается

// 1 - aV1 пересекает aV2 снизу вверх

// -1 - aV1 пересекает aV2 сверху вниз

// aMinDif - минимальное расхождение в пунктах, которое не считается переплетением

// aLimitBars - как глубоко в историю искать факт пересечения

 

 int i;

 

 if (aV1[aShift] > aV2[aShift]) //aV1 больше, ищем пересечение снизу вверх

 {

  for( i=0; i<aLimitBars; i++)

  {

 if( aV2[i + aSh[color=blue;font-weight:bold]if[/color]t] - aV1[i + aSh[color=blue;font-weight:bold]if[/color]t] >= aMinDif*Point ) //превысили минимальное расхождение

 return (1);

  }

 }

 

 if (aV1[aShift] < aV2[aShift]) //aV1 меньше, ищем пересечение сверху вниз

 {

  for( i=0; i<aLimitBars; i++)

  {

 if( aV1[i + aSh[color=blue;font-weight:bold]if[/color]t] - aV2[i + aSh[color=blue;font-weight:bold]if[/color]t] >= aMinDif*Point ) //превысили минимальное расхождение

 return (-1);

  }

 }

 

 //если мы здесь, значит кривые совпадают

 //aV1 == aV2

 return (0);

}

 

Исправления и предложения приветствуются.

Скоро появится усовершенствованная версия функции.

Изменено пользователем MAMOHT
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
Для контроля пересечений надо брать прямоугольник с координатами контролируемых линий, которые его пересекают, и исследовать возможные комбинации прохода линий. Комбинаций не так уж и много.
Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...

Про контроль пересечений (например мувингов).

 

Для контроля пересечения используется одновременно нескольких условий, соответственно в цикле "while..." или "for..." обрабатываем нужный диапазон баров, в условие - "if" побарно считаем пересечения, объеденяя каждое из этих трех условий логическим ИЛИ - "||":

1) на текушем бару значения индикаторов равны.

2) на предыдущем баре значение индикатора 1 больше значения индикатора 2 И - "&&" на текущем баре значение индикатора 1 меньше значение индикатора 2 (пересечение сверху).

3) на предыдущем баре значение индикатора 2 больше значения индикатора 1 И - "&&" на текущем баре значение индикатора 2 меньше значение индикатора 1 (пересечение снизу).

Ссылка на комментарий
Поделиться на другие сайты

  • 2 месяца спустя...
Всем привет, если есть у кого книга: MQL4. Полное руководство по языку программирования MetaQuotes Language 4.pdf, поделитесь плиз, буду очень благодарен.
Ссылка на комментарий
Поделиться на другие сайты

Всем привет, если есть у кого книга: MQL4. Полное руководство по языку программирования MetaQuotes Language 4.pdf, поделитесь плиз, буду очень благодарен.

Почему справка МетаЭдитора не подходит?

Ссылка на комментарий
Поделиться на другие сайты

Почему справка МетаЭдитора не подходит?

 

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

По F1 доступна справка по всем функциям. Там есть примеры и основы языка.

Ссылка на комментарий
Поделиться на другие сайты

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

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

Вадим правильно тебе про опыт сказал.

 

а если хочешь "разжёвывания" - сходи на mql4.com - там найдёшь много интересного. сходи на сайт Ведихина. сходи на форум альпари - там есть ссылки на "статьи" разной степени "разжёванности" Rosh'а, есть ветки как раз для тех, кто не имеет опыта никакого в программировании.. хотя, честно говоря, мне сложно оценить их реальную ценность для неподготовленного человека..

Ссылка на комментарий
Поделиться на другие сайты

Вадим правильно тебе про опыт сказал.

 

а если хочешь "разжёвывания" - сходи на mql4.com - там найдёшь много интересного. сходи на сайт Ведихина. сходи на форум альпари - там есть ссылки на "статьи" разной степени "разжёванности" Rosh'а, есть ветки как раз для тех, кто не имеет опыта никакого в программировании.. хотя, честно говоря, мне сложно оценить их реальную ценность для неподготовленного человека..

 

Ну и что же тут правильного? подход сходи туда, затем туда и еще вот туда, считаю неправильным, по той причине, что для того, чтобы разбираться в какой-либо области, нужно ее изучить комплексно, начиная с азов(основы), а уже потом, когда имеется определенная база знаний, можно и лазить по вышеназванным сайтам, набирать опыт. ИМХО.

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

Ссылка на комментарий
Поделиться на другие сайты

Ну и что же тут правильного? подход сходи туда, затем туда и еще вот туда, считаю неправильным, по той причине, что для того, чтобы разбираться в какой-либо области, нужно ее изучить комплексно, начиная с азов(основы),

ну что ж, я тебе сказал где всё именно "разжёвано", но.. ты прав! оставайся правым - я рад, что ты умнее меня. :smile:

Ссылка на комментарий
Поделиться на другие сайты

Для того, чтобы научиться писать скрипты на MQL4 достаточно того, что написано на этом форуме плюс справка в MetaEditor. Язык очень простой, не объектный, линейно-процедурное программирование является самой удобной формой для написания программ. Но для этого нужно учиться, самому писать.... а иначе будет не обучение, а просто списывание - так ничего нового не изобретёшь!
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
возможно ли реализовать отправку СМС при определенном событии на MQL/MQL4? Изменено пользователем rang
Ссылка на комментарий
Поделиться на другие сайты

возможно ли реализовать отправку СМС при определенном событии на MQL/MQL4?

На прямую нельзя.

В кривую можно.

Отправляешь на почту из МТ4 письмо.

И если твой провайдер мобильной связи поддерживает SMS из почты, то можно получить от туда сообщение.

Ссылка на комментарий
Поделиться на другие сайты


×
×
  • Создать...