Time: 2016-11-21 | Download file:b-PSI@TrailF_Stairs.mq4
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| b-PSI@TrailU_Stairs.mqh | //| Copyright © 2013-14, Igor Stepovoi aka TarasBY | //| taras_bulba@tut.by | //| 05.03.2013 Библиотека функции классического трейлинга ордеров. | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Данный продукт предназначен для некоммерческого использования. Публикация раз- | //|решена только при указании имени автора (TarasBY). Редактирование исходного кода | //|допустимо только при условии сохранения данного текста, ссылок и имени автора. | //| Продажа библиотеки или отдельных её частей ЗАПРЕЩЕНА. | //| Автор не несёт ответственности за возможные убытки, полученные в результате ис- | //|пользования библиотеки. | //| По всем вопросам, связанным с работой библиотеки, замечаниями или предложениями | //|по её доработке обращаться на Skype: TarasBY или e-mail. | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ #property copyright "Copyright © 2008-14, TarasBY WM R418875277808; Z670270286972" #property link "taras_bulba@tut.by" //IIIIIIIIIIIIIIIIIII==================CONSTANS=================IIIIIIIIIIIIIIIIIIIIII+ //IIIIIIIIIIIIIIIIIII==========Внешние параметры модуля=========IIIIIIIIIIIIIIIIIIIIII+ //extern string Setup_TrailStairs = "**************** TrailingStairs ***************"; extern bool TrailStairs_ON = FALSE; // Включение трейлинга "Stairs" extern double TrailingStop = 50; // Скользящий тейк-профит, ноль чтобы отключить его //IIIIIIIIIIIIIIIIIII========Глобальные переменные модуля=======IIIIIIIIIIIIIIIIIIIIII+ //IIIIIIIIIIIIIIIIIII=========Подключение внешних модулей=======IIIIIIIIIIIIIIIIIIIIII+ //IIIIIIIIIIIIIIIIIII===========Перечень функций модуля=========IIIIIIIIIIIIIIIIIIIIII+ //bool fCheck_TrailStairs() - Проверяем переданные в функцию внешние параметры. //|***********************************************************************************| //| РАЗДЕЛ: ФУНКЦИИ ТРЕЙЛИНГА | //|***********************************************************************************| /*bool fTrail_Stairs ( - Трейлинг стандартный //+-----------------------------------------------------------------------------------+ string fs_Symbol, // Symbol int fi_Ticket, // Ticket double& fd_NewSL // возвращаемый новый SL )*/ //|***********************************************************************************| //| РАЗДЕЛ: ОБЩИХ ФУНКЦИЙ | //|***********************************************************************************| //void fSet_ValuesStairs() - Получаем рабочие переменные в соответствии с разрядностью //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //void fCheck_DecimalStairs() - Учитываем разрядность котировок //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Автор : TarasBY, taras_bulba@tut.by | //+-----------------------------------------------------------------------------------+ // Проверяем переданные в функцию внешние параметры. | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ bool fCheck_TrailStairs() { //---- if (TrailStairs_ON) { if (TrailingStop - TrailStep < ProfitMIN_Pips) {bs_ERROR = "Поставьте TrailingStop >= TrailStep + ProfitMIN !!!"; return (false);} bi_cntTR++; } //---- return (true); } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //+===================================================================================+ //|***********************************************************************************| //| РАЗДЕЛ: ФУНКЦИИ ТРЕЙЛИНГА | //|***********************************************************************************| //+===================================================================================+ //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Автор : TarasBY, taras_bulba@tut.by | //+-----------------------------------------------------------------------------------+ //| ТРЕЙЛИНГ СТАНДАРТНЫЙ-СТУПЕНЧАТЫЙ | //| Функции передаётся тикет позиции, расстояние от курса открытия, на котором | //| трейлинг запускается (пунктов) и "шаг", с которым он переносится (пунктов) | //| Пример: при +30 стоп на +10, при +40 - стоп на +20 и т.д. | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ bool fTrail_Stairs ( string fs_Symbol, // Symbol int fi_Ticket, // Ticket double& fd_NewSL) // возвращаемый новый SL //+...................................................................................+ { //---- fd_NewSL = 0.0; if (TrailingStop > 0) { if (bi_cmd * (bd_Price - OrderOpenPrice()) > bd_TrailingStop || bb_TrailLOSS) { if ((bi_cmd * (bd_Price - bd_curSL) > bd_TrailingStop + bd_TrailStep) || bd_curSL == 0.0) {fd_NewSL = bd_Price - bi_cmd * bd_TrailingStop; bs_fName = "fTrail_Stairs()"; return (true);} } } //---- Контролируем возможные ошибки fGet_LastErrorInArray (bs_fName, bi_indERR); //---- return (false); } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //+===================================================================================+ //|***********************************************************************************| //| РАЗДЕЛ: ОБЩИХ ФУНКЦИЙ | //|***********************************************************************************| //+===================================================================================+ //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Автор : TarasBY, taras_bulba@tut.by | //+-----------------------------------------------------------------------------------+ //| Получаем рабочие переменные в соответствии с разрядностью | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ void fSet_ValuesStairs() { //---- bd_TrailingStop = NDP (TrailingStop); bd_TrailStep = NDP (TrailStep); //---- } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ //| Автор : TarasBY, taras_bulba@tut.by | //+-----------------------------------------------------------------------------------+ //| Учитываем разрядность котировок | //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+ void fCheck_DecimalStairs() { //---- TrailingStop *= bi_Decimal; TrailStep *= bi_Decimal; //---- } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+