← К каталогу
Исходный код · ID 669

trailingstop.mq4

Похожие материалы по тегам

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

TrailingStop — это торговый советник для MetaTrader 4, реализующий функцию трейлинг-стоп-лосса для открытых позиций. Советник способен работать в двух режимах: на конкретном графике (только позиции данного символа) или на весь счёт (модификация стоп-лосса по всем открытым ордерам). При активации режима ProfitTrailing трейлинг применяется только к позициям, находящимся в прибыли.

Советник поддерживает функцию достижения целевой прибыли: при установленном значении ProfitTarget он рассчитывает все открытые сделки и закрывает их, если совокупная прибыль достигает заданного уровня. В этом режим трейлинг-стоп отключается. Также реализована звуковая уведомления при модификации стоп-лосса с возможностью выбора звукового файла.

Логика трейлинга основана на смещении стоп-лосса в направлении роста цены для длинных позиций и в направлении снижения для коротких. Шаг смещения и минимальное расстояние до стоп-лосса задаются параметрами TrailingStep и TrailingStop. Советник также очищает комментарии графика и отображает текущую информацию о прибыли и количестве открытых сделок.

Настройки программы

НастройкаОписание
(True To modify all positions ) False(modify chart positions) (AllPositions) AllPositions — (True To modify all positions ) False(modify chart positions) — при значении True модифицируются стоп-лоссы всех открытых ордеров на счёте, при False — только позиции на текущем графике.
(To Trail only postions on profit not loss ) (ProfitTrailing) ProfitTrailing — (To Trail only postions on profit not loss) — при значении True трейлинг-стоп применяется только к позициям, находящимся в прибыли.
Minimum is 5 (TrailingStop) TrailingStop — Минимальное расстояние до стоп-лосса (в пунктах). Минимальное допустимое значение — 5.
Setting this value will calculate all open trades and close if profit reached. (ProfitTarget) ProfitTarget — Задаёт целевой уровень прибыли (в USD). При достижении указанной прибыли все открытые сделки закрываются, а трейлинг-стоп отключается. Значение 0 отключает функцию.
TrailingStep TrailingStep — Шаг смещения стоп-лосса (в пунктах) при движении цены в пользу позиции.
UseSound UseSound — Включает или отключает звуковое уведомление при успешной модификации стоп-лосса.
NameFileSound NameFileSound — Имя звукового файла, воспроизводимого при успешной модификации стоп-лосса.
Получить полный код

Поиск по коду файла

extern bool   AllPositions = false; // (True To modify all positions ) False(modify chart positions)
extern bool   ProfitTrailing = True; //(To Trail only postions on profit not loss ) 
extern int TrailingStop=5;    // Minimum is 5
extern int ProfitTarget=0;    // Setting this value will calculate all open trades and close if profit reached. 
extern int    TrailingStep   = 1;
extern bool   UseSound       = True;  
extern string NameFileSound  = "expert.wav"; 

bool runnable=true;
bool init=true;
bool result;
double pBid, pAsk, pp;
int i=0;

datetime timeprev=0;

int init()
  {
      // код доступен только после оплаты
   }

int deinit()
  {
   return(0);
  }

int start()
{
      // код доступен только после оплаты
   }

void TrailingAlls(int trail)
{
   if (trail==0)
    return;

   double stopcrnt;
   double stopcal;

   int trade;
   int trades=OrdersTotal();

   for(trade=0;trade<trades;trade++)
   {
      OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

      if(OrderSymbol()!=Symbol())
       continue;

      pp = MarketInfo(OrderSymbol(), MODE_POINT); 

      if(OrderType()==OP_BUY)
      {

         pBid = MarketInfo(OrderSymbol(), MODE_BID);
         if (!ProfitTrailing || (pBid-OrderOpenPrice())>TrailingStop*pp) {
         if (OrderStopLoss()<pBid-(TrailingStop+TrailingStep-1)*pp) {

         stopcrnt=OrderStopLoss();
         stopcal=Bid-(trail*Point);
         if(stopcrnt==0)
         {
            OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue);
         }
         else
         {
            if(stopcal>stopcrnt)
            {
               OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue);
            }
         }
      }

         return;
   }
}//Long 

      if(OrderType()==OP_SELL)      
      {

    pAsk = MarketInfo(OrderSymbol(), MODE_ASK);
    if (!ProfitTrailing || OrderOpenPrice()-pAsk>TrailingStop*pp) {
      if (OrderStopLoss()>pAsk+(TrailingStop+TrailingStep-1)*pp || OrderStopLoss()==0) {

         stopcrnt=OrderStopLoss();
         stopcal=Ask+(trail*Point);
         if(stopcrnt==0)
         {
            OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red);
         }
         else
         {
            if(stopcal<stopcrnt)
            {
               OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red);
            }
         }      

      }
        return;
   }
}//Shrt

   }//for

}

void TrailingPositions() {

  pp = MarketInfo(OrderSymbol(), MODE_POINT);
  if (Orde

Показано первые 50% кода (символов: 4434)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
443,40₽ ≈ $5.42