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

DragonPips Ultimate v2.02

dragon pips v2.02 rev.mq4

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

DragonPips Ultimate v2.02 — торговый советник для платформы MetaTrader 4, работающий на таймфрейме M15. Советник анализирует рынок с помощью набора технических индикаторов, включая фракталы, RSI, CCI, Momentum, WPR, Force, скользящие средние и полосы Боллинджера. Реализованы четыре стратегии входа в рынок с различными комбинациями индикаторов и условиями открытия позиций.

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

Дополнительно реализовано управление торговой сессией по времени GMT, ограничение максимального количества сделок и допустимого спреда, поддержка работы с ECN/STP-брокерами, а также система уведомлений через алерты и звуковые файлы. Советник корректно обрабатывает ручное и автоматическое определение GMT-смещения, включая режим бэктестирования.

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

НастройкаОписание
SetYourBalanceTargetBelow Описание цели по балансу — Текстовая строка-заголовок, описывающая условие остановки торговли при достижении целевого баланса.
BalanceTarget Целевой баланс — Значение баланса, при достижении которого советник прекращает открытие новых сделок и закрывает существующие позиции.
za Разделитель группы времени — Текстовый разделитель, обозначающий начало группы настроек торгового времени.
TradingTime Описание торгового времени — Текстовая строка с описанием времени торговли по умолчанию.
19:00 GMT (OpenHour) Час открытия сессии — Время начала торговой сессии в формате ЧЧ:ММ по GMT.
23:00 GMT (CloseHour) Час закрытия сессии — Время окончания торговой сессии в формате ЧЧ:ММ по GMT.
xa Разделитель группы управления средствами — Текстовый разделитель, обозначающий начало группы настроек управления денежными средствами.
lotsInfo Информация о лотах — Текстовая строка с подсказкой о минимальном размере лота при низком балансе.
Change to false to shutdown money management controls. (MoneyManagement) Управление размером позиции — Включает или отключает автоматический расчёт размера лота в зависимости от средств на счёте.
mmm Описание режимов управления — Текстовая строка с перечислением доступных режимов расчёта размера позиции.
MM_Mode Режим расчёта лота — Режим расчёта размера позиции: 1 — по свободному маржиналу, 2 — по equity, 3 — по балансу.
Change to whatever percent of equity you wish to risk. (TradeSizePercent) Процент риска — Процент средств счёта, используемых для расчёта размера позиции в каждом из режимов управления.
standard lot size. (Lots) Базовый размер лота — Фиксированный размер позиции в лотах при отключённом управлении или как базовое значение.
MaxLots Максимальный размер лота — Максимально допустимый размер позиции в лотах.
zb Разделитель — Текстовый разделитель между группами настроек.
Aggressive Агрессивный режим — Включает увеличение размера позиции при открытии сделки в определённых стратегиях.
xb Разделитель группы управления сделками — Текстовый разделитель, обозначающий начало группы настроек управления сделками.
MaxTrades Максимум сделок — Максимальное количество одновременно открытых сделок на одном символе.
MaxTrades_x_Bar Максимум сделок за бар — Максимальное количество сделок, которые могут быть открыты за один тиковый бар.
xc Разделитель — Текстовый разделитель между группами настроек.
BrokerSpread Описание ограничения спреда — Текстовая строка с подсказкой о максимально допустимом спреде.
Spread Максимальный спред — Максимально допустимый спред в пунктах для открытия сделки.
TakeProfit Тейк-профит — Уровень фиксации прибыли в пунктах для стандартного закрытия сделки.
StopLoss Стоп-лосс — Уровень стоп-лосса в пунктах для стандартной защиты позиции.
x0 Разделитель — Текстовый разделитель между группами настроек.
ECN_STP Режим ECN/STP — Включает обновление цен перед закрытием ордеров при работе с ECN/STP-брокерами.
x1 Разделитель — Текстовый разделитель между группами настроек.
Use_TimeProtectionLevels Уровни временной защиты — Включает систему поэтапного закрытия позиций по времени и прибыли.
MinutesToClose_Level_1 Время для уровня 1 — Минимальное время удержания позиции перед проверкой условия закрытия на первом уровне защиты.
PipsToClose_Level_1 Прибыль для уровня 1 — Минимальная прибыль в пунктах для закрытия позиции на первом уровне защиты.
MinutesToClose_Level_2 Время для уровня 2 — Минимальное время удержания позиции перед проверкой условия закрытия на втором уровне защиты.
PipsToClose_Level_2 Прибыль для уровня 2 — Минимальная прибыль в пунктах для закрытия позиции на втором уровне защиты.
MinutesToClose_Level_3 Время для уровня 3 — Минимальное время удержания позиции перед проверкой условия закрытия на третьем уровне защиты.
PipsToClose_Level_3 Прибыль для уровня 3 — Минимальная прибыль в пунктах для закрытия позиции на третьем уровне защиты.
MinutesToClose_Level_4 Время для уровня 4 — Минимальное время удержания позиции перед проверкой условия закрытия на четвёртом уровне защиты.
PipsToClose_Level_4 Прибыль для уровня 4 — Минимальная прибыль в пунктах для закрытия позиции на четвёртом уровне защиты.
MinutesToClose_Level_5 Время для уровня 5 — Минимальное время удержания позиции перед проверкой условия закрытия на пятом уровне защиты.
PipsToClose_Level_5 Прибыль для уровня 5 — Минимальная прибыль в пунктах для закрытия позиции на пятом уровне защиты.
s1 Разделитель — Текстовый разделитель между группами настроек.
Use_RangeFilter Фильтр диапазона — Включает фильтр, блокирующий открытие сделок при превышении диапазона цены за указанное количество баров.
Range_PreviousBars Баров для диапазона — Количество баров, используемых для расчёта текущего диапазона цены.
Max_Range Максимальный диапазон — Максимально допустимый диапазон цены в пунктах для разрешения открытия сделок.
s2 Разделитель — Текстовый разделитель между группами настроек.
Use_Close_AllTrades Закрытие всех сделок — Включает автоматическое закрытие всех открытых позиций в указанное время.
Close_AllTrades_At Время закрытия всех сделок — Время в формате ЧЧ:ММ по GMT, в которое все открытые сделки будут закрыты автоматически.
s3 Разделитель — Текстовый разделитель между группами настроек.
Use_Strategy1 Стратегия 1 — Включает первую стратегию входа в рынок на основе RSI и скользящей средней.
Use_Strategy2 Стратегия 2 — Включает вторую стратегию входа в рынок на основе CCI и фракталов.
Use_Strategy3 Стратегия 3 — Включает третью стратегию входа в рынок на основе Momentum, CCI и фракталов.
Use_Strategy4 Стратегия 4 — Включает четвёртую стратегию входа в рынок на основе WPR, MA и полос Боллинджера.
x2 Заголовок расширенных настроек — Текстовый заголовок группы расширенных настроек советника.
ATR_Threshold Порог ATR — Пороговое значение ATR для фильтрации сделок по волатильности.
Slippage Проскальзывание — Допустимое проскальзывание при открытии и закрытии ордеров в пунктах.
x3 Разделитель — Текстовый разделитель между группами настроек.
MagicNumber Магический номер — Базовый магический номер, используемый для идентификации ордеров советника.
x4 Разделитель — Текстовый разделитель между группами настроек.
ExpertInfo Информация об эксперте — Текстовая строка с описанием настройки идентификации советника.
ExpertName Имя эксперта — Имя советника, используемое в комментариях к ордерам и для их идентификации.
x90 Заголовок уведомлений — Текстовый заголовок группы настроек уведомлений.
MessageAlert Алерт-уведомления — Включает вывод окон с алертами при открытии и закрытии сделок.
SoundAlert Звуковые уведомления — Включает воспроизведение звуковых файлов при открытии и закрытии сделок.
SoundFileAtOpen Звук при открытии — Имя звукового файла для воспроизведения при открытии сделки.
SoundFileAtClose Звук при закрытии — Имя звукового файла для воспроизведения при закрытии сделки.
x91 Заголовок GMT-смещения — Текстовый заголовок группы настроек ручного GMT-смещения.
Use_Manual_GMTOffset Ручное GMT-смещение — Включает использование вручную заданного значения GMT-смещения вместо автоматического определения.
Manual_GMTOffset Ручное GMT-смещение — Ручное значение смещения GMT в часах, используемое при включённом ручном режиме.
x92 Заголовок бэктестов — Текстовый заголовок группы настроек, используемых при бэктестировании.
GMTOffset_for_Backtests GMT для бэктестов — Значение GMT-смещения, применяемое при проведении тестирования на исторических данных.
Получить полный код

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

