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

Ilan_TrendRacing_3.51ME

trend racing 3.51 me lite_tral_lasttp.mq4

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

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Ilan_TrendRacing_3.51ME — это торговый советник (Expert Advisor) для платформы MetaTrader 4, написанный на языке MQL4. Программа предназначена для автоматического анализа ценовых данных и открытия сделок на основе комбинации нескольких технических индикаторов.

Советник формирует торговые сигналы, используя пересечение скользящих средних (MA), индикаторы CCI, ADX, RSI (через пользовательский индикатор MAonRSI), а также Accelerator Oscillator (AC). В зависимости от настроек включения/отключения фильтров, сигналы формируются при совпадении направления MA с другими индикаторами и прохождении AC определённого диапазона.

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

Советник включает систему контроля состояния с проверкой корректности параметров (стоп-лосс, деление валютных пар, количество ордеров) и выводом предупреждений. Доступна отладочная печать ключевых переменных для диагностики работы.

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

НастройкаОписание
Set1 Set1 — Текстовый разделитель группы настроек.
???????? ??????? ???? (Lots) Lots — Начальный размер лота для открытия первого ордера.
??????????? ?????????????? ?????????? ????? ?????? ???? (LotExponent) LotExponent — Экспонента для расчёта размера лота при пирамидировании (размер увеличивается по формуле Lots * LotExponent^n).
?????? ? ??????? (TakeProfit) TakeProfit — Стандартное значение тейк-профита в пунктах для ордеров.
??????????????? ???? ( ?????? ? ???????? ) )) (slip) slip — Допустимое отклонение цены при исполнении ордеров (в пунктах).
?????????? ??????????? ??????????? ??????? ( ???? ?? "0" ) (MaxTrades) MaxTrades — Максимальное допустимое количество одновременно открытых ордеров. Если 0 — ограничение снимается.
?????????????, ??????????? ???????? "????" ?????? ?? ????? ??? (MagicNumberB) MagicNumberB — Магический номер для идификации ордеров Buy, открытых советником.
?????????????, ??????????? ???????? "????" ?????? ?? ????? ???? (MagicNumberS) MagicNumberS — Магический номер для идификации ордеров Sell, открытых советником.
Set2 Set2 — Текстовый разделитель группы настроек.
Set3 Set3 — Текстовый разделитель группы настроек.
????????? ??????? (FirstPipStep) FirstPipStep — Начальный шаг в пунктах для открытия последующих ордеров в цепочке.
???????, ???????????? ??? ??????? ??????????, ??? ?????????? EconomProfil ??????? ?? FirstEconomOrd (LongPipStep) LongPipStep — Увеличенный шаг в пунктах для пирамидирования при активном экономическом профиле.
?? ??????? ????????????? ??? ? ??????????? ?? ?????? ?????? (PipStepExponent) PipStepExponent — Основание экспоненты для расчёта шага между ордерами в цепочке.
Set4 Set4 — Текстовый разделитель группы настроек.
??????????? ?????????? (info) info — Переключатель: отображает информационные метки на графике с названием советника и текущими сигналами.
??????????? ?????? ????????? ???? ??????? ?? ??????????? (Zero) Zero — Переключатель: отображает горизонтальную линию нулевого уровня по чистой прибыли на графике.
?????????? ????????? ???????? (BarControl) BarControl — Переключатель: ограничивает обработку торговых операций одним тиком на каждом новом баре.
??????? (debug) debug — Переключатель: включает вывод отладочной информации в журнал.
????? ??? ?????????? ?????????? (EconomProfil) EconomProfil — Переключатель: включает экономический профиль — переключение на увеличенный шаг пирамидирования после определённого количества ордеров.
?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ?? (FirstEconomOrd) FirstEconomOrd — Номер ордера, начиная с которого включается экономический профиль (увеличенный шаг пирамидирования).
????????? ?????? ?????????? ????????? ??????? ?????????? ?????? (Overlapping) Overlapping — Переключатель: включает функцию перекрытия — закрытие менее прибыльного ордера при достижении определённого уровня прибыли другого.
? ?????? ?????? ???????? ??????????. (LeadingOrder) LeadingOrder — Минимальное количество ордеров в цепочке, при котором активируется функция перекрытия позиций.
??????? ?????????? (FLPersent) FLPersent — Процент от прибыли, используемый для определения уровня закрытия менее прибыльного ордера при перекрытии позиций.
UseTrailingStop UseTrailingStop — Переключатель: включает функцию трейлинг-стопа для управления открытыми ордерами.
??, ??????? ????? ?????????? (TrailTP) TrailTP — Начальное значение тейк-профита для трейлинг-стопа (в пунктах).
?????????? ?? ????, ?? ??????? ???????? ?? (TrailDist) TrailDist — Расстояние трейлинг-стопа от точки входа (в пунктах).
?? ??? TrailingStop (AutoTakeProfit) AutoTakeProfit — Значение тейк-профита, используемое при активном трейлинг-стопе (в пунктах).
v1 v1 — Текстовый комментарий к секции настроек LastTP.
SeparateLastTP SeparateLastTP — Переключатель: включает отдельный тейк-профит для последних ордеров в цепочке.
?? ?????????? ??????. ???? "0", ?? LastTP = TakeProfit (LastTP) LastTP — Значение тейк-профита для последних ордеров в цепочке (в пунктах). Если 0, используется значение TakeProfit.
? ??????, ? ???????? ???????? ???????? LastTP (LastTPNo) LastTPNo — Номер ордера, начиная с которого применяется отдельный тейк-профит LastTP.
MASet MASet — Текстовый комментарий к секции настроек скользящих средних.
?????? ??????? ?? (MA1_Period) MA1_Period — Период первой скользящей средней (MA1).
?????? ????????? ?? (MA2_Period) MA2_Period — Период второй скользящей средней (MA2).
DeltaSet DeltaSet — Текстовый комментарий к секции настроек MA.
Comm1 Comm1 — Текстовый комментарий к параметру DelFX.
??????? ??????? ?? "?? ?????????" (DelFX) DelFX — Коэффициент деления для параметров цены (применяется при 3 или 5-значных котировках).
Comm5 Comm5 — Текстовый комментарий к параметрам CCI.
????????? ???????? CCI (CCI_kontr) CCI_kontr — Переключатель: включает использование индикатора CCI в качестве дополнительного фильтра сигнала.
??????? ?? ??????? CCI (CCI_Lim) CCI_Lim — Пороговое значение индикатора CCI, при превышении которого сигнал CCI считается нейтральным.
Comm6 Comm6 — Текстовый комментарий к секции настроек.
Comm7 Comm7 — Текстовый комментарий к секции настроек ADX.
ADX_kontr ADX_kontr — Переключатель: включает использование индикатора ADX в качестве дополнительного фильтра сигнала.
?????????? ???????? ????? ADX (ADX_Trend) ADX_Trend — Пороговое значение индикатора ADX, при превышении которого тренд считается достаточно сильным для сигнала.
Comm8 Comm8 — Текстовый комментарий к секции настроек MAonRSI.
Comm9 Comm9 — Текстовый комментарий к секции настроек MAonRSI.
MAonRSI MAonRSI — Переключатель: включает использование пользовательского индикатора MAonRSI вместо комбинации MA и CCI/ADX.
?????? ?????????? RSI (RSI_Period) RSI_Period — Период индикатора RSI, используемого в MAonRSI.
?????? ?? ?????????? MAonRSI (MA_Period) MA_Period — Период скользящей средней внутри пользовательского индикатора MAonRSI.
??????? ??????? RSI (RSI_max) RSI_max — Верхний порог RSI, при превышении которого сигнал MAonRSI обнуляется.
?????? ??????? RSI (RSI_min) RSI_min — Нижний порог RSI, при снижении ниже которого сигнал MAonRSI обнуляется.
Comm10 Comm10 — Текстовый комментарий к параметру AClim.
?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ?????? (AClim) AClim — Пороговое значение для диапазона Accelerator Oscillator, при котором сигнал считается подтверждённым.
Comm11 Comm11 — Текстовый комментарий к параметру CloseAll и TradeStop.
??????? ??????????? ???????? ???? "?????" ??????? (CloseAll) CloseAll — Переключатель: при активации советник закрывает все открытые позиции на текущем символе.
?????? ???????? ????? ??????, ???? ????????? ????????/?????? ?????? ?????????? (0.1 - 10% ? ??? ???? (TradeStop) TradeStop — Пороговое значение соотношения средств к балансу (в процентах), при нарушении которого советник останавливает торговлю.
????????? ???????? ?????? ?? ???????? (LL) LL — Переключатель: включает режим закрытия всех позиций в направлении при достижении заданного уровня убытка.
??????? ?????? ? ??????? ?????? (LossLevel) LossLevel — Уровень убытка (в пунктах), при достижении которого происходит закрытие позиций в убыточном направлении.
Получить полный код

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

#include <stderror.mqh>
#include <stdlib.mqh>
#include <WinUser32.mqh>

extern string  Set1           = "======  ????? ?????????  =====";
extern double  Lots           = 0.01;                         // ???????? ??????? ????
extern double  LotExponent    = 1.4;                          // ??????????? ?????????????? ?????????? ????? ?????? ????
extern double  TakeProfit     = 8.0;                          // ?????? ? ???????
double         StopLoss       = 0;                            // ???? ? ???????
extern double  slip           = 5;                            // ??????????????? ???? ( ?????? ? ???????? ) ))
extern int     MaxTrades      = 30;                           // ?????????? ??????????? ??????????? ??????? ( ???? ?? "0" )
extern int     MagicNumberB   = 777;                          // ?????????????, ??????????? ???????? "????" ?????? ?? ????? ???
extern int     MagicNumberS   = 555;                          // ?????????????, ??????????? ???????? "????" ?????? ?? ????? ????
extern string  Set2           = "===== ?????????  ???????? =====";
extern string  Set3           = " ?? ???????? ??????? ????????? ";
extern double  FirstPipStep   = 6.0;                          // ????????? ???????
extern double  LongPipStep    = 100;                          // ???????, ???????????? ??? ??????? ??????????, ??? ?????????? EconomProfil ??????? ?? FirstEconomOrd
extern double  PipStepExponent= 1.8;                          // ?? ??????? ????????????? ??? ? ??????????? ?? ?????? ??????
extern string  Set4           = "== ?????????????? ?????????  ==";
extern bool    info           = True;                         // ??????????? ??????????
extern bool    Zero           = True;                         // ??????????? ?????? ????????? ???? ??????? ?? ???????????
extern bool    BarControl     = True;                         // ?????????? ????????? ????????
extern bool    debug          = False;                        // ???????
extern bool    EconomProfil   = False;                        // ????? ??? ?????????? ?????????? 
extern int     FirstEconomOrd = 4;                            // ?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ??? ?? ???.
extern bool    Overlapping    = True;                         // ????????? ?????? ?????????? ????????? ??????? ?????????? ??????
extern int     LeadingOrder   = 4;                            // ? ?????? ?????? ???????? ??????????.
extern int     FLPersent      = 7;                            // ??????? ?????????? 

extern bool   UseTrailingStop = true;
extern double TrailTP = 5;          // ??, ??????? ????? ??????????     
extern double TrailDist = 5;        // ?????????? ?? ????, ?? ??????? ???????? ??
extern int    AutoTakeProfit = 50;  // ?? ??? TrailingStop

extern string v1 = "????? LastTP";
extern bool   SeparateLastTP = true;
extern int    LastTP  = 5;         //?? ?????????? ??????. ???? "0", ?? LastTP = TakeProfit
extern int    LastTPNo = 3;         //? ??????, ? ???????? ???????? ???????? LastTP
int ExcludeTicketB=0;
int ExcludeTicketS=0;

extern string  MASet          = "======== ?????????  ?? ========";   
int            MATimeFrame    = 0;                            // 0 (????)- ?????? ???????? ???????; 1 - PERIOD_M1; 5 - PERIOD_M5; 15 - PERIOD_M15; 30 - PERIOD_M30;  

extern int     MA1_Period     = 7;                            // ?????? ??????? ??
int            MA1_Shift      = 0;                            // ?????  ??????? ??
extern int     MA2_Period     = 21;                           // ?????? ????????? ??
int            MA2_Shift      = 0;                            // ?????  ????????? ??
extern string  DeltaSet       = "== ???? ???????????? ??????? ==";
extern string  Comm1          = " ???????? ????? ? ??????, 0 - 5";
extern double  DelFX          = 2;                            // ??????? ??????? ?? "?? ?????????"
int            MA_sf          = 1;                            // ????? "????-????" ??? ????? ??????????? ??????
extern string  Comm5          = "=== ??????? ???????? ?? CCI ===";
extern bool    CCI_kontr      = True;                         // ????????? ???????? CCI
extern double  CCI_Lim        = 170.0;                        // ??????? ?? ??????? CCI
int            CCI_tf         = 0;                            // ???? ????? CCI 0 - ???????
int            CCI_Per        = 14;                           // ?????? CCI
int            CCI_sf         = 1;                            // ????? "????-????" ??? ????? ????????? CCI
extern string  Comm6          = "= ????????? ????????????? ?????? =";
extern string  Comm7          = "===========   ?? ADX    ==========";
extern bool    ADX_kontr      = False;  
int            TF_ADX         = 0;                            // ????????? ADX, 0 - ???????
int            Per_ADX        = 7;                            // ?????? ADX
extern double  ADX_Trend      = 25;                           // ?????????? ???????? ????? ADX 
int            PriceADX       = 0;                            // 0 - ???? ????????, 1 - ???? ????????
int            Sh_ADX         = 1;                            // ????? "????-????" ??? ????? ????????? ADX ( ?? ????? ???? 0! )
extern string  Comm8          = "=== ????????? ????? ?? MAonRSI ===";
extern string  Comm9          = " (????????? ?????????? ??????????)";
extern bool    MAonRSI        = False;
int            MAonRSI_TimeFr = 0;                            // ?? ?????????? MAonRSI ( ?? ????????? - ??????? )
extern int     RSI_Period     = 8;                            // ?????? ?????????? RSI
int            RSI_Metod      = 6;                            // ????? ??????? ???? RSI
extern int     MA_Period      = 21;                           // ?????? ?? ?????????? MAonRSI
int            MA_Metod       = 1;                            // ????? ??????? ???? ??
double         Delta_MAonRSI  = 2.0;                          // ???? ?????????????????? ?????????? ( 0 - 5 )
extern int     RSI_max        = 70;                           // ??????? ??????? RSI
extern int     RSI_min        = 30;                           // ??????  ??????? RSI
extern string  Comm10         = "= ????????? ??????? ????? ?? ??=";
extern double  AClim          = 0.0001;                       // ?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ??????
extern string  Comm11         = "== ??????, ????????, ???????? ==";
extern bool    CloseAll       = False;                        // ??????? ??????????? ???????? ???? "?????" ???????
extern double  TradeStop      = 0.0;                          // ?????? ???????? ????? ??????, ???? ????????? ????????/?????? ?????? ?????????? (0.1 - 10% ? ??? ?????.. )
extern bool    LL             = False;                        // ????????? ???????? ??????  ?? ???????? 
extern int     LossLevel      = 10;                           // ??????? ?????? ? ??????? ??????

int MA1_Price   = 0;             //0 - ???? ????????;  1 - ???? ????????; 2 - ???????????? ????; 3 - ??????????? ????;

int MA1_Method  = 0;             //0 - ??????? ?????????? ???????; 1 - ???????????????? ?????????? ???????; 

int MA2_Price   = 0;
int MA2_Method  = 0;

double StopperB    = 0.0, StopperS = 0.0;
double CCI_Del, ADX_Del, STOP_L, Lprofit, Profit_B, Profit_S, Cprofit;
double LastBuyPrice, LastSellPrice, PipStepB, PipStepS, iLotsB, iLotsS, SL,TP, PrevEquity, CCI_min, CCI_max, ACmax, ACmin, Dig;
double CProfit = 0, CProfit2 = 0, LProfit = 0, PrcCL1 = 0, PrcCL = 0;

bool flagB, flagS;
bool LongTrade = False, ShortTrade = False, NewOrdersPlacedB = True, NewOrdersPlacedS = True;

int timeprev = 0, NumOfTradesB = 0, NumOfTradesS = 0, cnt = 0, DCCoef = 10000;
int ticket, expiration, totalB, totalS, total, CheckTotalS, CheckTotalB, lotdecimal, Error, Lpos, StopSet, Cpos;
string title="???????? ??????????", msg="";
string EAName = "Ilan_TrendRacing_3.51ME";
string txt1, txt2, txt3, txt4, txt5, txt6;

int init() {
      // код доступен только после оплаты
   }
int deinit() {
    ObjectDelete("Lable1");
    ObjectDelete("Lable2");
    ObjectDelete("Lable3");
    ObjectDelete("Lable4");
    ObjectDelete("Lable5");
    ObjectDelete("Zero");
    ObjectDelete("LableB");
    ObjectDelete("LableS");
   return (0);
}

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

void RecalculationB() {
 double AveragePriceB = 0;
 double PriceTargetB  = 0;
 double CountB  = 0;
   for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
       if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))  {
          if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
             if (OrderType() == OP_BUY ) {
                AveragePriceB += OrderOpenPrice() * OrderLots();
                CountB += OrderLots();
             }
          }
       }  
   }
   if (totalB > 0) AveragePriceB = NormalizeDouble(AveragePriceB / CountB, Dig);
   if (NewOrdersPlacedB) {
      for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
          if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
             if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
                if (OrderType() == OP_BUY) {
                   PriceTargetB = AveragePriceB + TakeProfit * Point;
                   StopperB = AveragePriceB - StopLoss * Point;
                   flagB = TRUE;
                }
             }
          }
      }
   }  
   if (NewOrdersPlacedB) {
      if (flagB == TRUE) {
         for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
             if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {        
                if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberB) {
                   if (OrderType() == OP_BUY ) {
                      bool res;
                      if(SeparateLastTP && totalB >= LastTPNo && OrderTakeProfit() == 0.0)
                        res = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), NormalizeDouble( OrderOpenPrice() + LastTP * Point, Dig), 0, Blue);
                      else
                        res = OrderModify(OrderTicket(), AveragePriceB, OrderStopLoss(), PriceTargetB, 0, Blue);
                      if(res)
                        NewOrdersPlacedB = FALSE;
                   }
                }
             }  
         }
      }
   }
 }

