//+----------------------------------------------------------------------------+ //| e-SOTrailing.mq4 | //| | //| Ким Игорь В. aka KimIV | //| http://www.kimiv.ru | //| | //+----------------------------------------------------------------------------+ #property copyright "Ким Игорь В. aka KimIV" #property link "http://www.kimiv.ru" //------- Внешние параметры советника -----------------------------------------+ extern bool AllSymbols = False; // Управлять всеми стоповыми ордерами extern int MagicNumber = -1; // Идентификатор ордеров extern int TrailingStop = 20; // Фиксированный размер трала extern int TrailingStep = 3; // Шаг трала extern bool UseSound = True; // Использовать звуковой сигнал extern bool ShowComment = True; // Показывать комментарий extern color clModifyBuy = Aqua; // Цвет значка модификации покупки extern color clModifySell = Tomato; // Цвет значка модификации продажи //------- Глобальные переменные советника -------------------------------------+ bool gbNoInit = False; // Флаг неудачной инициализации string SoundSuccess = "ok.wav"; // Звук успеха string SoundError = "timeout.wav"; // Звук ошибки int NumberOfTry = 3; // Количество торговых попыток //------- Подключение внешних модулей -----------------------------------------+ #include // Стандартная библиотека //+----------------------------------------------------------------------------+ //| | //| ПРЕДОПРЕДЕЛЁННЫЕ ФУНКЦИИ | //| | //+----------------------------------------------------------------------------+ //| expert initialization function | //+----------------------------------------------------------------------------+ void init() { gbNoInit=False; if(!IsTradeAllowed()) { Comment("Для нормальной работы советника необходимо\n"+ "Разрешить советнику торговать"); gbNoInit=True; return; } if(!IsLibrariesAllowed()) { Comment("Для нормальной работы советника необходимо\n"+ "Разрешить импорт из внешних экспертов"); gbNoInit=True; return; } if(!IsTesting()) { if(IsExpertEnabled()) Comment("Советник будет запущен следующим тиком"); else Comment("Отжата кнопка \"Разрешить запуск советников\""); } start(); } //+----------------------------------------------------------------------------+ //| expert deinitialization function | //+----------------------------------------------------------------------------+ void deinit() { if(!IsTesting()) Comment(""); } //+----------------------------------------------------------------------------+ //| expert start function | //+----------------------------------------------------------------------------+ void start() { if(gbNoInit) { Comment("Не удалось инициализировать советник!"); return; } if(!IsTesting()) { if(ShowComment) { Comment(IIFs(AllSymbols,"AllSymbols ","") ,"MagicNumber=",DoubleToStr(MagicNumber,0)," " ,"TrailingStop=",DoubleToStr(TrailingStop,0),"п. " ,"TrailingStep=",DoubleToStr(TrailingStep,0),"п. " ,IIFs(UseSound,"UseSound ","") ); } else Comment(""); } for(int i=0; i