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

forex combo 1.46 edu.mq4

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

indicator mtf liquidity stack for tradingview.pineTradingView · 1 общих теговindicator harmonic lab for tradingview.pineTradingView · 1 общих теговgoldlevelbreakout 1.00 @simpleforextools.mq4MQL4 / MetaTrader 4 · 1 общих теговearnwithjocker.pineTradingView · 1 общих теговindicator market trajectory mk1 for tradingview.pineTradingView · 1 общих теговgaoxing daily breakout v1.4.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Forex Combo — торговый советник для платформы MetaTrader 4, реализующий три самостоятельные торговые системы: скальпинг, пробой и разворот. Каждая система работает независимо с собственными параметрами входа и выхода из сделок, магическими номерами и настройками управления рисками. Советник анализирует ценовые данные на нескольких таймфреймах, используя скользящие средние, осциллятор Williams %R, индикатор средней истинного диапазона (ATR) и полосы Боллинджера для формирования торговых сигналов.

Советник поддерживает ручное управление размером лота через фиксированные значения или процентное соотношение от свободного маржи с возможностью агрессивного режима увеличения лота после убыточных сделок. Трейл-стоп реализован через отслеживание ATR с заданными минимальными и максимальными ограничениями по расстоянию. Часовые фильтры ограничивают время работы отдельных систем, а автоматическое определение смещения GMT позволяет корректно учитывать часовой пояс брокера.

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

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

НастройкаОписание
Use_FXCOMBO_Scalping Включение системы скальпинга — Переключатель активации торговой системы скальпинга
Use_FXCOMBO_Breakout Включение системы пробоя — Переключатель активации торговой системы пробоя
Use_FXCOMBO_Reversal Включение системы разворота — Переключатель активации торговой системы разворота
Use_ECN_Broker Режим ECN-брокера — Переключатель режима работы с ECN-брокером, при котором ордера отправляются без стоп-лосса и тейк-профита
CommentSys1 Комментарий системы 1 — Текстовый комментарий, добавляемый к ордерам системы скальпинга
CommentSys2 Комментарий системы 2 — Текстовый комментарий, добавляемый к ордерам системы пробоя
CommentSys3 Комментарий системы 3 — Текстовый комментарий, добавляемый к ордерам системы разворота
Magic1 Магический номер системы 1 — Уникальный магический номер для идентификации ордеров системы скальпинга
Magic2 Магический номер системы 2 — Уникальный магический номер для идентификации ордеров системы пробоя
Magic3 Магический номер системы 3 — Уникальный магический номер для идентификации ордеров системы разворота
MaxSPREAD Максимальный спред — Максимальный допустимый спред в пунктах, при превышении которого советник не открывает сделки
Slippage Проскальзывание — Допустимое проскальзывание в пунктах при открытии ордеров
AutoGMT_Offset Автоопределение GMT — Автоматическое определение смещения GMT на основе системного времени
GMT_Offset_TestMode Смещение GMT для тестов — Фиксированное смещение GMT, используемое в тестовом режиме
UseAgresiveMM Агрессивное управление рисками — Переключатель активации агрессивного режима увеличения лота после убыточных сделок
MMSys1 Группа параметров MM системы 1 — Название группы настроек управления рисками для системы скальпинга
LotsSys1 Лот системы 1 — Базовый размер лота для системы скальпинга
TradeMMSys1 Риск MM системы 1 — Начальный процент риска от свободного маржи для расчёта лота системы скальпинга
LossFactorSys1 Множитель убытков системы 1 — Множитель увеличения лота после серии убыточных сделок системы скальпинга
MMSys2 Группа параметров MM системы 2 — Название группы настроек управления рисками для системы пробоя
LotsSys2 Лот системы 2 — Базовый размер лота для системы пробоя
TradeMMSys2 Риск MM системы 2 — Начальный процент риска от свободного маржи для расчёта лота системы пробоя
LossFactorSys2 Множитель убытков системы 2 — Множитель увеличения лота после серии убыточных сделок системы пробоя
MMSys3 Группа параметров MM системы 3 — Название группы настроек управления рисками для системы разворота
LotsSys3 Лот системы 3 — Базовый размер лота для системы разворота
TradeMMSys3 Риск MM системы 3 — Начальный процент риска от свободного маржи для расчёта лота системы разворота
LossFactorSys3 Множитель убытков системы 3 — Множитель увеличения лота после серии убыточных сделок системы разворота
CommonMM Группа общих параметров MM — Название группы общих настроек управления рисками
MMMax Максимум MM — Максимальный размер лота в процентах от свободного маржи
MaximalLots Максимальный лот — Абсолютный максимальный допустимый размер лота
Scalping Группа параметров скальпинга — Название группы настроек системы скальпинга
StopLoss Стоп-лосс скальпинг — Стоп-лосс в пунктах для системы скальпинга
TakeProfit Тейк-профит скальпинг — Тейк-профит в пунктах для системы скальпинга
TREND_STR Порог тренда скальпинг — Пороговое отклонение цены от скользящей средней для подтверждения тренда в системе скальпинга
OSC_open Уровень осциллятора открытия — Значение осциллятора Williams %R для сигнала на открытие сделки в системе скальпинга
OSC_close Уровень осциллятора закрытия — Значение осциллятора Williams %R для сигнала на закрытие сделки в системе скальпинга
Breakout Группа параметров пробоя — Название группы настроек системы пробоя
TakeProfit_II Тейк-профит пробой — Тейк-профит в пунктах для системы пробоя
StopLoss_II Стоп-лосс пробой — Стоп-лосс в пунктах для системы пробоя
MaxPipsTrailing2 Макс. трейл-стоп пробой — Максимальное расстояние трейл-стопа в пунктах для системы пробоя
MinPipsTrailing2 Мин. трейл-стоп пробой — Минимальное расстояние трейл-стопа в пунктах для системы пробоя
Break Порог закрытия пробой — Пороговое значение для закрытия сделки в системе пробоя
ATRTrailingFactor2 Множитель ATR трейла пробой — Множитель ATR для расчёта трейл-стопа системы пробоя
Reversal Группа параметров разворота — Название группы настроек системы разворота
BegHourSys_III Начальный час разворота — Начальный час активности системы разворота
EndHourSys_III Конечный час разворота — Конечный час активности системы разворота
TakeProfit_III Тейк-профит разворот — Тейк-профит в пунктах для системы разворота
StopLoss_III Стоп-лосс разворот — Стоп-лосс в пунктах для системы разворота
MaxPipsTrailing3 Макс. трейл-стоп разворот — Максимальное расстояние трейл-стопа в пунктах для системы разворота
MinPipsTrailing3 Мин. трейл-стоп разворот — Минимальное расстояние трейл-стопа в пунктах для системы разворота
Получить полный код

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