void RecalculationS() {
   double AveragePriceS = 0;
   double PriceTargetS  = 0;
   double CountS  = 0;
   for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
     if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))  {
       if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
          if (OrderType() == OP_SELL ) {
             AveragePriceS += OrderOpenPrice() * OrderLots();
             CountS += OrderLots();
           }
        }
      }  
    }
   if (totalS > 0) AveragePriceS = NormalizeDouble(AveragePriceS / CountS, Dig);
   if (NewOrdersPlacedS) {
      for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
          if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {
             if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
                if (OrderType() == OP_SELL) {
                   PriceTargetS = AveragePriceS - TakeProfit * Point;
                   StopperS = AveragePriceS + StopLoss * Point;
                   flagS = TRUE; 
                }
             }
          }
      }
   }  
   if (NewOrdersPlacedS) {
      if (flagS == TRUE) {
         for (cnt = OrdersTotal() - 1; cnt >= 0; cnt--) {
            if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) {        
               if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumberS) {
                  if (OrderType() == OP_SELL) {
                     bool res;
                     if(SeparateLastTP && totalS >= LastTPNo && OrderTakeProfit() == 0.0)
                        res = OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(),  NormalizeDouble( OrderOpenPrice() - LastTP * Point, Dig), 0, Red);
                     else
                        res = OrderModify(OrderTicket(), AveragePriceS, OrderStopLoss(), PriceTargetS, 0, Red);
                     if(res)
                        NewOrdersPlacedS = FALSE;
                 }
               }
            }  
         }
      }

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

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

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

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

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

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

Стоимость полного кода
3 103,30₽ ≈ $37.93