The X: 10 шагов для программирования своей стратегии!
Exp4 – Partial Close and Trail Частичное закрытие позиций при откатах
Описание
Способ программирования информационной панели в любой советник.
Успешность любой программы – это, в первую очередь, интерфейс программы и первое впечатление о программе.
Мы не можем гарантировать, что информация и интерфейс программы даст Вам прибыль на сделках, но мы точно скажем, что даже самый простой интерфейс программы способен усилить первое впечатление.
В данной статье мы расскажем Вам, как можно применить нашу информационную панель для советника EAPADPRO
EAPADPRO – Владей информацией!
EapadPRO – это информация, которую получает пользователь любого советника в реальном времени.
Для того, чтобы создать такую панель нам потребовалось около 2 недель, но чтобы привести интерфейс программы до дружественного дизайна (graphical user interface, GUI), нам потребовалось месяцы кропотливой работы.
Не имея достаточного опыта в разработке подобных панелей, Вы не сможете сделать интерфейс программы пригодным для использования.
Мы не настаиваем на идеальном GUI нашей панели, но по опыту и отзывам, она имеет ряд полезных блоков, которые дают полную картину происходящего на графике Вашего терминала.
Мы предлагаем Вам использовать нашу панель в Ваших экспертах. EAPADPRO – Владей информацией!
С чего начать?
Для начала Вы должны ознакомится с полной инструкцией по использованию и управлению нашей панелью. Читать EAPadPRO – Информационная панель для наших экспертов
Наша панель распространяется как БИБЛИОТЕКА (LIBRARY), которую можно использовать и в МТ4 и в МТ5 (кроссплатформенный код)
Вы можете скачать нашу библиотеку в разделе советники для форекс , я поместил в архив библиотеки и примеры использования.
Все, что Вам нужно: Наша библиотека EAPADPRO LIBRARY и 10 минут времени для установки в Вашего эксперта….
Установка библиотеки
- Скопируйте папку MQL5 или MQL4 в папку Вашего терминала \ ;
- Данные папки включают все нужные файлы и ресурсы для работы нашей библиотеки;
- Откройте Вашего эксперта;
- Откройте наш пример и пошаговое руководство по установке нашего кода, файл Exp – EAPADPRO v16 LIBRARY TEST;
- Выполняйте каждый Шаг (Step) так, как написано в рекомендации или используйте нашу пошаговую инструкцию с сайта .
Персонализация EAPADPRO
Все, что Вы можете изменить в нашей панели описано в данном пункте:
- versionea – Версия вашего эксперта, которое отображается на панели;
- BMPLOGO – логотип Вашего советника BMP 60×60, которое отображается на панели;
- icon – Иконка Вашего эксперта, которая отображается в свойствах эксперта;
- defEANAME – имя Вашего советника, которое отображается на панели;
- YourName – Ваше имя или ник, который отображается на панели;
- copyright – Ваш копирайт, который отображается в свойствах советника;
- CreateInputs – Функция вывода на панель ваших внешних переменных. Всего доступно 10 таких параметров. Формат заполнения: “Название”,”Значение”;
- CreateStrategy – Функция вывода на панель ваших значений стратегии. Всего доступно 10 таких параметров. Формат заполнения: “Название”,”Значение”;
- MagicForEaPadPRO = 0 – Магический номер, за которым будет следить наша панель (Вся информация фильтруется по магическому номеру), при -1 = панель будет брать все позиции с счета по данному символу, при 0 = только ручные;
- MagicForEaPadPRO_Open=-1 – Магический номер, который будет присвоен позициям, открытым с нашей панели;
- CommentForEaPadPRO=”” – Комментарий, который будет присвоен позициям, открытым с нашей панели;
- TypeFillingForEaPadPRO=0 – Тип заливки ордеров при открытии, только для терминала МТ5;
- ShowBuySell=true – Показывать панель торговли в 1 клик (BUY SELL)
Также Вы можете установить внешние переменные:
- ShowEaPadPro=true;
- FontName=”Roboto”;
- Notice_Open_NameSound=”ok”;
- Notice_Close_NameSound=”request”;
- Notice_Modify_NameSound=”stops”;
- Notice_Error_NameSound=”alert2″;
Условия использования
Наша библиотека с информационной панелью EAPADPRO распространяется бесплатно на условиях обратной ссылки на нашу страницу.
Если Вы желаете продавать Вашего эксперта в маркете или в интернете , Вам необходимо добавить следующий текст в описание Вашего продукта:
- Информационная графическая панель EAPADPRO разработана командой Expforex.
- Все права на данную панель EAPADPRO принадлежат Владиславу Expforex.
- Автор информационной панели EAPADPRO не несет ответственности за советника или индикатора, которые используют нашу панель.
- Наша панель EAPADPRO разработана исключительно в целях предоставления дополнительной информации о торговле на Вашем счете.
Программирование EAPADPRO 10 шагов
В нашем примере Вы можете найти шаги (STEP), которые нужно выполнить для того, чтобы панель отображалась в Вашем эксперте!
Шаг 1:
Скопируйте следующий код в верхнюю часть вашего эксперта и измените те данные, которые доступны для редактирования (Персонализация EAPADPRO) :
// Step 1 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ // Вставляем в начале кода //+------------------------------------------------------------------+ // Авторские права моей панели! Не изменять! #define EAPADPRODescription "\n\nEAPADPRO pad by www.expforex.com" #property strict #ifdef __MQL5__ #define MT "MT5" #endif #ifdef __MQL4__ #define ORDER_FILLING_FOK 0 #define MT "MT4" #endif //=========================== // Данные о Вашей программе | //=========================== // Уведомление о том, что это демо версия вашей программы (Будет отображаться в панели) bool DEMO=false; // Версия #define versionea "77.777" #property version versionea // BMP LOGO 60x60 #define BMPLOGO "Images\\EAPADPRO_Images\\YOURLOGO.bmp" #resource "\\"+BMPLOGO; // Иконка Вашего продукта #property icon "\\Images\\EAPADPRO_Images\\YOURLOGO.ico" // Имя эксперта #define defEANAME "EA NAME" // Ваше описание продукта #property description defEANAME+" for "+MT+" "+EAPADPRODescription // Ваш ник или имя, отображается внизу панели #define YourName "Your Nick" // Ваши авторские права #property copyright YourName+" Your Copyright" // ###########################################################################
Шаг 2:
Данная замена нужна только для того, чтобы исключить одинаковый вывод в журнал.
// Step 2 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ // Заменить Print на EAPADPRO_LIBRARY_PrintToLogs // Например: EAPADPRO_LIBRARY_PrintToLogs("Этот принт будет напечатан в журнале "); //+------------------------------------------------------------------+ // ###########################################################################
Шаг 3:
Для того, чтобы опция MODIFY ONLY работала в Вашем эксперте, Вам необходимо добавить следующий код if(MODIFYONLY)return(false); в функцию открытия позиций или ордеров.
// Step 3 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ // Добавить в начало функции открытия позиций или ордеров //+------------------------------------------------------------------+ // if(MODIFYONLY)return(false); // ###########################################################################
Шаг 4:
Следующая функция вывода информации об ошибке в виде PUSH уведомления на телефон, почту, и на экран терминала. Все эти уведомления в будущем можно будет отключить в настройках нашей панели.
// Step 4 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ // Добавить в обработку ошибок для уведомлений раздела NOTICE: //+------------------------------------------------------------------+ // EAPADPRO_LIBRARY_Notice_ErrorCheck(информация, информация о работе функции,номер ошибки); // например: // EAPADPRO_LIBRARY_Notice_ErrorCheck("СЮДА ЗАПИСЫВАЕМ ИНФОРМАЦИЮ","Line: "+__LINE__+" Function: "+__FUNCTION__+"\n"+__FUNCSIG__,GetLastError()); // например: // Notice_ErrorCheck("ClosePosition ERROR "+OrderTicket(),"Line: "+__LINE__+" Function: "+__FUNCTION__ ,GetLastError()); // ###########################################################################
Шаг 5:
Внесите в Вашу функцию OnInit следующий код и обратите внимание на строки с функциями CreateInputs и CreateStrategy
Внимание: Если у Вас нет функции OnInit – то Вам нужно скопировать весь блок моего кода.
// Step 5 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ //| внести код в OnInit | //+------------------------------------------------------------------+ void OnInit() { EAPADPRO_LIBRARY_PrintToLogs("Этот принт будет напечатан в журнале "); // Этот код мы также добавляем в OnTick: // Сюда можно записать ваши внешние переменные в формате: "Название","Значение" Всего до 10 переменных CreateInputs("Inputs_TEST1",TimeCurrent(),"Inputs_TEST2","Inputs_TEST2"); // Сюда можно записать ваши данные по стратегии в формате: "Название","Значение" Всего до 10 значений CreateStrategy("Strategy_TEST1",TimeCurrent(),"Strategy_TEST2","Strategy_TEST2"); //============================================================================ // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO_LIBRARY_OnInit(ShowEaPadPro,-1,-1,"EAPADPRO",DEMO,defEANAME,0,FontName,Notice_Open_NameSound,Notice_Close_NameSound,Notice_Modify_NameSound, Notice_Error_NameSound,BMPLOGO,versionea,YourName,true); // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO //============================================================================ return; }
Шаг 6:
Внесите в Вашу функцию OnDeinit следующий код
Внимание: Если у Вас нет функции OnDeinit – то Вам нужно скопировать весь блок моего кода.
// Step 6 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ //| внести код в OnDeinit | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //============================================================================ // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO_LIBRARY_OnDeinit(reason); // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO //============================================================================ } // ###########################################################################
Шаг 7:
Внесите в Вашу функцию OnTick следующий код и обратите внимание на строки с функциями CreateInputs и CreateStrategy
Внимание: Если у Вас нет функции OnTick – то Вам нужно скопировать весь блок моего кода.
// Step 7 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ //| внести код в OnTick | //+------------------------------------------------------------------+ void OnTick() { //============================================================================ // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO MODIFYONLY=Get_MODIFYONLY(); STOPTRADING=Get_STOPTRADING(); EAPADPRO_LIBRARY_OnTick(ShowEaPadPro); // Копируем тот же код из OnInit // Сюда можно записать ваши внешние переменные в формате: "Название","Значение" Всего до 10 переменных CreateInputs("Inputs_TEST1",TimeCurrent(),"Inputs_TEST2","Inputs_TEST2"); // Сюда можно записать ваши данные по стратегии в формате: "Название","Значение" Всего до 10 значений CreateStrategy("Strategy_TEST1",TimeCurrent(),"Strategy_TEST2","Strategy_TEST2"); // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO //============================================================================ }
Шаг 8:
Внесите в Вашу функцию OnTrade следующий код или если в вашем коде нет функции OnTrade , тогда скопируйте нижний код без изменений:
Внимание: Если у Вас нет функции OnTrade – то Вам нужно скопировать весь блок моего кода.
// Step 8 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ //| внести код в OnTrade или добавить, Если нет | //+------------------------------------------------------------------+ void OnTrade() { //============================================================================ // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO_LIBRARY_OnTrade(ShowEaPadPro); // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO //============================================================================ } // ###########################################################################
Шаг 9:
Внесите в Вашу функцию OnChartEvent следующий код или если в вашем коде нет функции OnChartEvent, тогда скопируйте нижний код без изменений:
Внимание: Если у Вас нет функции OnChartEvent – то Вам нужно скопировать весь блок моего кода.
// Step 9 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ //| внести код в OnChartEvent или добавить, Если нет | //+------------------------------------------------------------------+ void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) { //============================================================================ // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO_LIBRARY_OnChartEvent(id,lparam,dparam,sparam,ShowEaPadPro); // EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO EAPADPRO //============================================================================ } // ###########################################################################
Шаг 10:
Заключительный этап программирования нашей панели в Вашем эксперте, Скопируйте код, который находится ниже целиком в Вашего эксперта:
// Step 10 #################################################################### // Эта шаг для установки нашей панели в вашего эксперта // ########################################################################### //+------------------------------------------------------------------+ // Вставляем в конце кода //+------------------------------------------------------------------+ input string EAPadPRO=" =============== EAPadPRO Info "; input bool ShowEaPadPro=true; input string FontName="Roboto"; input string Notice_Open_NameSound="ok"; input string Notice_Close_NameSound="request"; input string Notice_Modify_NameSound="stops"; input string Notice_Error_NameSound="alert2"; bool STOPTRADING=false; bool MODIFYONLY=false; #ifdef __MQL5__ #import "Lib - EAPADPRO v33 LIBRARY.ex5" #endif #ifdef __MQL4__ #import "Lib - EAPADPRO v33 LIBRARY.ex4" #endif void EAPADPRO_LIBRARY_OnInit(bool ShowEaPadProexport=true, int MagicForEaPadPRO=0, int MagicForEaPadPRO_Open=-1, string CommentForEaPadPRO="", bool DemoForEaPadPRO=false, string EaNameForEaPadPRO=defEANAME, int TypeFillingForEaPadPRO=0, string FontNameForEaPadPRO="", string Notice_Open_NameSoundForEaPadPRO="", string Notice_Close_NameSoundForEaPadPRO="", string Notice_Modify_NameSoundForEaPadPRO="", string Notice_Error_NameSoundForEaPadPRO="", string BMPLOGOForEaPadPRO=BMPLOGO, string versioneaForEaPadPRO=versionea, string NICKNAMEForEaPadPRO=YourName, bool ShowBuySell=true, double StartLotToEapadPRO=0 ); bool Get_STOPTRADING(); bool Get_MODIFYONLY(); void EAPADPRO_LIBRARY_OnDeinit(const int reason); void EAPADPRO_LIBRARY_OnTick(bool ShowEaPadProexport=true); void EAPADPRO_LIBRARY_OnTrade(bool ShowEaPadProexport=true); void EAPADPRO_LIBRARY_OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam,bool ShowEaPadProexport=true); void CreateInputs(string inputs_name_1=" ",string inputs_value_1=" ", string inputs_name_2=" ",string inputs_value_2=" ", string inputs_name_3="",string inputs_value_3="", string inputs_name_4="",string inputs_value_4="", string inputs_name_5="",string inputs_value_5="", string inputs_name_6="",string inputs_value_6="", string inputs_name_7="",string inputs_value_7="", string inputs_name_8="",string inputs_value_8="", string inputs_name_9="",string inputs_value_9="", string inputs_name_10="",string inputs_value_10=""); void CreateStrategy(string strategy_name_1=" ",string strategy_value_1=" ", string strategy_name_2=" ",string strategy_value_2=" ", string strategy_name_3="",string strategy_value_3="", string strategy_name_4="",string strategy_value_4="", string strategy_name_5="",string strategy_value_5="", string strategy_name_6="",string strategy_value_6="", string strategy_name_7="",string strategy_value_7="", string strategy_name_8="",string strategy_value_8="", string strategy_name_9="",string strategy_value_9="", string strategy_name_10="",string strategy_value_10=""); void EAPADPRO_LIBRARY_PrintToLogs(string text=""); void EAPADPRO_LIBRARY_Notice_ErrorCheck(string infoabouterror="",string techinfofunction="",int NumberofError=-1); #import //+------------------------------------------------------------------+
Результат
Если Вы все сделали правильно, тогда при загрузке Вашего эксперта Вы увидите следующую картинку:
Условия использования
Наша библиотека с информационной панелью EAPADPRO распространяется бесплатна на условиях обратной ссылки на нашу страницу.
Если Вы желаете продавать Вашего эксперта в маркете или в интернете , Вам необходимо добавить следующий текст в описание Вашего продукта:
- Информационная графическая панель EAPADPRO разработана командой Expforex.
- Все права на данную панель EAPADPRO принадлежат Владиславу Expforex.
- Автор информационной панели EAPADPRO не несет ответственности за советника или индикатора, которые используют нашу панель.
- Наша панель EAPADPRO разработана исключительно в целях предоставления дополнительной информации о торговле на Вашем счете.
이 게시물은 다음 언어로도 제공됩니다: English Українська Portuguese Español Deutsch Chinese Русский Français Italiano Türkçe 日本語 한국어