Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
191544
MetaQuotes Software Corp.  

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

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

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

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

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

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

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

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

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

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

Автор: Dmitry Iglakov

Михаил
2277
Михаил  
MetaQuotes Software Corp.:

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

Автор: Dmitry Iglakov

   Зачем делать 

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

 если можно

open1 = Open[1];

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

Dmitry Iglakov
29999
Dmitry Iglakov  
Михаил:

   Зачем делать 

 если можно

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

Здравствуйте! Значения не имеет. Вы можете писать как угодно. Это лично мой стиль написания кода. + часто используют в написании именно "open1 = NormalizeDouble(iOpen(Symbol(), Period(), 1), Digits);"
Михаил
2277
Михаил  
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
823
Rostislav Voitsehovsky  
Спасибо) Вещь хорошая, в хозяйстве пригодится
Dmitry Iglakov
29999
Dmitry Iglakov  
Михаил:

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

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

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

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

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

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

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

Михаил
2277
Михаил  
Dmitry Iglakov:

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

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

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

    

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

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

Dmitry Iglakov
29999
Dmitry Iglakov  
Михаил:

    

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

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

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

Михаил
2277
Михаил  
Dmitry Iglakov:

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

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

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

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

Dmitry Iglakov
29999
Dmitry Iglakov  
Михаил:

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

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

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

Спасибо! И Вам!
Vitaly Muzichenko
7646
Vitaly Muzichenko  

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

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);
 }
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий