Добрый день!
Пожалуйста,подскажите где найти, или предоставьте готовый скрипт в MQL4, или создайте его "за идею",который можно вставить в бот с тумблером " true/false " в параметрах настройки,где он выполняет аналогичную функцию трейлинга стоповых ордеров.
То есть,в период одного цикла и до конца его,скрипт должен периодически подтягивать ряд стоповых ордеров, сохраняя дистанцию (ОТСТУП) между бай и селл ордеров ,в момент если какой-либо из ордеров активируется рыночной ценой,то противоположные ряд неактивных ордеров подтягиваются на расстоянии ШАГа,заданный в настройках параметров. В моём боте имеются соответственные магики на селл и бай, не плохо иметь универсал.
Дополню ещё,что в боте имеется отступ(расстояние от рыночной цены) и шаг(расстояние между стоповыми ордерами).На каждую сторону количество стоповых ордеров по 10.
Это задаётся для того,чтобы в процессе цикла и активаций стоповых ордеров не расширялся диапазон или расстояния между разнонаправленными стоповыми ордерами,с целью уменьшить просадку от депозита.
Я лично здесь не прошу Вашего мнения о пользы этого скрипта и его последствий,полезен или бесперспективный,просто мне нужно найти это и вмонтировать в бот !
Если есть вопросы или предложения ,прошу высказать здесь.
Почту и контакты не предоставляю ибо то, что я прошу выставить здесь не для себя,а для всех бесплатно,кому интересен такой скрипт для своих ботов. Могу и код своего бота вставить ,если это необходимо,лучше конечно самому вмонтировать )))
Спасибо за внимание.
//----------------- Ввод ----------------- input bool ProfitTral_ON =true; input int Profit_Level =350; input int Tral_Level =250; input int BuyMag =1001; input int SellMag =2001; //---------- Глобальные переменные (обязательно глобальные, иначе уровень трала будет бегать за ценой) -------------------- double StopLossBuy=0,StopLossSell=0; //------------------------------- void OnTick() { // Или в пользовательской функции //---------------------------- // Просчитать максимальную/минимальную позиции, "лишнее" пригодится в другом месте ;) double MaxOP_Buy=0, MinOP_Buy=99999, MaxOP_Sell=0, MinOP_Sell=99999; for(i=0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol() && (OrderMagicNumber()==BuyMag || OrderMagicNumber()==SellMag ) { if(OrderType()==OP_BUY) { MaxOP_Buy=MathMax(MaxOP_Buy,OrderOpenPrice()); MinOP_Buy=MathMin(MinOP_Buy,OrderOpenPrice()); } //-- if(OrderType()==OP_SELL) { MaxOP_Sell=MathMax(MaxOP_Sell,OrderOpenPrice()); MinOP_Sell=MathMin(MinOP_Sell,OrderOpenPrice()); } //-- } //-- } //-- } //-- for //------------- Пишу только для StopLossBuy ... -------------------- if(StopLossBuy==0 && Bid-MinOP_Buy>=Profit_Level*Point) StopLossBuy=Bid-Tral_Level*Point; // Set Stoploss if(StopLossBuy >0 && Bid-StopLossBuy>=Profit_Level*Point) StopLossBuy=Bid-Tral_Level*Point; // Stoploss Tral //------------- Закрытие по СЛ (можно вставить в верхний цыкл) ----------------------------------------- bool Answer=false; for(i=0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol() && (OrderMagicNumber()==BuyMag || OrderMagicNumber()==SellMag ) { if(OrderType()==OP_BUY) { if(Bid<=StopLossBuy) { Answer=OrderClose(OrderTicket(),OrderLots(),Bid,30,clrRed); if(Answer) { StopLossBuy=0; // Обязательно обнулить переменную при закрытии позиции } //-- if(ans) if(!Answer) { //--- Сообщение об ошибке и вызов функции обработки ошибок. Если нет - можно и дез, код удалить. } //-- } //-- if(OrderType()==OP_SELL) { MaxOP_Sell=MathMax(MaxOP_Sell,OrderOpenPrice()); MinOP_Sell=MathMin(MinOP_Sell,OrderOpenPrice()); } //-- } //-- } //-- } //-- for } //-- OnTick() //========================================================= PS Набросал экспромтом, ошибки не проверял, возможно и есть, проверьте компиляцией. Идея, надеюсь, понятна, если че то смыслите - допишете, если нет - заказывайте кому-нить. Можете мне ;) Аналогично делается трал виртуального стопа или лимита (цикл не нужен, только переменная объявленная на глобальном уровне), принцип тот же - тралится переменная, пересечении ее уровня ценой - команда на открытие. Визуализацию можно сделать выводом линии (удобно при настройке) ЗЫ ЗЫ Во, блин, точно - дочитал до конца - вы таки хотите тралить виртуальные уровни открытия - описал уже в общих чертах. Шаг трала делает просто - задаете шаг в переменно на вводе, В скрипте: if(StopLossBuy >0 && Bid-StopLossBuy>=(Profit_Level+Step)*Point) StopLossBuy=Bid-Tral_Level*Point; Будет перемещать уровень с заданным шагом.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Пожалуйста,подскажите где найти, или предоставьте готовый скрипт в MQL4, или создайте его "за идею",который можно вставить в бот с тумблером " true/false " в параметрах настройки,где он выполняет аналогичную функцию трейлинга стоповых ордеров.
То есть,в период одного цикла и до конца его,скрипт должен периодически подтягивать ряд стоповых ордеров, сохраняя дистанцию (ОТСТУП) между бай и селл ордеров ,в момент если какой-либо из ордеров активируется рыночной ценой,то противоположные ряд неактивных ордеров подтягиваются на расстоянии ШАГа,заданный в настройках параметров. В моём боте имеются соответственные магики на селл и бай, не плохо иметь универсал.
Дополню ещё,что в боте имеется отступ(расстояние от рыночной цены) и шаг(расстояние между стоповыми ордерами).На каждую сторону количество стоповых ордеров по 10.
Это задаётся для того,чтобы в процессе цикла и активаций стоповых ордеров не расширялся диапазон или расстояния между разнонаправленными стоповыми ордерами,с целью уменьшить просадку от депозита.
Я лично здесь не прошу Вашего мнения о пользы этого скрипта и его последствий,полезен или бесперспективный,просто мне нужно найти это и вмонтировать в бот !
Если есть вопросы или предложения ,прошу высказать здесь.
Почту и контакты не предоставляю ибо то, что я прошу выставить здесь не для себя,а для всех бесплатно,кому интересен такой скрипт для своих ботов. Могу и код своего бота вставить ,если это необходимо,лучше конечно самому вмонтировать )))
Спасибо за внимание.