#import "Kernel32.dll"
   void GetSystemTime(int& a0[]);
#import

int gi_76 = 2010;
int gi_80 = 11;
int gi_84 = 1;
extern bool Use_FXCOMBO_Scalping = TRUE;
extern bool Use_FXCOMBO_Breakout = TRUE;
extern bool Use_FXCOMBO_Reversal = TRUE;
extern bool Use_ECN_Broker = FALSE;
extern string CommentSys1 = "==== 1 ====";
extern string CommentSys2 = "==== 2 ====";
extern string CommentSys3 = "==== 3 ====";
extern int Magic1 = 111;
extern int Magic2 = 222;
extern int Magic3 = 333;
extern double MaxSPREAD = 4.0;
extern int Slippage = 2;
extern bool AutoGMT_Offset = TRUE;
extern int GMT_Offset_TestMode = 2;
extern bool UseAgresiveMM = FALSE;
extern string MMSys1 = "==== FXCOMBO Scalping MM Parameters ====";
extern double LotsSys1 = 0.1;
extern double TradeMMSys1 = 0.0;
extern double LossFactorSys1 = 2.0;
int gi_196 = 0;
int gi_200 = 2;
int gi_204 = 0;
extern string MMSys2 = "==== FXCOMBO Breakout MM Parameters ====";
extern double LotsSys2 = 0.1;
extern double TradeMMSys2 = 0.0;
extern double LossFactorSys2 = 2.0;
int gi_240 = 0;
int gi_244 = 2;
int gi_248 = 0;
extern string MMSys3 = "==== FXCOMBO Reversal MM Parameters ====";
extern double LotsSys3 = 0.1;
extern double TradeMMSys3 = 0.0;
extern double LossFactorSys3 = 2.0;
int gi_284 = 0;
int gi_288 = 2;
int gi_292 = 0;
extern string CommonMM = "==== Main MM Parameters ====";
extern double MMMax = 20.0;
extern double MaximalLots = 50.0;
extern string Scalping = "==== FXCOMBO Scalping System Parameters ====";
extern int StopLoss = 300;
extern int TakeProfit = 21;
int g_period_336 = 60;
extern int TREND_STR = 20;
int g_period_344 = 18;
extern int OSC_open = 10;
extern int OSC_close = 13;
int gi_356 = -5;
int gi_360 = 21;
int gi_unused_364 = 21;
int gi_368 = 6;
extern string Breakout = "==== FXCOMBO Breakout System Parameters ====";
extern int TakeProfit_II = 500;
extern int StopLoss_II = 30;
extern int MaxPipsTrailing2 = 180;
extern int MinPipsTrailing2 = 10;
extern int Break = 13;
int g_period_400 = 1;
int g_period_404 = 19;
double gd_408 = 1.4;
extern double ATRTrailingFactor2 = 4.7;
int gi_424 = 300;
int gi_428 = 270;
int gi_432 = 20;
int gi_436 = 0;
int gi_440 = 8;
int gi_444 = 7;
int gi_448 = 18;
int gi_452 = 17;
int gi_456 = 13;
int gi_460 = 14;
int gi_464 = 6;
int gi_468 = 9;
int gi_472 = 2;
int gi_476 = 3;
extern string Reversal = "==== FXCOMBO Reversal System Parameters ====";
extern int BegHourSys_III = 22;
extern int EndHourSys_III = 0;
extern double TakeProfit_III = 160.0;
extern int StopLoss_III = 70;
int gi_508 = 300;
extern int MaxPipsTrailing3 = 60;
extern int MinPipsTrailing3 = 20;
int g_period_520 = 60;
double gd_524 = 13.0;
int g_period_532 = 26;
int gi_536 = -3;
int gi_540 = 30;
bool gi_544 = TRUE;
string gs_548 = "";
double g_minlot_556 = 0.0;
double g_maxlot_564 = 0.0;
int g_leverage_572 = 0;
int g_lotsize_576 = 0;
int g_stoplevel_580 = 0;
int g_datetime_584 = 0;
int g_datetime_588 = 0;

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