#include <stdlib.mqh>

#import "kernel32.dll"
   void  GetLocalTime(int& TimeArray[]);
   int   GetTimeZoneInformation(int& TZInfoArray[]);
#import

extern string  SetYourBalanceTargetBelow = "- Stop if balance target equal or bigger than --";
extern double  BalanceTarget = 10000000.0;
extern string  za="-- Trading Time (GMT) --------------------------------------------";
extern string  TradingTime = "19:00-23:00 GMT is default";
extern string  OpenHour = "19:00";  // 19:00 GMT
extern string  CloseHour = "23:00"; // 23:00 GMT
extern string  xa="-- Money Management ----------------------------------------------";
extern string  lotsInfo = "-- balance under $1000 start with 0.01 Lots";
extern bool    MoneyManagement = false;       // Change to false to shutdown money management controls.

extern string  mmm="Mode: 1-FreeMargin  2-Equity  3-Balance";                                             
extern int     MM_Mode = 1;                                            
extern double  TradeSizePercent = 5;        // Change to whatever percent of equity you wish to risk.
extern double  Lots = 0.1;                   // standard lot size. 
extern double  MaxLots = 10;

extern string  zb="----------------------------------------------";
extern bool    Aggressive = true;

extern string  xb="-- Trade Management ----------------------------------------------";
extern int     MaxTrades = 3;
extern int     MaxTrades_x_Bar = 1;
extern string  xc = "---------------------------";

