Light Style© by Fisana

Перейти к содержимому


Инвестиционные фонды NordFx: профессиональное управление и прозрачность


NordFX

Фотография

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


  • Пожалуйста, авторизуйтесь, чтобы ответить
31 ответов в этой теме

#1 Liv

Liv

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 162 сообщений

Опубликовано 05 Июнь 2007 - 01:26

Здесь будут собираться все хитрости и трюки этого простого языка. Приглашаю всех делиться своими знаниями.
Удачи!

#2 MAMOHT

MAMOHT

    VIP - Market Tendencies Department

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 228 сообщений

Опубликовано 05 Июнь 2007 - 01:54

Иногда в стратегии выбает необходимо определить пересечение двух индикаторов.
В сложных случаях код, подобный этому, работает не четко:
MQL
//aV1 - один индикатор
//aV2 - другой индикатор
[color=blue;font-weight:bold]if[/color]( aV1[pos] > aV2[pos] && aV1[pos + 1] < aV2[pos + 1] )
{
// ......
}


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

MQL
[color=blue;font-weight:bold]int[/color] isCross([color=blue;font-weight:bold]double[/color] aV1[], [color=blue;font-weight:bold]double[/color] aV2[], [color=blue;font-weight:bold]int[/color] aSh[color=blue;font-weight:bold]if[/color]t, [color=blue;font-weight:bold]int[/color] aMinD[color=blue;font-weight:bold]if[/color], [color=blue;font-weight:bold]int[/color] aLimit[color=red;]Bars[/color])
{
// 0 - не пересекается
// 1 - aV1 пересекает aV2 снизу вверх
// -1 - aV1 пересекает aV2 сверху вниз
// aMinD[color=blue;font-weight:bold]if[/color] - минимальное расхождение в пунктах, которое не считается переплетением
// aLimit[color=red;]Bars[/color] - как глубоко в историю искать факт пересечения

 [color=blue;font-weight:bold]int[/color] i;

 [color=blue;font-weight:bold]if[/color] (aV1[aSh[color=blue;font-weight:bold]if[/color]t] > aV2[aSh[color=blue;font-weight:bold]if[/color]t]) //aV1 больше, ищем пересечение снизу вверх
 {
  [color=blue;font-weight:bold]for[/color]( i=0; i<aLimit[color=red;]Bars[/color]; i++)
  {
 [color=blue;font-weight:bold]if[/color]( aV2[i + aSh[color=blue;font-weight:bold]if[/color]t] - aV1[i + aSh[color=blue;font-weight:bold]if[/color]t] >= aMinD[color=blue;font-weight:bold]if[/color]*Po[color=blue;font-weight:bold]int[/color] ) //превысили минимальное расхождение
 [color=blue;font-weight:bold]return[/color] (1);
  }
 }

 [color=blue;font-weight:bold]if[/color] (aV1[aSh[color=blue;font-weight:bold]if[/color]t] < aV2[aSh[color=blue;font-weight:bold]if[/color]t]) //aV1 меньше, ищем пересечение сверху вниз
 {
  [color=blue;font-weight:bold]for[/color]( i=0; i<aLimit[color=red;]Bars[/color]; i++)
  {
 [color=blue;font-weight:bold]if[/color]( aV1[i + aSh[color=blue;font-weight:bold]if[/color]t] - aV2[i + aSh[color=blue;font-weight:bold]if[/color]t] >= aMinD[color=blue;font-weight:bold]if[/color]*Po[color=blue;font-weight:bold]int[/color] ) //превысили минимальное расхождение
 [color=blue;font-weight:bold]return[/color] (-1);
  }
 }

 //если мы здесь, значит кривые совпадают
 //aV1 == aV2
 [color=blue;font-weight:bold]return[/color] (0);
}


Исправления и предложения приветствуются.
Скоро появится усовершенствованная версия функции.

Сообщение изменено: MAMOHT, 05 Июнь 2007 - 02:24 .

Александр. ICQ: 250-84-85-80

#3 Zhunko

Zhunko

    vip-участник

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 2 441 сообщений

Опубликовано 01 Август 2007 - 11:47

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

#4 _Серега_

_Серега_

    записался

  • Пользователи ST test (off)
  • PipPip
  • 32 сообщений

Опубликовано 14 Октябрь 2007 - 02:11

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

Для контроля пересечения используется одновременно нескольких условий, соответственно в цикле "while..." или "for..." обрабатываем нужный диапазон баров, в условие - "if" побарно считаем пересечения, объеденяя каждое из этих трех условий логическим ИЛИ - "||":
1) на текушем бару значения индикаторов равны.
2) на предыдущем баре значение индикатора 1 больше значения индикатора 2 И - "&&" на текущем баре значение индикатора 1 меньше значение индикатора 2 (пересечение сверху).
3) на предыдущем баре значение индикатора 2 больше значения индикатора 1 И - "&&" на текущем баре значение индикатора 2 меньше значение индикатора 1 (пересечение снизу).
И не думать - как приземлится, а у птиц свободе учиться - лететь, оставив - все то что жаль... (A-MЕГА)

#5 VAndrey

VAndrey

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 99 сообщений

Опубликовано 26 Декабрь 2007 - 03:19

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

#6 Zhunko

Zhunko

    vip-участник

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 2 441 сообщений

Опубликовано 26 Декабрь 2007 - 10:27

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

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

#7 VAndrey

VAndrey

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 99 сообщений

Опубликовано 27 Декабрь 2007 - 05:00

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


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

#8 Zhunko

Zhunko

    vip-участник

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 2 441 сообщений

Опубликовано 27 Декабрь 2007 - 05:10

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

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

#9 Shu

Shu

    Option Trader

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 1 897 сообщений

Опубликовано 29 Декабрь 2007 - 07:31

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

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

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

#10 VAndrey

VAndrey

    прописался

  • Пользователи ST test (off)
  • PipPipPip
  • 99 сообщений

Опубликовано 29 Декабрь 2007 - 05:49

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

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


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

#11 Shu

Shu

    Option Trader

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 1 897 сообщений

Опубликовано 30 Декабрь 2007 - 05:39

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

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

#12 Liv

Liv

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 162 сообщений

Опубликовано 02 Январь 2008 - 10:39

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

#13 rang

rang

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 462 сообщений

Опубликовано 10 Январь 2008 - 06:20

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

Сообщение изменено: rang, 10 Январь 2008 - 06:22 .


#14 Zhunko

Zhunko

    vip-участник

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 2 441 сообщений

Опубликовано 10 Январь 2008 - 06:39

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

На прямую нельзя.
В кривую можно.
Отправляешь на почту из МТ4 письмо.
И если твой провайдер мобильной связи поддерживает SMS из почты, то можно получить от туда сообщение.

#15 rang

rang

    живет тут

  • Пользователи ST test (off)
  • PipPipPipPipPip
  • 462 сообщений

Опубликовано 11 Январь 2008 - 02:08

ок, спасибо
пока реализовал идею на perl




Посетителей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных пользователей

Рейтинг брокеров форекс: кто лидер, кто аутсайдер и почему?




Masterforex-V NordFX

Rambler's Top100

Принимаем Z-Payment