int deinit() {
   Comment("");
   return (0);
}

int start() {
      // код доступен только после оплаты
   }
   double l_price_0;
   double l_price_8;
   double l_price_16;
   color l_color_24;
   bool l_bool_32;
   bool l_bool_36;
   double ld_40;
   int li_48;
   int l_ticket_296;
   int l_ticket_300;
   int l_ticket_304;
   double l_price_312;
   double l_price_320;
   double l_price_328;
   double l_price_336;
   double ld_344;
   double l_price_352;
   double l_price_360;
   double l_price_368;
   double ld_376;
   double l_price_384;
   double l_lots_392;
   string ls_400;
   double l_lots_408;
   double l_lots_416;
   if (gi_544) {
      gi_544 = FALSE;
      g_minlot_556 = MarketInfo(Symbol(), MODE_MINLOT);
      g_maxlot_564 = MarketInfo(Symbol(), MODE_MAXLOT);
      g_leverage_572 = AccountLeverage();
      g_lotsize_576 = MarketInfo(Symbol(), MODE_LOTSIZE);
      g_stoplevel_580 = MarketInfo(Symbol(), MODE_STOPLEVEL);
   }
 /*  if (Year() > gi_76 || (Month() > gi_80 && Year() == gi_76) || (Day() > gi_84 && Month() >= gi_80 && Year() == gi_76)) {
      Comment("\n This version is out of date. Visit www.fxautomater.com and get your updated version!");
      Alert("This version is out of date. Visit www.fxautomater.com and get your updated version!");
      Sleep(30000);
      return (0);
   } */
   if (!IsTesting() && IsDllsAllowed() == FALSE) {
      Comment("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Print("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Alert("Warning: Set Parameter **AllowDLL Imports** ON in menu Tools -> Options -> ExpertAdvisors.");
      Sleep(30000);
      return (0);
   }
   if (Digits <= 3) ld_40 = 0.01;
   else ld_40 = 0.0001;
   if (Ask - Bid > MaxSPREAD * ld_40) {
      Comment("\n SPREAD IS TOO HIGH ...");
      Print("SPREAD IS TOO HIGH ...");
      return (0);
   }
   if (!IsTesting() && AutoGMT_Offset == TRUE) li_48 = GMTOffset();
   else li_48 = GMT_Offset_TestMode;
   string ls_52 = "FX COMBO is running on your account.";
   string ls_60 = "FX COMBO is set up for time zone GMT " + li_48;
   string ls_68 = "Spread= " + DoubleToStr((Ask - Bid) / ld_40, 1) + " pips [in norm]";
   string ls_76 = "Account Balance= " + DoubleToStr(AccountBalance(), 2);
   string ls_84 = " ";
   Comment("\n\n\n\n   " + ls_52 + " \n   " + ls_60 + " \n   " + ls_68 + " \n   " + ls_76 + " \n   " + ls_84 + " " + gs_548);
   ObjectCreate("klc", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("klc", "   FOREX COMBO SYSTEM ", 9, "System", Red);
   ObjectSet("klc", OBJPROP_CORNER, 0);
   ObjectSet("klc", OBJPROP_XDISTANCE, 0);
   ObjectSet("klc", OBJPROP_YDISTANCE, 22);
   ObjectCreate("klc2", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("klc2", "   by FXautomater ", 9, "System", Gray);
   ObjectSet("klc2", OBJPROP_CORNER, 0);
   ObjectSet("klc2", OBJPROP_XDISTANCE, 165);
   ObjectSet("klc2", OBJPROP_YDISTANCE, 22);
   ObjectCreate("klc3", OBJ_LABEL, 0, 0, 0);
   ObjectSetText("klc3", "   Copyright ? www.fxautomater.com ", 9, "System", Gray);
   ObjectSet("klc3", OBJPROP_CORNER, 0);
   ObjectSet("klc3", OBJPROP_XDISTANCE, 0);
   ObjectSet("klc3", OBJPROP_YDISTANCE, 38);
   if (gi_544) {
      gi_544 = FALSE;
      g_minlot_556 = MarketInfo(Symbol(), MODE_MINLOT);
      g_maxlot_564 = MarketInfo(Symbol(), MODE_MAXLOT);
      g_leverage_572 = AccountLeverage();
      g_lotsize_576 = MarketInfo(Symbol(), MODE_LOTSIZE);
      g_stoplevel_580 = MarketInfo(Symbol(), MODE_STOPLEVEL);
   }
   if (UseAgresiveMM != TRUE) {
      LossFactorSys1 = 1;
      LossFactorSys2 = 1;
      LossFactorSys3 = 1;
   }
   HideTestIndicators(FALSE);
   double l_iclose_92 = iClose(NULL, PERIOD_M15, 1);
   double l_ima_100 = iMA(NULL, PERIOD_M15, g_period_336, 0, MODE_SMMA, PRICE_CLOSE, 1);
   double l_iwpr_108 = iWPR(NULL, PERIOD_M15, g_period_344, 1);
   double l_iatr_116 = iATR(NULL, PERIOD_H1, g_period_404, 1);
   double l_ima_124 = iMA(NULL, PERIOD_H1, g_period_400, 0, MODE_EMA, PRICE_CLOSE, 1);
   double ld_132 = l_ima_124 + l_iatr_116 * gd_408;
   double ld_140 = l_ima_124 - l_iatr_116 * gd_408;
   double l_iclose_148 = iClose(NULL, PERIOD_M5, 1);
   double l_iatr_156 = iATR(NULL, PERIOD_M5, g_period_520, 1);
   double l_ihigh_164 = iHigh(NULL, PERIOD_H1, 1);
   double l_ilow_172 = iLow(NULL, PERIOD_H1, 1);
   double l_ibands_180 = iBands(NULL, PERIOD_H1, g_period_532, 2, 0, PRICE_CLOSE, MODE_UPPER, 1);
   double l_ibands_188 = iBands(NULL, PERIOD_H1, g_period_532, 2, 0, PRICE_CLOSE, MODE_LOWER, 1);
   HideTestIndicators(FALSE);
   if (TakeProfit < g_stoplevel_580 * ld_40) TakeProfit = g_stoplevel_580 * ld_40;
   if (TakeProfit_II < g_stoplevel_580 * ld_40) TakeProfit_II = g_stoplevel_580 * ld_40;
   if (StopLoss < g_stoplevel_580 * ld_40) StopLoss = g_stoplevel_580 * ld_40;
   if (StopLoss_II < g_stoplevel_580 * ld_40) StopLoss_II = g_stoplevel_580 * ld_40;
   if (TakeProfit_III < g_stoplevel_580 * ld_40) TakeProfit_III = g_stoplevel_580 * ld_40;
   if (StopLoss_III < g_stoplevel_580 * ld_40) StopLoss_III = g_stoplevel_580 * ld_40;
   int li_196 = gi_360 + li_48;
   int li_200 = gi_360 + li_48;
   int li_204 = BegHourSys_III + li_48;
   int li_208 = EndHourSys_III + li_48;
   if (li_196 > 23) li_196 -= 24;
   if (li_196 < 0) li_196 += 24;
   if (li_204 > 23) li_204 -= 24;
   if (li_204 < 0) li_204 += 24;
   if (li_200 > 23) li_200 -= 24;
   if (li_200 < 0) li_200 += 24;
   if (li_208 > 23) li_208 -= 24;
   if (li_208 < 0) li_208 += 24;
   int li_212 = gi_436 + li_48;
   int li_216 = gi_440 + li_48;
   int li_220 = gi_444 + li_48;
   int li_224 = gi_448 + li_48;
   int li_228 = gi_452 + li_48;
   int li_232 = gi_456 + li_48;
   int li_236 = gi_460 + li_48;
   int li_240 = gi_464 + li_48;
   int li_244 = gi_468 + li_48;
   int li_248 = gi_472 + li_48;
   int li_252 = gi_476 + li_48;
   if (li_212 > 23) li_212 -= 24;
   if (li_212 < 0) li_212 += 24;
   if (li_216 > 23) li_216 -= 24;
   if (li_216 < 0) li_216 += 24;
   if (li_220 > 23) li_220 -= 24;
   if (li_220 < 0) li_220 += 24;
   if (li_224 > 23) li_224 -= 24;
   if (li_224 < 0) li_224 += 24;
   if (li_228 > 23) li_228 -= 24;
   if (li_228 < 0) li_228 += 24;
   if (li_232 > 23) li_232 -= 24;
   if (li_232 < 0) li_232 += 24;
   if (li_236 > 23) li_236 -= 24;
   if (li_236 < 0) li_236 += 24;
   if (li_240 > 23) li_240 -= 24;
   if (li_240 < 0) li_240 += 24;
   if (li_244 > 23) li_244 -= 24;
   if (li_244 < 0) li_244 += 24;
   if (li_248 > 23) li_248 -= 24;
   if (li_248 < 0) li_248 += 24;
   if (li_252 > 23) li_252 -= 24;
   if (li_252 < 0) li_252 += 24;
   Slippage = Slippage * ld_40;
   int l_count_256 = 0;
   int l_count_260 = 0;
   int l_count_264 = 0;
   int l_count_268 = 0;
   int l_count_272 = 0;
   int l_count_276 = 0;
   int l_datetime_280 = g_datetime_584;
   int li_284 = g_datetime_584 + gi_424;
   int l_datetime_288 = g_datetime_588;
   int li_292 = g_datetime_588 + gi_508;
   for (int l_pos_308 = OrdersTotal() - 1; l_pos_308 >= 0; l_pos_308--) {
      if (!OrderSelect(l_pos_308, SELECT_BY_POS, MODE_TRADES)) Print("Error in OrderSelect! Position:", l_pos_308);
      else {
         if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
            if (OrderMagicNumber() == Magic1) {
               if (OrderType() == OP_BUY) {
                  if (OrderStopLoss() == 0.0) {
                     l_price_312 = NormalizeDouble(Ask - StopLoss * ld_40, Digits);
                     l_price_320 = NormalizeDouble(Ask + TakeProfit * ld_40, Digits);
                     if (CheckStop(OrderType(), l_price_312) && CheckTarget(OrderType(), l_price_320)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_312, l_price_320, 0, Green);
                  }
                  if (l_iwpr_108 > (-OSC_close) && Bid > l_iclose_92 + gi_356 * ld_40) {
                     RefreshRates();
                     OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Violet);
                  } else l_count_256++;
               } else {
                  if (OrderStopLoss() == 0.0) {
                     l_price_312 = NormalizeDouble(Bid + StopLoss * ld_40, Digits);
                     l_price_320 = NormalizeDouble(Bid - TakeProfit * ld_40, Digits);
                     if (CheckStop(OrderType(), l_price_312) && CheckTarget(OrderType(), l_price_320)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_312, l_price_320, 0, Green);
                  }
                  if (l_iwpr_108 < OSC_close + (-100) && Bid < l_iclose_92 - gi_356 * ld_40) {
                     RefreshRates();
                     OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Violet);
                  } else l_count_260++;
               }
            }
            if (OrderMagicNumber() == Magic2) {
               if (OrderType() == OP_BUY) {
                  if (OrderStopLoss() == 0.0) {
                     l_price_328 = NormalizeDouble(Ask - StopLoss_II * ld_40, Digits);
                     l_price_336 = NormalizeDouble(Ask + TakeProfit_II * ld_40, Digits);
                     if (CheckStop(OrderType(), l_price_328) && CheckTarget(OrderType(), l_price_336)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_328, l_price_336, 0, Green);
                  }
                  if (l_iclose_148 <= ld_140 - Break * ld_40) {
                     RefreshRates();
                     OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid, Digits), Slippage, Violet);
                  } else l_count_264++;
                  if (TimeCurrent() >= li_284) {
                     ld_344 = l_iatr_116 * ATRTrailingFactor2;
                     if (ld_344 > MaxPipsTrailing2 * ld_40) ld_344 = MaxPipsTrailing2 * ld_40;
                     if (ld_344 < MinPipsTrailing2 * ld_40) ld_344 = MinPipsTrailing2 * ld_40;
                     if (Bid - OrderOpenPrice() > gi_428 * ld_40) ld_344 = gi_432 * ld_40;
                     l_price_352 = NormalizeDouble(Bid - ld_344, Digits);
                     if (Bid - OrderOpenPrice() > ld_344) {
                        if (OrderStopLoss() < l_price_352 && CheckStop(OrderType(), l_price_352)) {
                           l_bool_32 = OrderModify(OrderTicket(), OrderOpenPrice(), l_price_352, OrderTakeProfit(), 0, Blue);
                           if (l_bool_32) {
                              l_datetime_280 = TimeCurrent();
                              g_datetime_584 = l_datetime_280;
                           }
                        }
                     }
                  }
               } else {
                  if (OrderStopLoss() == 0.0) {
                     l_price_328 = NormalizeDouble(Bid + StopLoss_II * ld_40, Digits);
                     l_price_336 = NormalizeDouble(Bid - TakeProfit_II * ld_40, Digits);
                     if (CheckStop(OrderType(), l_price_328) && CheckTarget(OrderType(), l_price_336)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_328, l_price_336, 0, Green);
                  }
                  if (l_iclose_148 >= ld_132 + Break * ld_40) {
                     RefreshRates();
                     OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask, Digits), Slippage, Violet);
                  } else l_count_268++;
                  if (TimeCurrent() >= li_284) {
                     ld_344 = l_iatr_116 * ATRTrailingFactor2;
                     if (ld_344 > MaxPipsTrailing2 * ld_40) ld_344 = MaxPipsTrailing2 * ld_40;
                     if (ld_344 < MinPipsTrailing2 * ld_40) ld_344 = MinPipsTrailing2 * ld_40;
                     if (OrderOpenPrice() - Ask > gi_428 * ld_40) ld_344 = gi_432 * ld_40;
                     l_price_352 = NormalizeDouble(Ask + ld_344, Digits);
                     if (OrderOpenPrice() - Ask > ld_344) {
                        if (OrderStopLoss() > l_price_352 && CheckStop(OrderType(), l_price_352)) {
                           l_bool_32 = OrderModify(OrderTicket(), OrderOpenPrice(), l_price_352, OrderTakeProfit(), 0, Red);
                           if (l_bool_32) {
                              l_datetime_280 = TimeCurrent();
                              g_datetime_584 = l_datetime_280;
                           }
                        }
                     }
                  }
               }
            }
            if (OrderMagicNumber() == Magic3) {
               if (OrderType() == OP_BUY) {
                  if (OrderStopLoss() == 0.0) {
                     l_price_360 = NormalizeDouble(Ask - StopLoss_III * ld_40, Digits);
                     l_price_368 = NormalizeDouble(Ask + TakeProfit_III * ld_40, Digits);
                     if (CheckStop(OrderType(), l_price_360) && CheckTarget(OrderType(), l_price_368)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_360, l_price_368, 0, Green);
                  }
                  if ((li_204 <= li_208 && TimeHour(TimeCurrent()) >= li_204 && TimeHour(TimeCurrent()) <= li_208) || (li_204 > li_208 && TimeHour(TimeCu

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

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

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

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

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

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

Стоимость полного кода
2 290,60₽ ≈ $28.00