extern string  BrokerSpread = "-- Set spread not over than 4 --";
extern double  Spread = 4.0;
extern double  TakeProfit = 5.0;
extern double  StopLoss = 25.0;
extern string  x0 = "---------------------------"; 
extern bool    ECN_STP = true;
extern string  x1 = "---------------------------";
extern bool    Use_TimeProtectionLevels = true;
extern int     MinutesToClose_Level_1 = 60;
extern double  PipsToClose_Level_1 = 3.0;
extern int     MinutesToClose_Level_2 = 140;
extern double  PipsToClose_Level_2 = 2.0;
extern int     MinutesToClose_Level_3 = 170;
extern double  PipsToClose_Level_3 = 1.0;
extern int     MinutesToClose_Level_4 = 200;
extern double  PipsToClose_Level_4 = -1.0;
extern int     MinutesToClose_Level_5 = 240;
extern double  PipsToClose_Level_5 = -4.0;
extern string  s1 = "---------------------------";
extern bool    Use_RangeFilter = true;
extern int     Range_PreviousBars = 8;
extern double  Max_Range = 45.0;
extern string  s2 = "---------------------------";
extern bool    Use_Close_AllTrades = false;
extern string  Close_AllTrades_At = "23:30";
extern string  s3 = "---------------------------";
extern bool    Use_Strategy1 = true;
extern bool    Use_Strategy2 = true;
extern bool    Use_Strategy3 = true;
extern bool    Use_Strategy4 = true;
extern string  x2 = "-- Extreme Edition -------------------------";
extern int     ATR_Threshold = 20;
extern int     Slippage = 1;
extern string  x3 = "---------------------------";
extern int     MagicNumber = 0;
extern string  x4 = "---------------------------";
extern string  ExpertInfo = "-- Change EA name to hide EA identity -----------------";
extern string  ExpertName = "DragonPips Ultimate v2.02";
extern string  x90="-- Alerts control ----------------------------------------------";
extern bool    MessageAlert = false; 
extern bool    SoundAlert = false;
extern string  SoundFileAtOpen = "alert.wav";
extern string  SoundFileAtClose = "news.wav";
extern string  x91="-- Manual GMT Offset -------------------------------------------";
extern bool    Use_Manual_GMTOffset = false;
extern int     Manual_GMTOffset = 0;
extern string  x92="-- Backtests use only ------------------------------------------";
extern int     GMTOffset_for_Backtests=0;

bool gi_76;
bool gi_80;
bool gi_84;
bool gi_88;
bool gi_196 = TRUE;
bool gi_200 = TRUE;
double gd_164 = 0.0001;
int g_slippage_220;
int gi_224 = 32;
int gi_232 = 3;
int g_magic_240 = 371443;
int g_magic_244 = 3714431;
int g_magic_248 = 3714432;
int g_magic_252 = 3714433;
int gi_256;
double gi_260;
int gi_264;
double gi_268;
int gi_272;
double gi_276;
int gi_280;
double gi_284;
int gi_288;
double gi_292;
bool gi_296 = TRUE;
double gd_300 = 0.001;
double gd_308 = 0.001;
double gd_316 = 0.0012;
int gi_324 = 55;
bool gi_328 = TRUE;
bool gi_332 = TRUE;
bool gi_336 = TRUE;
bool gi_340 = TRUE;
bool gi_344 = TRUE;
bool gi_348 = TRUE;
bool gi_352 = TRUE;
bool gi_356 = TRUE;
double g_minlot_360 = 0.0;
double g_maxlot_368 = 0.0;
int g_lotsize_376 = 0;
int g_leverage_380 = 0;
double g_lots_384;
double g_lots_392;
int g_pos_400;
int gi_404 = 0;
int g_count_408 = 0;
int g_count_412 = 0;
int g_count_416 = 0;
int g_count_420 = 0;
int g_count_424 = 0;
int gi_428 = 0;
int gi_432 = 0;
int gi_436 = 0;
int gi_440 = 0;
int gi_444 = 0;
int gi_448 = 0;
int gi_452 = 0;
int gi_456 = 0;
int gi_460 = 0;
int gi_464 = 0;
double g_ord_open_price_468 = 0.0;
double g_ord_open_price_476 = 0.0;
double g_ord_open_price_484 = 0.0;
double g_ord_open_price_492 = 0.0;
double g_ord_open_price_500 = 0.0;
double g_ord_open_price_508 = 0.0;
double g_ord_open_price_516 = 0.0;
double g_ord_open_price_524 = 0.0;
double g_ord_open_price_532 = 0.0;
double g_ord_open_price_540 = 0.0;
double g_price_564 = 0.0;
double g_price_572 = 0.0;
double g_ifractals_580;
double g_ifractals_588;
double g_ifractals_612;
double g_ifractals_620;
int gi_644 = 0;
double gd_652 = 0.0;
int gi_660 = 0;

bool HighRange=false;
double Rx;
string msg1;
int err;
string ddx[] = {".", "..", "...", "....", "....."};
int gmt_shift=0;
int GMTOffset;
datetime GMT;
int time;
int BarCount;
int TradesITB = 0;
int DigitsLots = 1;
double iMinLot;
int TimeH;
int OpenH;
int CloseH;
bool TimeOK;
int minX;

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

int deinit() {
   ObjectDelete("Session");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   if (StringFind(OpenHour, ":",2)==-1 || StringLen(OpenHour)!=5) return(0);
   if (StringFind(CloseHour, ":",2)==-1 || StringLen(CloseHour)!=5) return(0);
   if (StringFind(Close_AllTrades_At, ":",2)==-1 || StringLen(Close_AllTrades_At)!=5) return(0);
   if (!IsDllsAllowed()) return (0);
   if (GMTOffset <= -8 || GMTOffset >= 8)
   {
      Atenea();
      return (0);
   }
   if (Use_Manual_GMTOffset==true) GMTOffset = Manual_GMTOffset; 
   GMT = TimeCurrent() - (GMTOffset * 3600); 
   time = GMT;       

   g_price_564 = TakeProfit;
   g_price_572 = 0;
   int l_cmd_0;
   g_count_408 = 0;
   g_count_412 = 0;
   g_count_416 = 0;
   g_count_420 = 0;
   g_count_424 = 0;
   gi_428 = 0.0;
   gi_432 = 0.0;
   gi_436 = 0.0;
   gi_440 = 0.0;
   gi_444 = 0.0;
   gi_448 = 0.0;
   gi_452 = 0.0;
   gi_456 = 0.0;
   gi_460 = 0.0;
   gi_464 = 0.0;
   g_ord_open_price_468 = 0.0;
   g_ord_open_price_476 = 0.0;
   g_ord_open_price_484 = 0.0;
   g_ord_open_price_492 = 0.0;
   g_ord_open_price_500 = 0.0;
   g_ord_open_price_508 = 0.0;
   g_ord_open_price_516 = 0.0;
   g_ord_open_price_524 = 0.0;
   g_ord_open_price_532 = 0.0;
   g_ord_open_price_540 = 0.0;

   for (int l_pos_32 = 0; l_pos_32 < OrdersTotal(); l_pos_32++) {
      OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol() && (OrderMagicNumber() == g_magic_240 || OrderMagicNumber() == g_magic_244 || OrderMagicNumber() == g_magic_248 || OrderMagicNumber() == g_magic_252)) {
         g_count_408++;
         if (OrderType() == OP_BUY) {
            gi_448++;
            g_ord_open_price_508 = OrderOpenPrice();
         }
         if (OrderType() == OP_SELL) {
            gi_428++;
            g_ord_open_price_468 = OrderOpenPrice();
         }
      }
   }      

   if (BalanceTarget > 0.0 && AccountEquity() >= BalanceTarget) 
   {
      if (g_count_408>0) 
      { 
         CloseAll();      
         Print("Account Profit Reached. All Open Trades Have Been Closed"); 
      }
      Comment("\n\n Dragon Ultimate\n\n Account Profit Reached. New trades are NOT allowed.");
      return (0);
   }

   if (Use_Close_AllTrades==true && g_count_408>0)
   {
      if (minX!=Minute())
      {
         if (TimeHour(GMT)==TimeHour(StrToTime(Close_AllTrades_At)) && TimeMinute(GMT)==TimeMinute(StrToTime(Close_AllTrades_At)))
         {
            CloseAll();      
            g_count_408=0;
            if (MessageAlert) Alert ("All Open Trades Have Been Closed at " + Close_AllTrades_At + " GMT.");
            else Print("All Open Trades Have Been Closed at " + Close_AllTrades_At + " GMT.");
         }
      }   
   }   

   onScreenComment();

   HideTestIndicators(TRUE);

   for (int li_12 = 1; li_12 < Bars; li_12++) {
      if (iFractals(NULL, PERIOD_M15, MODE_UPPER, li_12) != 0.0) {
         g_ifractals_580 = iFractals(NULL, PERIOD_M15, MODE_UPPER, li_12);         
         break;
      }
   }
   for (int li_16 = 1; li_16 < Bars; li_16++) {
      if (iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16) != 0.0) {
         g_ifractals_588 = iFractals(NULL, PERIOD_M15, MODE_LOWER, li_16);         
         break;
      }
   }
   for (int li_20 = 1; li_20 < Bars; li_20++) {
      if (iFractals(NULL, PERIOD_H1, MODE_UPPER, li_20) != 0.0) {
         g_ifractals_612 = iFractals(NULL, PERIOD_H1, MODE_UPPER, li_20);         
         break;
      }
   }
   for (int li_24 = 1; li_24 < Bars; li_24++) {
      if (iFractals(NULL, PERIOD_H1, MODE_LOWER, li_24) != 0.0) {
         g_ifractals_620 = iFractals(NULL, PERIOD_H1, MODE_LOWER, li_24);         
         break;
      }
   }
   gi_644 = MathRound((g_ifractals_580 - g_ifractals_588) / gd_164);   
   gd_652 = 0;
   gd_652 = g_ifractals_580 - (g_ifractals_580 - g_ifractals_588) / 2.0;
   gi_660 = MathRound(iATR(Symbol(), PERIOD_M15, 4, 0) / gd_164);
   bool li_28 = FALSE;
   if (Close[0] <= g_ifractals_612 && Close[0] >= g_ifractals_620) li_28 = TRUE;

   if (gi_196 == TRUE) {
      double OOPx=0, MP, MyB, MyA;
      for (int l_pos_36 = 0; l_pos_36 < OrdersTotal(); l_pos_36++) {
         OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES); 
         if (OrderSymbol()!=Symbol()) continue;
         OOPx = OrderOpenPrice();
         MP = Bid;
         MyB = NormalizeDouble(MP, Digits);
         MP = Ask;
         MyA = NormalizeDouble(MP, Digits);
         if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_240) {
            if (MyB >= NormalizeDouble(OOPx + (TakeProfit * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();               
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP.");  //*********************
            }
         }
         if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_244) {
            if (MyB >= NormalizeDouble(OOPx + ((TakeProfit - 2.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-2.");  //*********************
            }
         }
         if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_248) {
            if (MyB >= NormalizeDouble(OOPx + ((TakeProfit - 1.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-1.");  //*********************
            }
         }
         if (OrderType() == OP_BUY && OrderMagicNumber() == g_magic_252) {
            if (MyB >= NormalizeDouble(OOPx + ((TakeProfit - 2.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-2.");  //*********************
            }
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_240) {
            if (MyA <= NormalizeDouble(OOPx - (TakeProfit * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP.");  //*********************
            }
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_244) {
            if (MyA <= NormalizeDouble(OOPx - ((TakeProfit - 2.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-2.");  //*********************
            }
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_248) {
            if (MyA <= NormalizeDouble(OOPx - ((TakeProfit - 1.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-1.");  //*********************
            }
         }
         if (OrderType() == OP_SELL && OrderMagicNumber() == g_magic_252) {
            if (MyA <= NormalizeDouble(OOPx - ((TakeProfit - 2.0) * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print ("Trade Closed on TP-2.");  //*********************
            }
         }
      }
   }
   if (Use_TimeProtectionLevels==TRUE) {
      for (int l_pos_40 = 0; l_pos_40 < OrdersTotal(); l_pos_40++) {
         OrderSelect(l_pos_40, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol()!=Symbol()) continue;
         if (OrderType() == OP_BUY && (OrderMagicNumber() == g_magic_240 || OrderMagicNumber() == g_magic_244 || OrderMagicNumber() == g_magic_248 || OrderMagicNumber() == g_magic_252)) {
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_256 && TimeCurrent() - OrderOpenTime() < 60 * gi_264 && Bid >= NormalizeDouble(OrderOpenPrice() + (gi_260 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_264 && TimeCurrent() - OrderOpenTime() < 60 * gi_272 && Bid >= NormalizeDouble(OrderOpenPrice() + (gi_268 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_272 && TimeCurrent() - OrderOpenTime() < 60 * gi_280 && Bid >= NormalizeDouble(OrderOpenPrice() + (gi_276 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_280 && TimeCurrent() - OrderOpenTime() < 60 * gi_288 && Bid >= NormalizeDouble(OrderOpenPrice() + (gi_284 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_288 && Bid >= NormalizeDouble(OrderOpenPrice() + (gi_292 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeDayOfWeek(time) == 5 && TimeHour(time) >= 19) {            
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Bid, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
         }
         if (OrderType() == OP_SELL && (OrderMagicNumber() == g_magic_240 || OrderMagicNumber() == g_magic_244 || OrderMagicNumber() == g_magic_248 || OrderMagicNumber() == g_magic_252)) {
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_256 && TimeCurrent() - OrderOpenTime() < 60 * gi_264 && Ask <= NormalizeDouble(OrderOpenPrice() - (gi_260 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 1 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_264 && TimeCurrent() - OrderOpenTime() < 60 * gi_272 && Ask <= NormalizeDouble(OrderOpenPrice() - (gi_268 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 2 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_272 && TimeCurrent() - OrderOpenTime() < 60 * gi_280 && Ask <= NormalizeDouble(OrderOpenPrice() - (gi_276 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 3 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_280 && TimeCurrent() - OrderOpenTime() < 60 * gi_288 && Ask <= NormalizeDouble(OrderOpenPrice() - (gi_284 * gd_164),Digits)) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 4 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + DoubleToStr(OrderTicket(), 0) +
                  " Profit : $ " + DoubleToStr(OrderProfit(), 2));
            }
            if (TimeCurrent() - OrderOpenTime() > 60 * gi_288 && Ask <= (OrderOpenPrice() - (gi_292 * gd_164))) {
               if (ECN_STP==false) RefreshRates();
               if (!OrderClose(OrderTicket(), OrderLots(), Ask, g_slippage_220, Orange)) errClose(OrderTicket());
               if (SoundAlert) PlaySound(SoundFileAtClose);
               Print("Prot. Level 5 - Close Price :" + DoubleToStr(OrderClosePrice(), Digits) + " Lots : " + DoubleToStr(OrderLots(), 2) + " Order Number : " + Do

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

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

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

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

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

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

Стоимость полного кода
3 429,80₽ ≈ $41.92