Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи хранилище исходного кода MQL5 Storage. Это бесплатно!
MetaQuotes Software Corp.
Модератор
177283
MetaQuotes Software Corp. 2015.07.15 12:30 

Опубликована статья Price Action. Автоматизация торговли по внутреннему бару:

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

Каждый, кто изучает рынок Forex, рано или поздно сталкивается с Price Action. Это не просто методика чтения графиков, это целая система определения возможного направления движения цены. В данной статье мы детально рассмотрим паттерн "внутренний бар" и создадим эксперта, который будет отслеживать данный паттерн и на его основании принимать торговые решения.

Что же такое Price Action? Это безындикаторный метод определения движения цены. Определение происходит за счет образовавшихся сложных и простых паттернов, а также построения вспомогательных графических элементов на графике (горизонтальные, вертикальные и трендовые линии, уровни Фибоначчи, уровни поддержки/сопротивления и так далее).

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

Внутренний бар

Внутренний бар (Inside Bar) — это бар, тело и тень которого находятся полностью в диапазоне предыдущего (определяющего) бара. Максимум внутреннего бара находится ниже максимума, а минимум — выше минимума определяющего бара. Определяющий бар также часто называют измерительным. В качестве паттерна и потенциального сигнала для входа рассматривают внутренний бар вместе с определяющим.

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

Рис. 2. Схематическое изображение внутреннего бара

Рис. 2. Схематичное изображение внутреннего бара

Автор: Dmitry Iglakov

Михаил
1716
Михаил 2015.07.20 18:32  
MetaQuotes Software Corp.:

Опубликована статья Price Action. Автоматизация торговли по внутреннему бару:

Автор: Dmitry Iglakov

   Зачем делать 

open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);

 если можно

open1 = Open[1];

 или вообще обойтись без создания переменных Open1, Open2 и т.д. ?

Dmitry Iglakov
21430
Dmitry Iglakov 2015.07.20 18:45  
Михаил:

   Зачем делать 

 если можно

 или вообще обойтись без создания переменных Open1, Open2 и т.д. ?

Здравствуйте! Значения не имеет. Вы можете писать как угодно. Это лично мой стиль написания кода. + часто используют в написании именно "open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);"
Михаил
1716
Михаил 2015.07.21 14:11  
Dmitry Iglakov:
Здравствуйте! Значения не имеет. Вы можете писать как угодно. Это лично мой стиль написания кода. + часто используют в написании именно "open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);"

   Про стиль всё понятно. Кто - то и "индусский код" практикует и прочее "как угодно". ))

  Про MQL5 тоже речи нет. Там нет предопределённых переменных Open, Close, High, Low как в MQL4. 

  Использование в MQL4 коде конструкций вроде:

open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);

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

Индусский код в Микрочипе
Индусский код в Микрочипе
  • habrahabr.ru
Понадобилось быстро подключить SD-карточку к микроконтроллеру, и задача казалась простецкой — добрый микрочип предлагает библиотеки для всего чего угодно (ах, поставить линк на библиотеки — не судьба), но после первого взгляда на их код, волосы на голове начали шевелиться. Те кто общался с саппортом микрочипа, наверное замечал что зачастую...
Rostislav Voitsehovsky
550
Rostislav Voitsehovsky 2015.07.21 14:47  
Спасибо) Вещь хорошая, в хозяйстве пригодится
Dmitry Iglakov
21430
Dmitry Iglakov 2015.07.21 15:27  
Михаил:

   Про стиль всё понятно. Кто - то и "индусский код" практикует и прочее "как угодно". ))

  Про MQL5 тоже речи нет. Там нет предопределённых переменных Open, Close, High, Low как в MQL4. 

  Использование в MQL4 коде конструкций вроде:

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

Код написан верно. На производительность никак не влияет, так как Price Action работает минимум на H4 или дневных графиках и код срабатывает только при открытии новой свечи. Да и посмотрите на сам код! 10 переменных Вам загрузят систему? Ну-ну... Я понимаю, когда большой объем кода, много циклов, огромное количество переменных и т.д. Тогда есть смысл в его оптимизации. 

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

P.S.: А по поводу индусского кода! Опытные программисты даже не станут читать данную статью, поскольку все что им интересно, они могут написать сами. А в данном примере нет ничего сложного. Из этого можно сделать вывод, что данная статья предназначена для начинающих и интересующихся. По этому, не плохо было бы расписать код подробнее и прокомментировать каждый шаг, что бы не составило труда разобраться.

Михаил
1716
Михаил 2015.07.21 15:50  
Dmitry Iglakov:

Код написан верно. На производительность никак не влияет, так как Price Action работает минимум на H4 или дневных графиках и код срабатывает только при открытии новой свечи. Да и посмотрите на сам код! 10 переменных Вам загрузят систему? Ну-ну... Я понимаю, когда большой объем кода, много циклов, огромное количество переменных и т.д. Тогда есть смысл в его оптимизации. 

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

P.S.: А по поводу индусского кода! Опытные программисты даже не станут читать данную статью, поскольку все что им интересно, они могут написать сами. А в данном примере нет ничего сложного. Из этого можно сделать вывод, что данная статья предназначена для начинающих и интересующихся. По этому, не плохо было бы расписать код подробнее и прокомментировать каждый шаг, что бы не составило труда разобраться.

    

Я выпендриваюсь и придираюсь. )

P.S.: Есть мнение, что более-менее адекватные советники и индикаторы, как правило, имеют большой объём кода, много циклов, огромное количество переменных и т.д., о чём не плохо было бы упомянуть расписывая код подробнее и комментируя каждый шаг.   

Dmitry Iglakov
21430
Dmitry Iglakov 2015.07.21 16:20  
Михаил:

    

Я выпендриваюсь и придираюсь. )

P.S.: Есть мнение, что более-менее адекватные советники и индикаторы, как правило, имеют большой объём кода, много циклов, огромное количество переменных и т.д., о чём не плохо было бы упомянуть расписывая код подробнее и комментируя каждый шаг.   

Полностью с Вами согласен! Но судя из названия статьи, мы разбираем автоматизацию торговли именно по Внутреннему бару, и только по нему. А написание более-менее адекватных, сложных  советников, с большим объемом кода - это уже совершенно другая статья, не имеющая отношения к данной. Из чего следует, что загружать данную статью таким материалом не имеет смысла.

Михаил
1716
Михаил 2015.07.21 16:45  
Dmitry Iglakov:

Полностью с Вами согласен! Но судя из названия статьи, мы разбираем автоматизацию торговли именно по Внутреннему бару, и только по нему. А написание более-менее адекватных, сложных  советников, с большим объемом кода - это уже совершенно другая статья, не имеющая отношения к данной. Из чего следует, что загружать данную статью таким материалом не имеет смысла.

   Благодарю за ответы.

   Извиняюсь, что отнял время.

   Успехов в делах. ) 

Dmitry Iglakov
21430
Dmitry Iglakov 2015.07.21 16:55  
Михаил:

   Благодарю за ответы.

   Извиняюсь, что отнял время.

   Успехов в делах. ) 

Спасибо! И Вам!
Vitaly Muzichenko
2496
Vitaly Muzichenko 2015.07.21 21:43  

Немного логичнее написать вместо:

if(lang == "Russian") {Print("Ордер успешно открыт. ", result);}
if(lang == "English") {Print("The order is successfully opened.", result);}

так:

if(lang == "Russian")                                 // только если терминал русский
 {
  Print("Ордер успешно открыт. ", result);
 } else {                                             // если любой другой (не русский)
  Print("The order is successfully opened.", result);
 }
/ /1234
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий