Обсуждение статьи "Почти конструктор для создания советника"

 

Опубликована статья Почти конструктор для создания советника:

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

Советник, созданный конструктором, имеет сразу очень много настроек, компонуя которые можно создавать уникальные стратегии. В версии 4.XXX применяются такие правила: 

  • используется текущий символ (символ на графике которого запущен советник)
  • Take Profit, Stop Loss и Trailing во входных параметрах задаются в Points. Points — размер пункта текущего инструмента в валюте котировки, например, для пары 'EURSD' 1.00055-1.00045=10 points.

Что такое 'points' всегда можно увидеть на графике символа, если перетащить инструмент Перекрестие:

points

Рис. 1. Points

Автор: Vladimir Karputov

 
А прикрепленных файлов то и не видать. Только один.
 
Andrei Novichkov #:
А прикрепленных файлов то и не видать. Только один.

Техническая заминка. Чуть опосля будут.

 

Добрый день, спасибо за статью, но есть вопрос...)

Почему бы не использовать стандартный класс и уже его нагружать дополнительными функциями, ведь это максимально просто и удобно, чем придумывать свой велосипед?

 
Daniil Kurmyshev #:

Добрый день, спасибо за статью, но есть вопрос...)

Почему бы не использовать стандартный класс и уже его нагружать дополнительными функциями, ведь это максимально просто и удобно, чем придумывать свой велосипед?

А Вы наверное сами пробовали дополнять CExpert и у Вас даже получилось?

 
Vladimir Karputov #:

А Вы наверное сами пробовали дополнять CExpert и у Вас даже получилось?

Да, вот пример как можно с помощью наследования от базового класса CExpert, в новом классе CExpertCustom :

1. Реализована возможность дополнять позиции новыми сделками (мультивход)

так как базовый класс имеет виртуальные функции они были переопределены в классе потомке и скрыты от дальнейшего использования в будущих классах наследниках от CExpertCustom

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

Итого: 

Стандартный класс CExpert имеет высокую скорость работы

Максимально надежный и проверенный

Его легко дополнять и сопровождать

Есть возможность создавать мультивалютного эксперта в одном боте, если унаследоваться от нового класса CExpertCustom

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

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

Файлы:
 
Daniil Kurmyshev #:

Да, вот пример как можно с помощью наследования от базового класса CExpert, в новом классе CExpertCustom :

1. Реализована возможность дополнять позиции новыми сделками (мультивход)

так как базовый класс имеет виртуальные функции они были переопределены в классе потомке и скрыты от дальнейшего использования в будущих классах наследниках от CExpertCustom

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

Итого: 

Стандартный класс CExpert имеет высокую скорость работы

Максимально надежный и проверенный

Его легко дополнять и сопровождать

Есть возможность создавать мультивалютного эксперта в одном боте, если унаследоваться от нового класса CExpertCustom

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

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

CExpert и всё сгенерированное им уже давно не проходит проверки. Поэтому и был сделан свой набор торговых функций: с множеством проверок. Показанный Вами класс не имеет и доли функционала моего подхода. 

 
Vladimir Karputov #:

CExpert и всё сгенерированное им уже давно не проходит проверки. Поэтому и был сделан свой набор торговых функций: с множеством проверок. Показанный Вами класс не имеет и доли функционала моего подхода. 

Стандартные библиотек, которые вы использовали: 

#include <Trade\PositionInfo.mqh>

#include <Trade\Trade.mqh>

#include <Trade\SymbolInfo.mqh>

#include <Trade\AccountInfo.mqh>

#include <Trade\DealInfo.mqh>

#include <Trade\OrderInfo.mqh>

#include <Expert\Money\MoneyFixedMargin.mqh> 

В вашем функциональном файле "Trading engine 4" используются точно такие же библиотеки, что в классе CExpert, просто обработку вы писали самостоятельно для класса Trade, а проверки и о подобная механика, которую вы разработали уже реализована в классах CExpertBase, CExpertTrade и других..., про это говорю речь, по этому и говорю про создание очередного велосипеда, ведь можно было переработать класс CExpert, чтобы он прошел проверку, если у вас по какой-то причине не прошел, сделав это 1 раз, больше такой проблемы бы не возникло.

Считаю, что у вас получился хороший набор базовых функций с которыми очень сложно работать, если их использовать в крупном проекте, но вот копировать функции из вашего донор проекта в свои, многим очень даже понравиться, но использовать целиком будет тяжело в отличии от класса CExpert, который легко развернуть из коробки, через тот же  "MQL Wizard", который упоминается в статье.

 
Congratulations on the excellent article.
The files of this article are not attached to the read terminal, only "Indicators_Code.mq5".

Could you added to the article please!?

Thanks! (Sorry for my English)
 
Архив в файлами:
Файлы:
9717_411.zip  56 kb
 
Vladimir Karputov #:
Архив в файлами:

привет Vladimir,

У меня вопрос о «Pending Orders» и соответствующем параметре «Maximum Spread» в торговом движке 4.004;


Как долго эта функция ожидает установки отложенных ордеров до достижения соответствующего спреда?

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

Причина обращения: