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

Trend Racing 3.57 ME

trend racing 3.57 me lite.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

Trend Racing 3.57 ME — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с помощью нескольких технических индикаторов и принимает торговые решения для открытия и управления позициями. Поддерживается автоматическое управление ордерами, включая трейлинг-стоп, фиксацию прибыли и ограничение убытков.

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

НастройкаОписание
Set1 Разделитель — Текстовый разделитель группы настроек.
???????? ??????? ???? (Lots) Лот — Размер лота для открытия сделок.
??????????? ?????????????? ?????????? ????? ?????? ???? (LotExponent) Степень лота — Множитель увеличения лота при добавлении ордеров.
?????? ? ??????? (TakeProfit) Тейк-профит — Уровень фиксации прибыли в пунктах.
??????????????? ???? ( ?????? ? ???????? ) )) (slip) Проскальзывание — Допустимое проскальзывание при исполнении ордера в пунктах.
?????????? ????? ?? ??????? (AddOrdersInd) Добавление по сигналу — Добавлять дополнительные ордера только при совпадении с сигналом индикатора.
?????????? ??????????? ??????????? ??????? ? ??? ( ???? ?? "0" ) (MaxTradesB) Макс. покупок — Максимальное количество одновременных покупочных позиций.
?????????? ??????????? ??????????? ??????? ? ???? ( ???? ?? "0" ) (MaxTradesS) Макс. продаж — Максимальное количество одновременных продажных позиций.
?????????????, ??????????? ???????? "????" ?????? ?? ????? ??? (MagicNumberB) Магический номер покупок — Идентификатор ордеров на покупку.
?????????????, ??????????? ???????? "????" ?????? ?? ????? ???? (MagicNumberS) Магический номер продаж — Идентификатор ордеров на продажу.
Set2 Разделитель — Текстовый разделитель группы настроек.
Set3 Разделитель — Текстовый разделитель группы настроек.
????????? ??????? (FirstPipStep) Первый шаг — Начальный шаг увеличения расстояния между ордерами в пунктах.
???????, ???????????? ??? ??????? ??????????, ??? ?????????? EconomProfil ??????? ?? FirstEconomOrd (LongPipStep) Длинный шаг — Шаг между ордерами при активном экономном профиле.
?? ??????? ????????????? ??? ? ??????????? ?? ?????? ?????? (PipStepExponent) Степень шага — Степень увеличения шага между ордерами.
Set4 Разделитель — Текстовый разделитель группы настроек.
??????????? ???? ????????? ??????? ????? (Warning) Предупреждение — Показывать предупреждение перед запуском советника.
??????????? ?????????? (info) Информация — Отображение информационных меток на графике.
??????????? ?????? ????????? ???? ??????? ?? ??????????? (Zero) Нулевой уровень — Отображение нулевого уровня на графике.
?????????? ????????? ???????? (BarControl) Контроль бара — Разрешить обработку только на новом баре.
??????? (debug) Отладка — Включить вывод отладочной информации в журнал.
????? ??? ?????????? ?????????? (EconomProfil) Экономный профиль — Включить экономный режим управления ордерами.
?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ?? (FirstEconomOrd) Первый эконом. ордер — Номер ордера, начиная с которого активируется экономный профиль.
????????? ?????? ?????????? ????????? ??????? ?????????? ?????? (Overlapping) Перекрытие — Разрешить перекрытие позиций и управление прибыльными ордерами.
? ?????? ?????? ???????? ??????????. (LeadingOrder) Лидерский ордер — Минимальное количество ордеров для активации управления прибылью.
??????? ?????????? (FLPersent) Процент фиксации — Процент от прибыли лидерского ордера для порога закрытия.
MASet Настройки MA — Текстовый разделитель группы настроек скользящих средних.
?????? ??????? ?? (MA1_Period) Период MA1 — Период первой скользящей средней.
?????? ????????? ?? (MA2_Period) Период MA2 — Период второй скользящей средней.
DeltaSet Настройки дельты — Текстовый разделитель группы настроек дельты.
Comm1 Комментарий DelFX — Текстовый комментарий к параметру DelFX.
??????? ??????? ?? "?? ?????????" (DelFX) Дельта FX — Дельта для расчёта расстояния между скользящими средними.
Comm5 Комментарий CCI — Текстовый разделитель группы настроек CCI.
????????? ???????? CCI (CCI_kontr) Контроль CCI — Включить фильтрацию сигналов по индикатору CCI.
??????? ?? ??????? CCI (CCI_Lim) Лимит CCI — Граничное значение индикатора CCI для фильтрации сигналов.
Comm6 Комментарий — Текстовый разделитель.
Comm7 Комментарий ADX — Текстовый разделитель группы настроек ADX.
ADX_kontr Контроль ADX — Включить фильтрацию сигналов по индикатору ADX.
?????????? ???????? ????? ADX (ADX_Trend) Уровень ADX — Минимальное значение ADX для подтверждения тренда.
Comm8 Комментарий MAonRSI — Текстовый разделитель группы настроек MAonRSI.
Comm9 Комментарий — Текстовый комментарий.
MAonRSI MAonRSI — Включить расчёт сигналов на основе MAonRSI.
?????? ?????????? RSI (RSI_Period) Период RSI — Период индикатора RSI.
?????? ?? ?????????? MAonRSI (MA_Period) Период MA — Период скользящей средней для MAonRSI.
??????? ??????? RSI (RSI_max) Максимум RSI — Верхний порог RSI для сброса сигнала.
?????? ??????? RSI (RSI_min) Минимум RSI — Нижний порог RSI для сброса сигнала.
Comm14 Комментарий — Текстовый разделитель.
Comm15 Комментарий — Текстовый комментарий.
Bool Bool — Включить дополнительный режим сигнала.
0/1/5-- ?????????. (TF) Таймфрейм — Таймфрейм для расчёта полос Боллинджера.
5/5/60-- ??????. (period) Период — Период для расчёта полос Боллинджера.
1/1/3-- ?????????? ?? ???????? ?????. (deviation) Отклонение — Стандартное отклонение для полос Боллинджера.
0/1/5-- ????? ?????????? ???????????? ???????? ???????. (bandsshift) Сдвиг полос — Горизонтальный сдвиг полос Боллинджера.
0/1/6-- ???????????? ????. ????? ???? ????? ?? ??????? ????????. ???????? 0-6. (appliedprice) Применяемая цена — Тип цены для расчёта полос Боллинджера.
0/1/10-- ????? ?? ????? ??????????? ? ???????. (?? ???????????? ????????) (DeltaOut) Дельта выхода — Дельта для условия выхода из позиции.
0/1/10-- ???? ?? ????? ??????????? ? ???????. (?? ???????????? ????????) (DeltaIn) Дельта входа — Дельта для условия входа в позицию.
Comm10 Комментарий — Текстовый разделитель.
?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ?????? (AClim) Лимит AC — Граничное значение индикатора AC для фильтрации.
Comm11 Комментарий — Текстовый разделитель.
????????? ????? ?? ????? (Tral) Трейлинг-стоп — Включить трейлинг-стоп для управления стоп-лоссом.
?????????? ??? ?????????? ?????. (AutoTP) Авто TP — Автоматический тейк-профит при активном трейлинге.
?????????? ? ??????, ?? ??????? ????? ????????????? ???????? ????? ( ?????????, ??? ?? ???? ????? ?? (TralDist) Расстояние трейлинга — Расстояние трейлинга в пунктах.
Comm12 Комментарий — Текстовый разделитель.
??????? ??????????? ???????? ???? "?????" ??????? (CloseAll) Закрыть все — Закрыть все позиции по символу при запуске.
?????? ???????? ????? ??????, ???? ????????? ????????/?????? ?????? ?????????? (0.1 - 10% ? ??? ???? (TradeStop) Стоп по убытку — Процентный лимит убытка от баланса для остановки торговли.
????????? ???????? ?????? ?? ???????? (LL) Лимит убытка — Включить ограничение убытка по суммарной прибыли.
??????? ?????? ? ??????? ?????? (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     = 10.0;                         // ?????? ? ???????
double         StopLoss       = 0;                            // ???? ? ???????
extern double  slip           = 5;                            // ??????????????? ???? ( ?????? ? ???????? ) ))
extern bool    AddOrdersInd   = False;                        // ?????????? ????? ?? ???????
extern int     MaxTradesB     = 30;                           // ?????????? ??????????? ??????????? ??????? ? ???  ( ???? ?? "0" )
extern int     MaxTradesS     = 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    Warning        = True;                         // ??????????? ???? ????????? ??????? ?????
extern bool    info           = True;                         // ??????????? ??????????
extern bool    Zero           = True;                         // ??????????? ?????? ????????? ???? ??????? ?? ???????????
extern bool    BarControl     = True;                         // ?????????? ????????? ????????
extern bool    debug          = False;                        // ???????
extern bool    EconomProfil   = True;                         // ????? ??? ?????????? ?????????? 
extern int     FirstEconomOrd = 4;                            // ?????, ? ???????? ?????????? ??????????? ?????. ????????, ???? 4, ?? 4, 5, 6 ... ?????? ????? 1 ? ??? ?? ???.
extern bool    Overlapping    = True;                         // ????????? ?????? ?????????? ????????? ??????? ?????????? ??????
extern int     LeadingOrder   = 4;                            // ? ?????? ?????? ???????? ??????????.
extern int     FLPersent      = 7;                            // ??????? ?????????? 

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      = True;  
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  Comm14         = "===== ????????? ??????????? ======";
extern string  Comm15         = " (????????? ?????????? ??????????)";
extern bool    Bool           = False;
extern int     TF             = 0;                            //--0/1/5-- ?????????.
extern int     period         = 20;                           //--5/5/60-- ??????.
extern int     deviation      = 1;                            //--1/1/3-- ?????????? ?? ???????? ?????.
extern int     bandsshift     = 0;                            //--0/1/5-- ????? ?????????? ???????????? ???????? ???????. 
extern int     appliedprice   = 0;                            //--0/1/6-- ???????????? ????. ????? ???? ????? ?? ??????? ????????. ???????? 0-6.
extern int     DeltaOut       = 0;                            //--0/1/10-- ????? ?? ????? ??????????? ? ???????. (?? ???????????? ????????)
extern int     DeltaIn        = 0;                            //--0/1/10-- ???? ?? ????? ??????????? ? ???????. (?? ???????????? ????????)

extern string  Comm10         = "= ????????? ??????? ????? ?? ??=";
extern double  AClim          = 0.0001;                       // ?????? ?? ?? ???? ?? ????? ??? ?????????? ???????? ?? ???????? ??????? ??????
extern string  Comm11         = "======= ????????? ????? ========";
extern bool    Tral           = False;                        // ????????? ????? ?? ?????
extern int     AutoTP         = 100;                          // ?????????? ??? ?????????? ?????.
extern int     TralDist       = 2;                            // ?????????? ? ??????, ?? ??????? ????? ????????????? ???????? ????? ( ?????????, ??? ?? ???? ????? ???? ????? )
extern string  Comm12         = "== ??????, ????????, ???????? ==";
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, LossB, LossS;
double STOP_L, Lprofit, Profit_B, Profit_S, Cprofit, BUBuyLevel, BUSellLevel;
double LastBuyPrice, LastSellPrice, PipStepB, PipStepS, iLotsB, iLotsS, SL,TP,  ACmax, ACmin, Dig, CCI_min, CCI_max;
double CProfit = 0, CProfit2 = 0, LProfit = 0, PrcCL1 = 0, PrcCL = 0, Take_Profit;

bool BarControl_0, flagB, flagS;
bool NewOrdersPlacedB = True, NewOrdersPlacedS = True;

int timeprev = 0, NumOfTradesB = 0, NumOfTradesS = 0, cnt = 0, DCCoef = 10000, TPControlB = 0, TPControlS = 0, k=1;
int ticket, expiration, totalB, totalS, total, CheckTotalS, CheckTotalB, lotdecimal, Error, Lpos, StopSet, Cpos;
string title="???????? ??????????", title1="      Trend Racing 3.57 ME      ", msg="";
string EAName = "Trend Racing 3.57 ME";
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");
    ObjectDelete("Lable!");
    ObjectDelete("TPBuy");
    ObjectDelete("TPSell");
   return (0);
}

int start()
{
      // код доступен только после оплаты
   }  
   if (StopSet == 4) return (0);
   if (!IsDllsAllowed())       StopSet = 1;  
   if (!IsLibrariesAllowed())  StopSet = 2;
   if ((Bool) && (MAonRSI))    StopSet = 8;

   Take_Profit = TakeProfit;
   STOP_L = NormalizeDouble(MarketInfo(Symbol(),MODE_STOPLEVEL),Dig);
   double spread = MarketInfo(Symbol(), MODE_SPREAD);
   if (Tral) Take_Profit = AutoTP;
   if (TakeProfit <= STOP_L) {
      Take_Profit = (STOP_L + spread + k);
      int attention = 1;
      if (debug) {
         Print ("???????? !!! ?? ??????? ?????? ?????? !!! " );
         Print ("??? ???? ????????? ?? ????????????? ?????????? ??!");
         Print ("?????????? ???????? ???????, ????????????? ????? ????????????."); 
      }   
   }   
   if (debug) Print ("??????? ??????? ?????? ?? ?? ??????? ??????????? ", STOP_L);
   if (StopLoss !=0) StopSet = 5; 

   double Balans   = NormalizeDouble(AccountBalance(),Dig);
   double Sredstva = NormalizeDouble(AccountEquity() ,Dig); 
   double KontrSr  = NormalizeDouble(Sredstva/Balans,1);
   if (KontrSr <= TradeStop) StopSet = 6;

   if (CloseAll) StopSet = CloseThisSymbolAll();

   if (LL) {                                  
      double LB = ProfitB(); 
      double LS = ProfitS();
      double L  = (- LossLevel);
      if (LB < L) CloseThisSymbolBUY ();
      if (LS < L) CloseThisSymbolSELL();
   }   

   total   = CountTradesAll();
   totalB  = CountTradesB();
   totalS  = CountTradesS();

   if (total      !=  0) OrderTake_Profit();
   if (TPControlS == 1 ) NewOrdersPlacedS = True;
   if (TPControlB == 1 ) NewOrdersPlacedB = True;
   if (CheckTotalB != totalB) NewOrdersPlacedB = True;
   if (CheckTotalS != totalS) NewOrdersPlacedS = True;
   if (NewOrdersPlacedB) RecalculationB();
   if (NewOrdersPlacedS) RecalculationS();

   PipStepB = NormalizeDouble(FirstPipStep * MathPow(PipStepExponent, totalB), 0);
   PipStepS = NormalizeDouble(FirstPipStep * MathPow(PipStepExponent, totalS), 0);
   if (debug) {
      Print("??????? ??????? ??? ",  PipStepB);
      Print("??????? ??????? ???? ", PipStepS);
   }   
   iLotsB = NormalizeDouble(Lots, lotdecimal); 
   iLotsS = NormalizeDouble(Lots, lotdecimal); 
   NumOfTradesB = totalB;
   NumOfTradesS = totalS;

   if (EconomProfil) {
      if (totalB >= FirstEconomOrd) {
         PipStepB = LongPipStep;
         NumOfTradesB = FirstEconomOrd-1;
      }
      if (totalS >= FirstEconomOrd) {
         PipStepS = LongPipStep;
         NumOfTradesS = FirstEconomOrd-1;
      }   
   }   

   if (totalB > 0 && totalB <= MaxTradesB) LastBuyPrice  =  FindLastBuyPrice();
   if (totalS > 0 && totalS <= MaxTradesS) LastSellPrice = FindLastSellPrice();

   if (totalB >= MaxTradesB)  { 
      if (debug) Print ("?????????? ??????????? ??????????? ????? ?????? ?? ????? ???, "); 
      if (debug) Print ("????? ?????? ??? ??????????? ?? ?????, ????????????? ????? ????????????."); 
   }   
   if (totalS >= MaxTradesS)  { 
      if (debug) Print ("?????????? ??????????? ??????????? ????? ?????? ?? ????? ????, "); 
      if (debug) Print ("????? ?????? ???? ??????????? ?? ?????, ????????????? ????? ????????????."); 
   }  

   if ((StopSet == 1) || (StopSet == 2) || (StopSet == 3) || (StopSet==5) || (StopSet==6) || (StopSet==7) || (StopSet == 8)) {
      if (StopSet == 1) msg=" ????????? ???????? ?????? ?? ???????     "+"\n"+" dll, ????????? ????????.            "; 
      if (StopSet == 2) msg=" ????????? ???????? ?????? ?? ???????     "+"\n"+" ??????????, ????????? ????????.     "; 
      if (StopSet == 3) msg=" ??????? ???????? ????????? ??. ????????? "+"\n"+" ??????? ? ???????? ???????? ??????? "; 
      if (StopSet == 5) msg=" ???????? ?? ???????????? ? ?????????,    "+"\n"+" ?????????? ???????? StopLoss = 0.   ";  
      if (StopSet == 6) msg=" ???????? ?????????? ??????? ????????     "+"\n"+" ???????.                            ";  
      if (StopSet == 7) msg=" ???????? ??????????, ??? ?????? ???????  "+"\n"+" ?? ?????????? ????????????.         "; 
      if (StopSet == 8) msg=" ????????  ???  ??????????:  MAonRSI ?    "+"\n"+" ??????????. ???????? ???? ?? ???.   "; 
      int ret = MessageBox(msg,title,MB_OK|MB_ICONSTOP); 
      if (ret == IDOK) {
      Print ("???????? ?????????? ????????????? ??? ?????????????"); 
      Sleep (3000);
      return (0); 
      }   
   }

   int SignalMA   = 0;
   int SignalCCI  = 0;
   int SignalADX  = 0; 
   int SignalRSI  = 0;
   int SignalAC   = 0;
   int Signal     = 0;
   int SignalBool = 0;

   if (MAonRSI) { 
      CCI_kontr = False; ADX_kontr = False; 
      SignalRSI = MAonRSI();  SignalAC  = AC();                                   // ????????? ???, ????? MAonRSI ? ??
      if ((SignalRSI == 1) && (SignalAC ==1)) Signal =  1;                        // ????????? ???
      if ((SignalRSI ==-1) && (SignalAC ==1)) Signal = -1;                        // ????????? ????
   }   
   if (Bool) { 
      CCI_kontr = False; ADX_kontr = False; 
      SignalBool = SBool();    SignalAC  = AC();                                  // ????????? ???, ????? ??????????? ? ??
      if ((SignalBool == 1) && (SignalAC ==1)) Signal =  1;                       // ????????? ???
      if ((SignalBool ==-1) && (SignalAC ==1)) Signal = -1;                       // ????????? ????
   }  
   if ((!CCI_kontr) && (!ADX_kontr)&& (!MAonRSI) && (!Bool)) {                    // CCI ???????? ????????, ADX ???????? ????????
      SignalMA  = MA(); SignalAC  = AC();
      if ((SignalMA == 1) && (SignalAC ==1)) Signal =  1;                         // ????????? ???
      if ((SignalMA ==-1) && (SignalAC ==1)) Signal = -1;                         // ????????? ????
   } 
   if ((CCI_kontr) && (!ADX_kontr))  {                                            // CCI ???????? ??????? ADX ???????? ????????
      SignalMA  = MA(); SignalCCI = CCI(); SignalAC  = AC();
      if ((SignalMA == 1) && (SignalCCI == 1) && (SignalAC ==1)) Signal =  1;     // ????????? ???
      if ((SignalMA ==-1) && (SignalCCI ==-1) && (SignalAC ==1)) Signal = -1;     // ????????? ????
   }
   if ((!CCI_kontr) && (ADX_kontr))  {                                            // CCI ???????? ????????, ADX ???????? ???????
      SignalMA  = MA(); SignalAC  = AC(); SignalADX = ADX();
      if ((SignalMA == 1) && (SignalAC ==1) && (SignalADX ==1))  Signal =  1;     // ????????? ???
      if ((SignalMA ==-1) && (SignalAC ==1) && (SignalADX ==1))  Signal = -1;     // ????????? ????
   }   
   if ((CCI_kontr) && (ADX_kontr))   {
      SignalMA  = MA(); SignalCCI = CCI(); SignalAC  = AC(); SignalADX = ADX();
      if ((SignalMA == 1) && (SignalCCI == 1) && (SignalAC ==1) && (SignalADX ==1)) Signal =  1;     // ????????? ???
      if ((SignalMA ==-1) && (SignalCCI ==-1) && (SignalAC ==1) && (SignalADX ==1)) Signal = -1;     // ????????? ????
   }

    if (info) {

      if (Signal ==  1)txt2="Maneuver  BUY";
      if (Signal == -1)txt2="Maneuver SELL";
      if (Signal ==  0)txt2="Pit stop...";
      ObjectSetText("Lable2",txt2,14,"Fixedsys",Blue);
      txt3= DoubleToStr (MarketInfo(Symbol(), MODE_SPREAD),0);
      ObjectSetText("Lable3","??????? ????? "+txt3+"",14,"Fixedsys",FireBrick);

      txt5 = DoubleToStr ((LastBuyPrice  - PipStepB * Point), Dig);
      txt6 = DoubleToStr ((LastSellPrice + PipStepS * Point), Dig);
      if (totalB == 0)  txt5 = "--"; 
      if (totalS == 0)  txt6 = "--"; 
      ObjectSetText("LableB","????. ?????? Buy  "+txt5+"",14,"Fixedsys",Blue);  
      ObjectSetText("LableS","????. ?????? Sell "+txt6+"",14,"Fixedsys",FireBrick); 

      ObjectDelete ("Lable!");
      if (attention == 1) {
      ObjectCreate ("Lable!", OBJ_LABEL,0,0,1.0);
      ObjectSet    ("Lable!", OBJPROP_CORNER, 0);
      ObjectSet    ("Lable!", OBJPROP_XDISTANCE, 23);
      ObjectSet    ("Lable!", OBJPROP_YDISTANCE, 80);
      ObjectSetText("Lable!","L",20,"Wingdings 2",FireBrick);  
      } 
   }

   double ZeroLevel = Zerro();
   if (Tral) {
      if (totalB > 0) {
          double PriceTargetB = (BUBuyLevel + TakeProfit * Point);
          if (Bid > NormalizeDouble ((PriceTargetB + TralDist * Point + STOP_L * Point),Dig)) {
            LossB =   NormalizeDouble((Bid - TralDist * Point - STOP_L * Point),Dig);
            TralModifyB();
         }   
      }   
      if (totalS > 0) {
         double PriceTargetS = (BUSellLevel - TakeProfit * Point);
         if (Ask < NormalizeDouble ((PriceTargetS - TralDist * Point - STOP_L * Point),Dig))  {
            LossS =   NormalizeDouble((Ask + TralDist * Point + STOP_L * Point),Dig);
            TralModifyS();
         }    
      }
   }      
   if (info) {        
      ObjectDelete("TPBuy");
      ObjectCreate("TPBuy", OBJ_HLINE, 0, 0,PriceTargetB);
      ObjectSet   ("TPBuy", OBJPROP_COLOR, Blue);
      ObjectSet   ("TPBuy", OBJPROP_WIDTH, 1);
      ObjectSet   ("TPBuy", OBJPROP_RAY, False);

      ObjectDelete("TPSell");
      ObjectCreate("TPSell", OBJ_HLINE, 0, 0,PriceTargetS);
      ObjectSet   ("TPSell", OBJPROP_COLOR, Red);
      ObjectSet   ("TPSell", OBJPROP_WIDTH, 1);
      ObjectSet   ("TPSell", OBJPROP_RAY, False);  

   }   

   if (Zero) {
      ObjectDelete("Zero");
      ObjectCreate("Zero", OBJ_HLINE, 0, 0,ZeroLevel);
      ObjectSet   ("Zero", OBJPROP_COLOR, DodgerBlue);
      ObjectSet   ("Zero", OBJPROP_WIDTH, 1);
      ObjectSet   ("Zero", OBJPROP_RAY, False);
      }    

  if ((totalB >= LeadingOrder) || (totalS >= LeadingOrder)) {
     if(Overlapping) {
       Lpos = 0; Cpos = 0; Lprofit = 0; Cprofit = 0;
       Lpos = LidingProfitOrder();
       Cpos = CloseProfitOrder();
       if (debug) {
          Print ("?????????? ?????? ", Lprofit,"  ", Lpos);
          Print ("?????????? ?????? ", Cprofit,"  ", Cpos);
       }    
       Cprofit  = MathAbs(Cprofit);
       PrcCL1 =  (Cprofit + Cprofit * FLPersent/100);
       if(Lprofit > PrcCL1) {
          CloseSelectOrder(); 

        }
     }  
  }  

   if  (total == 0) {
       flagB = False;
       flagS = False;
   }    

   CheckTotalB = totalB;  
   CheckTotalS = totalS;

   if ((BarControl_0)&&(timeprev == Time[0])) return (0);
   timeprev = Time[0];

   if (!AddOrdersInd) {
      if (totalB > 0 && totalB <= MaxTradesB) {  
         if ((NormalizeDouble((LastBuyPrice - Ask)/Point, 0)) >= PipStepB) {
            iLotsB = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTradesB), lotdecimal);

            ticket = OPENORDER ("Buy");
            Sleep (3000);
            if (ticket < 0) {
               BarControl_0 = False;
               return (0);
            }

            BarControl_0 = BarControl;
         }
      }   
   }    

   if (AddOrdersInd) {
      if (totalB > 0 && totalB <= MaxTradesB) {  
         if (((NormalizeDouble((LastBuyPrice - Ask)/Point, 0)) >= PipStepB) && (Signal == 1)) {
            iLotsB = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTradesB), lotdecimal);

            ticket = OPENORDER ("Buy");
            Sleep (3000);
            if (ticket < 0) {
               BarControl_0 = False;
               return (0);
            }

            BarControl_0 = BarControl;
         }
      }   
   } 

   if (!AddOrdersInd) {
      if (totalS > 0 && totalS <= MaxTradesS) {
         if ((NormalizeDouble((Bid - LastSellPrice) / Point, 0))>=PipStepS ) {
            iLotsS = NormalizeDouble(Lots * MathPow(LotExponent, NumOfTradesS), lotdecimal);

            ticket = OPENORDER ("Sell");
            Sleep (3000);
            if (ticket < 0) {
               BarControl_0 = False;
               return (0);
            }

            BarControl_0 = BarControl;
         }
      }
   }   

   if (AddOrdersInd) {
      if (totalS > 0 && totalS <= MaxTradesS) {
         if (((NormalizeDouble((Bid - LastSellPrice) / Point, 0))>=PipStepS ) && (Signal == -1)) {
            iLotsS = N

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

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

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

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

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

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

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