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

Ilan-Trio V1.47

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

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

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

О программе

Ilan-Trio V1.47 — торговый советник для MetaTrader 4, содержащий три независимых торговых модуля (Ilan_Hilo, Ilan 1.5 и Ilan 1.6), каждый из которых работает с собственными параметрами и магическими числами. Модули открывают отложенные ордера на покупку и продажу, используя индикатор RSI и анализ закрытия цен на различных таймфреймах. Советник поддерживает прогрессивное увеличение лотов, режимы Turbo и MarioTurbo для управления шагом входа, а также отображение торговой информации на экране.

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

НастройкаОписание
t1 Общие настройки — Заголовок группы общих настроек.
DisplayOnScreenText Отображение на экране — Включает или отключает отображение торговой информации (баланс, эквити, количество открытых позиций и т.д.) на экране терминала.
Initial lot (Lots) Начальный лот — Начальный размер лота для торговых операций.
Exponent at which next trade will multiply (LotExponent) Экспонента лота — Степень, в которой увеличивается размер лота при открытии каждого следующего ордера в рамках модуля.
2 - microlot 0.01, 1 - mini lot 0.1, 0 - standard lot 1.0 (lotdecimal) Точность лота — Точность лота: 2 — микролот 0.01, 1 — минилот 0.1, 0 — стандартный лот 1.0.
At what distance should next trade be taken (PipStep) Шаг в пипсах — Расстояние в пунктах, на котором открывается следующий ордер.
First 3 trades will be closer together (Turbo) Turbo-режим — При активации первые три ордера открываются с уменьшенным шагом.
Mario's adaptive turbo, fast in begining slower in the end (MarioTurbo) Адаптивный Turbo — Активирует адаптивный режим MarioTurbo, при котором шаг между ордерами постепенно увеличивается.
MarioTurboFactor Множитель MarioTurbo — Числовой множитель, определяющий скорость нарастания шага ордеров в режиме MarioTurbo.
Start new cycles (running will continue to run) (NewCycle) Новый цикл — Разрешает запуск новых торговых циклов в основном модуле (работающие позиции продолжают удерживаться).
Start new cycles (running will continue to run) (NewCycle15) Новый цикл 1.5 — Разрешает запуск новых торговых циклов для модуля Ilan 1.5.
Start new cycles (running will continue to run) (NewCycle16) Новый цикл 1.6 — Разрешает запуск новых торговых циклов для модуля Ilan 1.6.
Start new cycles (running will continue to run) (NewCycleHiLo) Новый цикл HiLo — Разрешает запуск новых торговых циклов для модуля Ilan_Hilo.
1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9=MN1, 0=Current chart (PeriodRSI) Период RSI — Таймфрейм для расчёта индикатора RSI (1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9=MN1, 0=текущий график).
MM - money management (MM) Управление капиталом — Включает режим управления капиталом (money management), при котором лот автоматически рассчитывается на основе баланса счёта.
points to take profit (average price plus/minus this value) (TakeProfit) Тейк-профит — Расстояние в пунктах до тейк-профита от средней цены открытых позиций.
t3 Настройки Hilo — Заголовок группы настроек модуля Ilan_Hilo.
максимально количество одновременно открытых ордеров (MaxTrades_Hilo) максимально количество одновременно открытых ордеров — Максимальное количество одновременно открытых ордеров для модуля Ilan_Hilo.
Эти параметра работают!!! (Stoploss_Hilo) Эти параметра работают!!! — Уровень стоп-лосса для модуля Ilan_Hilo.
магик (MagicNumber_Hilo) магик — Магическое число для идентификации ордеров модуля Ilan_Hilo.
t4 Настройки 1.5 — Заголовок группы настроек модуля Ilan 1.5.
MaxTrades_15 Макс. ордеров 1.5 — Максимальное количество одновременно открытых ордеров для модуля Ilan 1.5.
When should 1.5 activate. Default is every 60 minutes, unless trades are already running (OpenNewTF_15) Интервал активации 1.5 — Интервал в минутах, через который модуль Ilan 1.5 проверяет возможность открытия новых позиций по закрытию таймфрейма.
What time fram to use for comparing close value. 1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9 (TimeFrameCloseValu Таймфрейм сравнения закрытия — Таймфрейм для сравнения значений закрытия в модуле Ilan 1.5 (1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9=MN1, 0=текущий график).
Эти параметры не работают!!! (Stoploss_15) Эти параметры не работают!!! — Уровень стоп-лосса для модуля Ilan 1.5 (по исходному коду данный параметр фактически не применяется).
g_magic_176_15 Магическое число 1.5 — Магическое число для идентификации ордеров модуля Ilan 1.5.
t5 Настройки 1.6 — Заголовок группы настроек модуля Ilan 1.6.
MaxTrades_16 Макс. ордеров 1.6 — Максимальное количество одновременно открытых ордеров для модуля Ilan 1.6.
Эти три параметра не работают!!! (Stoploss_16) Эти три параметра не работают!!! — Уровень стоп-лосса для модуля Ilan 1.6 (по исходному коду данный параметр фактически не применяется).
g_magic_176_16 Магическое число 1.6 — Магическое число для идентификации ордеров модуля Ilan 1.6.
Получить полный код

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

extern string t1 = "General Settings";
extern bool DisplayOnScreenText = true;
extern double Lots = 0.10;          // Initial lot
extern double LotExponent = 1.85;   // Exponent at which next trade will multiply
extern int    lotdecimal = 2;       // 2 - microlot 0.01, 1 - mini lot 0.1, 0 - standard lot 1.0
extern double PipStep = 50.0;       // At what distance should next trade be taken
extern bool   Turbo = false;         // First 3 trades will be closer together
extern bool   MarioTurbo = true;    // Mario's adaptive turbo, fast in begining slower in the end
extern int    MarioTurboFactor = 5; // 
extern bool   NewCycle = true;      // Start new cycles (running will continue to run)
extern bool   NewCycle15 = true;      // Start new cycles (running will continue to run)
extern bool   NewCycle16 = true;      // Start new cycles (running will continue to run)
extern bool   NewCycleHiLo = true;      // Start new cycles (running will continue to run)
extern int    PeriodRSI = 5;        // 1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9=MN1, 0=Current chart
int PerRSI;                         // Период RSI
double MaxLots = 10;                // Max allowed lot as start
extern bool   MM =FALSE;            // MM - money management
extern double TakeProfit = 100.0;    // points to take profit (average price plus/minus this value)
bool UseEquityStop = FALSE;         // Use equity stop
double TotalEquityRisk = 20.0;      // Max allowed equity risk (trades will close at this level)
bool UseTrailingStop = FALSE;       // Use traling stop
double TrailStart = 100.0;           // Trailing start
double TrailStop = 10.0;             //Trailing stop
double slip = 5.0;                  // Slippage

extern string t3 = "Settings EA Ilan_Hilo";
double Lots_Hilo;                       // задание всех лотов через 1 переменную
int OnScreenDelay = 0;
double LotExponent_Hilo;       
int lotdecimal_Hilo, ord_Hilo;            
double TakeProfit_Hilo;                 // тейк профит
extern int MaxTrades_Hilo = 10;         // максимально количество одновременно открытых ордеров
bool UseEquityStop_Hilo;                // использовать риск в процентах
double TotalEquityRisk_Hilo;            // риск в процентах от депозита

bool UseTimeOut_Hilo = FALSE;           // использовать анулирование ордеров по времени
double MaxTradeOpenHours_Hilo = 48.0;   // через колько часов анулировать висячие ордера

bool UseTrailingStop_Hilo;              // использовать трейлинг стоп
extern double Stoploss_Hilo = 500.0;           // Эти параметра работают!!!
double TrailStart_Hilo;
double TrailStop_Hilo;

double PipStep_Hilo;                    // шаг колена- был 30
double slip_Hilo;                       // проскальзывание
extern int MagicNumber_Hilo = 11111;    // магик

double PriceTarget_Hilo, StartEquity_Hilo, BuyTarget_Hilo, SellTarget_Hilo, Balans, Sredstva ;
double AveragePrice_Hilo, SellLimit_Hilo, BuyLimit_Hilo ;
double LastBuyPrice_Hilo, LastSellPrice_Hilo, Spread_Hilo;
bool flag_Hilo;
string EAName_Hilo = "Ilan_HiLo_RSI";
int timeprev_Hilo = 0, expiration_Hilo;
int NumOfTrades_Hilo = 0;
double iLots_Hilo;
int cnt_Hilo = 0, total_Hilo;
double Stopper_Hilo = 0.0;
bool TradeNow_Hilo = FALSE, LongTrade_Hilo = FALSE, ShortTrade_Hilo = FALSE;
int ticket_Hilo;
bool NewOrdersPlaced_Hilo = FALSE;
double AccountEquityHighAmt_Hilo, PrevEquity_Hilo;

extern string t4 = "Settings EA Ilan 1.5";
double LotExponent_15;
double Lots_15;
int lotdecimal_15, ord_15;
double TakeProfit_15;
bool UseEquityStop_15;                   // использовать риск в процентах
double TotalEquityRisk_15;               // риск в процентах от депозита
extern int MaxTrades_15 = 10;
extern int OpenNewTF_15 = 60;            //When should 1.5 activate. Default is every 60 minutes, unless trades are already running
extern int TimeFrameCloseValue = 0; //What time fram to use for comparing close value. 1=M1, 2=M5, 3=M15, 4=M30, 5=H1, 6=H4, 7=D1, 8=W1, 9=MN1, 0=Current chart
int gi_unused_88_15;

bool UseTrailingStop_15;                 // использовать трейлинг стоп
extern double Stoploss_15 = 500.0;              // Эти параметры  не работают!!!
double TrailStart_15;
double TrailStop_15;

bool UseTimeOut_15 = FALSE;              // использовать анулирование ордеров по времени
double MaxTradeOpenHours_15 = 48.0;      // через колько часов анулировать висячие ордера

double PipStep_15; //30
double slip_15;
extern int g_magic_176_15 = 12324;

double g_price_180_15;
double gd_188_15;
double gd_unused_196_15;
double gd_unused_204_15;
double g_price_212_15;
double g_bid_220_15;
double g_ask_228_15;
double gd_236_15;
double gd_244_15;
double Spread_15;
bool gi_268_15;
string gs_ilan_272_15 = "Ilan 1.5";
int gi_280_15 = 0;
int gi_284_15;
int gi_288_15 = 0;
double gd_292_15;
int g_pos_300_15 = 0;
int gi_304_15;
double gd_308_15 = 0.0;
bool gi_316_15 = FALSE;
bool gi_320_15 = FALSE;
bool gi_324_15 = FALSE;
int gi_328_15;
bool gi_332_15 = FALSE;
double gd_336_15;
double gd_344_15;
datetime time_15=1;

extern string t5 = "Settings EA Ilan 1.6";
double LotExponent_16;
double Lots_16;
int lotdecimal_16, ord_16;
double TakeProfit_16;
extern int MaxTrades_16 = 10;
bool UseEquityStop_16;                    // использовать риск в процентах
double TotalEquityRisk_16;                // риск в процентах от депозита
int OpenNewTF_16 = 1;

bool UseTrailingStop_16;
extern double Stoploss_16 = 500.0;               // Эти три параметра не работают!!!
double TrailStart_16;
double TrailStop_16;

bool UseTimeOut_16 = FALSE;
double MaxTradeOpenHours_16 = 48.0;

double PipStep_16;//30
double slip_16;
extern int g_magic_176_16 = 16794;

double g_price_180_16;
double gd_188_16;
double gd_unused_196_16;
double gd_unused_204_16;
double g_price_212_16;
double g_bid_220_16;
double g_ask_228_16;
double gd_236_16;
double gd_244_16;
double Spread_16;
bool gi_268_16;
string gs_ilan_272_16 = "Ilan 1.6";
int gi_280_16 = 0;
int gi_284_16;
int gi_288_16 = 0;
double gd_292_16;
int g_pos_300_16 = 0;
int gi_304_16;
double gd_308_16 = 0.0;
bool gi_316_16 = FALSE;
bool gi_320_16 = FALSE;
bool gi_324_16 = FALSE;
int gi_328_16;
bool gi_332_16 = FALSE;
double gd_336_16;
double gd_344_16;
datetime time_16=1;

/*

double gd_308;
int g_timeframe_492 = PERIOD_M1;
int g_timeframe_496 = PERIOD_M5;
int g_timeframe_500 = PERIOD_M15;
int g_timeframe_504 = PERIOD_M30;
int g_timeframe_508 = PERIOD_H1;
int g_timeframe_512 = PERIOD_H4;
int g_timeframe_516 = PERIOD_D1;

bool g_corner_528 = TRUE;
int gi_532 = 0;
int gi_536 = 10;
int g_window_540 = 0;

bool gi_552 = TRUE;
bool gi_556 = TRUE;
bool gi_560 = FALSE;
int g_color_564 = Gray;
int g_color_568 = Gray;
int g_color_572 = Gray;
int g_color_576 = DarkOrange;
int g_color_580 = DarkOrange;
int gi_584 = 65280;
int gi_588 = 17919;
int gi_592 = 65280;
int gi_596 = 17919;

int gi_608 = 65280;
int gi_612 = 255;
int gi_616 = 42495;

int g_period_628 = 8;
int g_period_632 = 17;
int g_period_636 = 9;
int g_applied_price_640 = PRICE_CLOSE;

int gi_652 = 65280;
int gi_656 = 4678655;
int gi_660 = 32768;
int gi_664 = 255;
string gs_unused_668 = "<<<< STR Indicator Settings >>>>>>>>>>>>>";
string gs_unused_676 = "<<<< RSI Settings >>>>>>>>>>>>>";
int g_period_684 = 9;
int g_applied_price_688 = PRICE_CLOSE;
string gs_unused_692 = "<<<< CCI Settings >>>>>>>>>>>>>>";
int g_period_700 = 13;
int g_applied_price_704 = PRICE_CLOSE;
string gs_unused_708 = "<<<< STOCH Settings >>>>>>>>>>>";
int g_period_716 = 5;
int g_period_720 = 3;
int g_slowing_724 = 3;
int g_ma_method_728 = MODE_EMA;
string gs_unused_732 = "<<<< STR Colors >>>>>>>>>>>>>>>>";
int gi_740 = 65280;
int gi_744 = 255;
int gi_748 = 42495;
string gs_unused_752 = "<<<< MA Settings >>>>>>>>>>>>>>";
int g_period_760 = 5;
int g_period_764 = 9;
int g_ma_method_768 = MODE_EMA;
int g_applied_price_772 = PRICE_CLOSE;
string gs_unused_776 = "<<<< MA Colors >>>>>>>>>>>>>>";
int gi_784 = 65280;
int gi_788 = 255;
bool gi_792;
bool gi_796;
string gs_800;
double gd_808;
double g_acc_number_816;
double g_str2dbl_824;
double g_str_len_832;
double gd_848;
double gd_856;
double g_period_864;
double g_period_872;
double g_period_880;
double gd_888;
double gd_896;
double gd_904;
double gd_912;
double g_shift_920;
double gd_928;
double gd_936;
double gd_960;
double gd_968;
int g_bool_976;
double gd_980;
bool g_bool_988;
int gi_992;
*/

string    txt,txt1;
string    txt2="";
string    txt3="";
color col = ForestGreen;

datetime lastcheck;
int  begin, end, max, current; 

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

int deinit() {
{
/*

   ObjectDelete("cja");
   ObjectDelete("Signalprice");
   ObjectDelete("SIG_BARS_TF1");
   ObjectDelete("SIG_BARS_TF2");
   ObjectDelete("SIG_BARS_TF3");
   ObjectDelete("SIG_BARS_TF4");
   ObjectDelete("SIG_BARS_TF5");
   ObjectDelete("SIG_BARS_TF6");
   ObjectDelete("SIG_BARS_TF7");
   ObjectDelete("SSignalMACD_TEXT");
   ObjectDelete("SSignalMACDM1");
   ObjectDelete("SSignalMACDM5");
   ObjectDelete("SSignalMACDM15");
   ObjectDelete("SSignalMACDM30");
   ObjectDelete("SSignalMACDH1");
   ObjectDelete("SSignalMACDH4");
   ObjectDelete("SSignalMACDD1");
   ObjectDelete("SSignalSTR_TEXT");
   ObjectDelete("SignalSTRM1");
   ObjectDelete("SignalSTRM5");
   ObjectDelete("SignalSTRM15");
   ObjectDelete("SignalSTRM30");
   ObjectDelete("SignalSTRH1");
   ObjectDelete("SignalSTRH4");
   ObjectDelete("SignalSTRD1");
   ObjectDelete("SignalEMA_TEXT");
   ObjectDelete("SignalEMAM1");
   ObjectDelete("SignalEMAM5");
   ObjectDelete("SignalEMAM15");
   ObjectDelete("SignalEMAM30");
   ObjectDelete("SignalEMAH1");
   ObjectDelete("SignalEMAH4");
   ObjectDelete("SignalEMAD1");
   ObjectDelete("SIG_DETAIL_1");
   ObjectDelete("SIG_DETAIL_2");
   ObjectDelete("SIG_DETAIL_3");
   ObjectDelete("SIG_DETAIL_4");
   ObjectDelete("SIG_DETAIL_5");
   ObjectDelete("SIG_DETAIL_6");
   ObjectDelete("SIG_DETAIL_7");
   ObjectDelete("SIG_DETAIL_8");

*/

 ObjectDelete("Lable");
 ObjectDelete("Lable1");
 ObjectDelete("Lable2");
 ObjectDelete("Lable3"); 
 ObjectDelete("pipHiLo"); 
 ObjectDelete("pip15"); 
 ObjectDelete("pip16"); 

  }
   return (0);
}

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

 int    counted_bars=IndicatorCounted();

 if (Lots > MaxLots) Lots = MaxLots; //ограничение лотов
 if (DisplayOnScreenText) {
    if (OnScreenDelay >= 100) {
       {
       Comment("" 
            + "\n" 

            + "Ilan-Trio V 1.47 mod 4" 
            + "\n" 
            + "________________________________"  
            + "\n" 

            + "Broker:         " + AccountCompany()
            + "\n"

            + "LOOP Speed  " + max
            + "\n"      

            + "________________________________"  
            + "\n" 
            + "Owner:             " + AccountName() 
            + "\n" 
            + "Acc number        " + AccountNumber()
            + "\n" 
            + "Acc currency  :   " + AccountCurrency()   
            + "\n"         
            + "_______________________________"
            + "\n"
            + "Open trades Ilan_Hilo: " + CountTrades_Hilo()
            + "\n"
            + "Open trades Ilan_1.5 : " + CountTrades_15()
            + "\n"
            + "Open trades Ilan_1.6 : " + CountTrades_16()
            + "\n"
            + "Total trades         : " + OrdersTotal()
            + "\n"
            + "Total lots           : " + DoubleToStr(CountTotalLots(), 2)
            + "\n"
            + "_______________________________"
            + "\n"           
            + "Balance              : " + DoubleToStr(AccountBalance(), 2)          
            + "\n" 
            + "Equity               : " + DoubleToStr(AccountEquity(), 2)
            + "\n"      
            + "Margin:            " + DoubleToStr(AccountMargin(), 2)
            + "\n" 
            + "Profit:            " + DoubleToStr(AccountProfit(), 2)
            + "\n"  
            + "_______________________________");
      }
        Balans = NormalizeDouble( AccountBalance(),2);
     Sredstva = NormalizeDouble(AccountEquity(),2);  
       if (Sredstva >= Balans/6*5) col = DodgerBlue; 
       if (Sredstva >= Balans/6*4 && Sredstva < Balans/6*5)col = DeepSkyBlue;
       if (Sredstva >= Balans/6*3 && Sredstva < Balans/6*4)col = Gold;
       if (Sredstva >= Balans/6*2 && Sredstva < Balans/6*3)col = OrangeRed;
       if (Sredstva >= Balans/6   && Sredstva < Balans/6*2)col = Crimson;
       if (Sredstva <  Balans/5                           )col = Red;

      ObjectDelete("Lable2");
      ObjectCreate("Lable2",OBJ_LABEL,0,0,1.0);
      ObjectSet("Lable2", OBJPROP_CORNER, 3);
      ObjectSet("Lable2", OBJPROP_XDISTANCE, 153);
      ObjectSet("Lable2", OBJPROP_YDISTANCE, 31);
      txt2=(DoubleToStr(AccountBalance(), 2));
      ObjectSetText("Lable2","Balance     "+txt2+"",16,"Times New Roman",DodgerBlue);

      ObjectDelete("Lable3");
      ObjectCreate("Lable3",OBJ_LABEL,0,0,1.0);
      ObjectSet("Lable3", OBJPROP_CORNER, 3);
      ObjectSet("Lable3", OBJPROP_XDISTANCE, 153);
      ObjectSet("Lable3", OBJPROP_YDISTANCE, 11);
      txt3=(DoubleToStr(AccountEquity(), 2));
      ObjectSetText("Lable3","Equity     "+txt3+"",16,"Times New Roman",col);

      ObjectDelete("pipHiLo");
      ObjectCreate("pipHiLo",OBJ_LABEL,0,0,1.0);
      ObjectSet("pipHiLo", OBJPROP_CORNER, 1);
      ObjectSet("pipHiLo", OBJPROP_XDISTANCE, 20);
      ObjectSet("pipHiLo", OBJPROP_YDISTANCE, 20);
      txt3=(DoubleToStr(AccountEquity(), 2));
      ObjectSetText("pipHiLo","PipStepHilo "+PipStep_Hilo+"",12,"Times New Roman",Gold);

      ObjectDelete("pip15");
      ObjectCreate("pip15",OBJ_LABEL,0,0,1.0);
      ObjectSet("pip15", OBJPROP_CORNER, 1);
      ObjectSet("pip15", OBJPROP_XDISTANCE, 20);
      ObjectSet("pip15", OBJPROP_YDISTANCE, 40);
      txt3=(DoubleToStr(AccountEquity(), 2));
      ObjectSetText("pip15","PipStep15    "+PipStep_15+"",12,"Times New Roman",Gold);

      ObjectDelete("pip16");
      ObjectCreate("pip16",OBJ_LABEL,0,0,1.0);
      ObjectSet("pip16", OBJPROP_CORNER, 1);
      ObjectSet("pip16", OBJPROP_XDISTANCE, 20);
      ObjectSet("pip16", OBJPROP_YDISTANCE, 60);
      txt3=(DoubleToStr(AccountEquity(), 27));
      ObjectSetText("pip16","PipStep16   "+PipStep_16+"",12,"Times New Roman",Gold);

      OnScreenDelay = 0;
      } else {
         OnScreenDelay += 1;
      }
   }

   if (PeriodRSI == 1) PerRSI =PERIOD_M1; 
   if (PeriodRSI == 2) PerRSI =PERIOD_M5; 
   if (PeriodRSI == 3) PerRSI =PERIOD_M15; 
   if (PeriodRSI == 4) PerRSI =PERIOD_M30; 
   if (PeriodRSI == 5) PerRSI =PERIOD_H1; 
   if (PeriodRSI == 6) PerRSI =PERIOD_H4; 
   if (PeriodRSI == 7) PerRSI =PERIOD_D1; 
   if (PeriodRSI == 8) PerRSI =PERIOD_W1; 
   if (PeriodRSI == 9) PerRSI =PERIOD_MN1;
   if (PeriodRSI == 0) PerRSI =Period();

   {

  {
   double PrevCl_Hilo; //переменная Hilo
   double CurrCl_Hilo; //переменная Hilo
   double l_iclose_8;  //переменная Ilan_1.5
   double l_iclose_16; //переменная Ilan_1.6

   double LotExponent_Hilo = LotExponent;
   int lotdecimal_Hilo = lotdecimal;
   double TakeProfit_Hilo = TakeProfit;
   bool UseEquityStop_Hilo = UseEquityStop;        
   double TotalEquityRisk_Hilo = TotalEquityRisk; // риск в процентах от депозита
   bool UseTrailingStop_Hilo = UseTrailingStop;
   double TrailStart_Hilo = TrailStart;
   double TrailStop_Hilo = TrailStop;

   double slip_Hilo = slip;        // проскальзывание

   ord_Hilo = CountTrades_Hilo();
   if (Turbo) 
   {   
   if (ord_Hilo == 1) PipStep_Hilo = PipStep/3;
   if (ord_Hilo == 2) PipStep_Hilo = PipStep/3*2;
   if (ord_Hilo >= 3) PipStep_Hilo = PipStep;
   } else PipStep_Hilo = PipStep;

   if (MarioTurbo) 
   {   
      PipStep_Hilo = NormalizeDouble(PipStep * ord_Hilo / MarioTurboFactor,0);

   } 

   if(MM==true)
   {if (MathCeil(AccountBalance ()) < 2000)       // MM = если депо меньше 2000, то лот = Lots (0.01), иначе- % от депо
    { double Lots_Hilo = Lots;
     }  
     else
     {Lots_Hilo = 0.00001 * MathCeil(AccountBalance ());
     }
    }
     else Lots_Hilo = Lots;

   if (UseTrailingStop_Hilo) TrailingAlls_Hilo(TrailStart_Hilo, TrailStop_Hilo, AveragePrice_Hilo);
   if (UseTimeOut_Hilo) {
      if (TimeCurrent() >= expiration_Hilo) {
         CloseThisSymbolAll_Hilo();
         Print("Closed All due_Hilo to TimeOut");
      }
   }
   if (timeprev_Hilo == Time[0]) return (0);
   timeprev_Hilo = Time[0];
   double CurrentPairProfit_Hilo = CalculateProfit_Hilo();
   if (UseEquityStop_Hilo) {
      if (CurrentPairProfit_Hilo < 0.0 && MathAbs(CurrentPairProfit_Hilo) > TotalEquityRisk_Hilo / 100.0 * AccountEquityHigh_Hilo()) {
         CloseThisSymbolAll_Hilo();
         Print("Closed All due_Hilo to Stop Out");
         NewOrdersPlaced_Hilo = FALSE;
      }
   }
   total_Hilo = CountTrades_Hilo();
   if (total_Hilo == 0) flag_Hilo = FALSE;
   for (cnt_Hilo = OrdersTotal() - 1; cnt_Hilo >= 0; cnt_Hilo--) {
      OrderSelect(cnt_Hilo, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_Hilo) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo) {
         if (OrderType() == OP_BUY) {
            LongTrade_Hilo = TRUE;
            ShortTrade_Hilo = FALSE;
            break;
         }
      }
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo) {
         if (OrderType() == OP_SELL) {
            LongTrade_Hilo = FALSE;
            ShortTrade_Hilo = TRUE;
            break;
         }
      }
   }
   if (total_Hilo > 0 && total_Hilo < MaxTrades_Hilo) {
      RefreshRates();
      LastBuyPrice_Hilo = FindLastBuyPrice_Hilo();
      LastSellPrice_Hilo = FindLastSellPrice_Hilo();
      if (LongTrade_Hilo && LastBuyPrice_Hilo - Ask >= PipStep_Hilo * Point) TradeNow_Hilo = TRUE;
      if (ShortTrade_Hilo && Bid - LastSellPrice_Hilo >= PipStep_Hilo * Point) TradeNow_Hilo = TRUE;
   }
   if (total_Hilo < 1) {
      ShortTrade_Hilo = FALSE;
      LongTrade_Hilo = FALSE;
      TradeNow_Hilo = TRUE;
      StartEquity_Hilo = AccountEquity();
   }
   if (TradeNow_Hilo) {
      LastBuyPrice_Hilo = FindLastBuyPrice_Hilo();
      LastSellPrice_Hilo = FindLastSellPrice_Hilo();
      if (ShortTrade_Hilo) {
         NumOfTrades_Hilo = total_Hilo;
         iLots_Hilo = NormalizeDouble(Lots_Hilo * MathPow(LotExponent_Hilo, NumOfTrades_Hilo), lotdecimal_Hilo);
         RefreshRates();
         ticket_Hilo = OpenPendingOrder_Hilo(1, iLots_Hilo, NormalizeDouble(Bid,Digits), slip_Hilo, NormalizeDouble(Ask,Digits), 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, MagicNumber_Hilo, 0, HotPink);
         if (ticket_Hilo < 0) 
         {
            Print("Error: ", GetLastError());
            return (0);
         }
         LastSellPrice_Hilo = FindLastSellPrice_Hilo();
         TradeNow_Hilo = FALSE;
         NewOrdersPlaced_Hilo = TRUE;
      } else {
         if (LongTrade_Hilo) {
            NumOfTrades_Hilo = total_Hilo;
            iLots_Hilo = NormalizeDouble(Lots_Hilo * MathPow(LotExponent_Hilo, NumOfTrades_Hilo), lotdecimal_Hilo);
            ticket_Hilo = OpenPendingOrder_Hilo(0, iLots_Hilo, NormalizeDouble(Ask,Digits), slip_Hilo, NormalizeDouble(Bid,Digits), 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, MagicNumber_Hilo, 0, Lime);
            if (ticket_Hilo < 0) {
               Print("Error: ", GetLastError());
               return (0);
            }
            LastBuyPrice_Hilo = FindLastBuyPrice_Hilo();
            TradeNow_Hilo = FALSE;
            NewOrdersPlaced_Hilo = TRUE;
         }
      }
   }
   if (TradeNow_Hilo && total_Hilo < 1) {
      PrevCl_Hilo = iHigh(Symbol(), 0, 1);
      CurrCl_Hilo =  iLow(Symbol(), 0, 2);
      SellLimit_Hilo = NormalizeDouble(Bid,Digits);
      BuyLimit_Hilo = NormalizeDouble(Ask,Digits);
      if (!ShortTrade_Hilo && !LongTrade_Hilo) {
         NumOfTrades_Hilo = total_Hilo;
         iLots_Hilo = NormalizeDouble(Lots_Hilo * MathPow(LotExponent_Hilo, NumOfTrades_Hilo), lotdecimal_Hilo);

        if (NewCycle && NewCycleHiLo) {
         if (PrevCl_Hilo > CurrCl_Hilo) {        

            if (iRSI(NULL, PerRSI, 14, PRICE_CLOSE, 1) > 30.0) {
               ticket_Hilo = OpenPendingOrder_Hilo(1, iLots_Hilo, SellLimit_Hilo, slip_Hilo, SellLimit_Hilo, 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, MagicNumber_Hilo, 0, HotPink);
               if (ticket_Hilo < 0) {
                  Print("Error: ", GetLastError());
                  return (0);
               }
               LastBuyPrice_Hilo = FindLastBuyPrice_Hilo();
               NewOrdersPlaced_Hilo = TRUE;
            }
         } else {

            if (iRSI(NULL, PerRSI, 14, PRICE_CLOSE, 1) < 70.0) {
               ticket_Hilo = OpenPendingOrder_Hilo(0, iLots_Hilo, BuyLimit_Hilo, slip_Hilo, BuyLimit_Hilo, 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, MagicNumber_Hilo, 0, Lime);
               if (ticket_Hilo < 0) {
                  Print("Error: ", GetLastError());
                  return (0);
               }
               LastSellPrice_Hilo = FindLastSellPrice_Hilo();
               NewOrdersPlaced_Hilo = TRUE;
            }
         }
         }

       if (ticket_Hilo > 0) expiration_Hilo = TimeCurrent() + 60.0 * (60.0 * MaxTradeOpenHours_Hilo);
       TradeNow_Hilo = FALSE;
       }
       }
       total_Hilo = CountTrades_Hilo();
       AveragePrice_Hilo = 0;
       double Count_Hilo = 0;

      for (cnt_Hilo = OrdersTotal() - 1; cnt_Hilo >= 0; cnt_Hilo--) {
        OrderSelect(cnt_Hilo, SELECT_BY_POS, MODE_TRADES);
        if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_Hilo) continue;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo) {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
                AveragePrice_Hilo += OrderOpenPrice() * OrderLots();
                Count_Hilo += OrderLots();
            }
          }
       }// end for

       if (total_Hilo > 0) AveragePrice_Hilo = NormalizeDouble(AveragePrice_Hilo / Count_Hilo, Digits);
       if (NewOrdersPlaced_Hilo) {
         for (cnt_Hilo = OrdersTotal() - 1; cnt_Hilo >= 0; cnt_Hilo--) {
            OrderSelect(cnt_Hilo, SELECT_BY_POS, MODE_TRADES);
            if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_Hilo) continue;
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo) {
                if (OrderType() == OP_BUY) {
                    PriceTarget_Hilo = AveragePrice_Hilo + TakeProfit_Hilo * Point;
                    BuyTarget_Hilo = PriceTarget_Hilo;
                    Stopper_Hilo = AveragePrice_Hilo - Stoploss_Hilo * Point;
                    flag_Hilo = TRUE;
                }
             }
             if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo) {
                 if (OrderType() == OP_SELL) {
                     PriceTarget_Hilo = AveragePrice_Hilo - TakeProfit_Hilo * Point;
                     SellTarget_Hilo = PriceTarget_Hilo;
                     Stopper_Hilo = AveragePrice_Hilo + Stoploss_Hilo * Point;
                     flag_Hilo = TRUE;
                 }
              }
           }
         }// end  - if (NewOrdersPlaced_Hilo)

         if (NewOrdersPlaced_Hilo) {
            if (flag_Hilo == TRUE) {
                for (cnt_Hilo = OrdersTotal() - 1; cnt_Hilo >= 0; cnt_Hilo--) {
                     OrderSelect(cnt_Hilo, SELECT_BY_POS, MODE_TRADES);
                     if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber_Hilo) continue;
                     if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber_Hilo)// OrderModify(OrderTicket(), AveragePrice_Hilo, OrderStopLoss(), PriceTarget_Hilo, 0, Yellow);

                     int NumberOfTries_Hilo = 10;
                     for (int i = 0; i < NumberOfTries_Hilo; i++) {
                        bool res=OrderModify(OrderTicket(), AveragePrice_Hilo, OrderStopLoss(), PriceTarget_Hilo, 0, Yellow);
                        if (res) break;
                        if(!res) {
                           Print("Error in OrderModify HiLo. Error code=",GetLastError());
                           Sleep(500);RefreshRates();
                        } 
                     }                                                                     
                     NewOrdersPlaced_Hilo = FALSE;
                }
             }
         }// end if (NewOrdersPlaced_Hilo)

         double LotExponent_15 = LotExponent;
         int lotdecimal_15 = lotdecimal;
         double TakeProfit_15 = TakeProfit;
         bool UseEquityStop_15 = UseEquityStop;        
      double TotalEquityRisk_15 = TotalEquityRisk;// риск в процентах от депозита
     bool UseTrailingStop_15 = UseTrailingStop;
    double TrailStart_15 = TrailStart;
   double TrailStop_15 = TrailStop;

   double slip_15 = slip;                      // проскальзывание

   int _TimeFrameCloseValue = 0;
   if (TimeFrameCloseValue == 1) _TimeFrameCloseValue =PERIOD_M1; 
   if (TimeFrameCloseValue == 2) _TimeFrameCloseValue =PERIOD_M5; 
   if (TimeFrameCloseValue == 3) _TimeFrameCloseValue =PERIOD_M15; 
   if (TimeFrameCloseValue == 4) _TimeFrameCloseValue =PERIOD_M30; 
   if (TimeFrameCloseValue == 5) _TimeFrameCloseValue =PERIOD_H1; 
   if (TimeFrameCloseValue == 6) _TimeFrameCloseValue =PERIOD_H4; 
   if (TimeFrameCloseValue == 7) _TimeFrameCloseValue =PERIOD_D1; 
   if (TimeFrameCloseValue == 8) _TimeFrameCloseValue =PERIOD_W1; 
   if (TimeFrameCloseValue == 9) _TimeFrameCloseValue =PERIOD_MN1;
   if (TimeFrameCloseValue == 0) _TimeFrameCloseValue =Period();

   ord_15 = CountTrades_15();   
   if (Turbo)
   { 
   if (ord_15 == 1) PipStep_15 = PipStep/3;
   if (ord_15 == 2) PipStep_15 = PipStep/3*2;
   if (ord_15 >= 3) PipStep_15 = PipStep;
   }
   else PipStep_15 = PipStep;

   if (MarioTurbo) 
   {   
      PipStep_15 = NormalizeDouble( PipStep*ord_15/MarioTurboFactor,0);
   } 

   if(MM==true)
   {if (MathCeil(AccountBalance ()) < 2000)    // MM = если депо меньше 2000, то лот = Lots (0.01), иначе- % от депо
     { double Lots_15 = Lots;
     }  
     else
     {Lots_15 = 0.00001 * MathCeil(AccountBalance ());
     }
    }
     else Lots_15 = Lots;

   if (UseTrailingStop_15) TrailingAlls_15(TrailStart_15, TrailStop_15, g_price_212_15);
   if (UseTimeOut_15) {
      if (TimeCurrent() >= gi_284_15) {
         CloseThisSymbolAll_15();
         Print("Closed All due to TimeOut");
      }
   }
   if (gi_280_15 != Time[0])
   {
   gi_280_15 = Time[0];
   double ld_0_15 = CalculateProfit_15();
   if (UseEquityStop_15) {
      if (ld_0_15 < 0.0 && MathAbs(ld_0_15) > TotalEquityRisk_15 / 100.0 * AccountEquityHigh_15()) {
         CloseThisSymbolAll_15();
         Print("Closed All due to Stop Out");
         gi_332_15 = FALSE;
      }
   }
   gi_304_15 = CountTrades_15();
   if (gi_304_15 == 0) gi_268_15 = FALSE;
   for (g_pos_300_15 = OrdersTotal() - 1; g_pos_300_15 >= 0; g_pos_300_15--) {
      OrderSelect(g_pos_300_15, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_176_15) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_176_15) {
         if (OrderType() == OP_BUY) {
            gi_320_15 = TRUE;
            gi_324_15 = FALSE;
            break;
         }
      }
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_176_15) {
         if (OrderType() == OP_SELL) {
            gi_320_15 = FALSE;
            gi_324_15 = TRUE;
            break;
         }
      }
   }
   if (gi_304_15 > 0 && gi_304_15 < MaxTrades_15) {
      RefreshRates();
      gd_236_15 = FindLastBuyPrice_15();
      gd_244_15 = FindLastSellPrice_15();
      if (gi_320_15 && gd_236_15 - Ask >= PipStep_15 * Point) gi_316_15 = TRUE;
      if (gi_324_15 && Bid - gd_244_15 >= PipStep_15 * Point) gi_316_15 = TRUE;
   }
   if (gi_304_15 < 1) {
      gi_324_15 = FALSE;
      gi_320_15 = FALSE;
      gi_316_15 = TRUE;
      gd_188_15 = AccountEquity();
   }
   if (gi_316_15) {
      gd_236_15 = FindLastBuyPrice_15();
      gd_244_15 = FindLastSellPrice_15();
      if (gi_324_15) {
         gi_288_15 = gi_304_15;
         gd_292_15 = NormalizeDouble(Lots_15 * MathPow(LotExponent_15, gi_288_15), lotdecimal_15);
         RefreshRates();
         gi_328_15 = OpenPendingOrder_15(1, gd_292_15, NormalizeDouble(Bid,Digits), slip_15, NormalizeDouble(Ask,Digits), 0, 0, gs_ilan_272_15 + "-" + gi_288_15, g_magic_176_15, 0, HotPink);
         if (gi_328_15 < 0) {
            Print("Error: ", GetLastError());
            return (0);
         }
         gd_244_15 = FindLastSellPrice_15();
         gi_316_15 = FALSE;
         gi_332_15 = TRUE;
      } else {
         if (gi_320_15) {
            gi_288_15 = gi_304_15;
            gd_292_15 = NormalizeDouble(Lots_15 * MathPow(LotExponent_15, gi_288_15), lotdecimal_15);
            gi_328_15 = OpenPendingOrder_15(0, gd_292_15, NormalizeDouble(Ask,Digits), slip_15, NormalizeDouble(Bid,Digits), 0, 0, gs_ilan_272_15 + "-" + gi_288_15, g_magic_176_15, 0, Lime);
            if (gi_328_15 < 0) {
               Print("Error: ", GetLastError());
               return (0);
            }
            gd_236_15 = FindLastBuyPrice_15();
            gi_316_15 = FALSE;
            gi_332_15 = TRUE;
         }
      }
   }
   }
   if(time_15!=iTime(NULL,OpenNewTF_15,0)){
     int totals_15=OrdersTotal();
     int orders_15=0;
     for(int total_15=totals_15; total_15>=1; total_15--){
        OrderSelect(total_15-1,SELECT_BY_POS,MODE_TRADES);
        if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_176_15) continue;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_176_15) {
            orders_15++;
        }
     }// for
     if (totals_15==0 || orders_15 < 1) {
      l_iclose_8 = iClose(Symbol(), _TimeFrameCloseValue, 2);
      l_iclose_16 = iClose(Symbol(), _TimeFrameCloseValue, 1);
      g_bid_220_15 = NormalizeDouble(Bid,Digits);
      g_ask_228_15 = NormalizeDouble(Ask,Digits);
      if (!gi_324_15 && !gi_320_15) {
         gi_288_15 = gi_304_15;
         gd_292_15 = NormalizeDouble(Lots_15 * MathPow(LotExponent, gi_288_15), lotdecimal_15);
         if (l_iclose_8 > l_iclose_16) {
             if (NewCycle && NewCycle15){
                gi_328_15 = OpenPendingOrder_15(1, gd_292_15, g_bid_220_15, slip_15, g_bid_220_15, 0, 0, gs_ilan_272_15 + "-" + gi_288_15, g_magic_176_15, 0, HotPink);
                if (gi_328_15 < 0) {
                   Print("Error: ", GetLastError());
                   return (0);
                }// if
                gd_236_15 = FindLastBuyPrice_15();
                gi_332_15 = TRUE;
             }// if newcycle
         } 
       }// if (!gi_324_15 && !gi_320_15)
       else {if (NewCycle && NewCycle15) {
            gi_328_15 = OpenPendingOrder_15(0, gd_292_15, g_ask_228_15, slip_15, g_ask_228_15, 0, 0, gs_ilan_272_15 + "-" + gi_288_15, g_magic_176_15, 0, Lime);
            if (gi_328_15 < 0) {
               Print("Error: ", GetLastError());
               return (0);
            }
            gd_244_15 = FindLastSellPrice_15();
            gi_332_15 = TRUE;
          }//end  if newcycle
         }// end  else if
        if (gi_328_15 > 0) gi_284_15 = TimeCurrent() + 60.0 * (60.0 * MaxTradeOpenHours_15);
        gi_316_15 = FALSE;

     }// end - if (totals_15==0 || orders_15 < 1) {
     time_15=iTime(NULL,OpenNewTF_15,0);
   }// end  ---  if(time_15!=iTime(NULL,OpenNewTF_15,0)){

   gi_304_15 = CountTrades_15();
   g_price_212_15 = 0;
   double ld_24_15 = 0;

   for (g_pos_300_15 = OrdersTotal() - 1; g_pos_300_15 >= 0; g_pos_300_15--) {
      OrderSelect(g_pos_300_15, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != g_magic_176_15) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_176_15) {
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
            g_price_212_15 += OrderOpenPrice() * OrderLots();
            ld_24_15 += OrderLots();
         }
      }
   }// end  for 

   if (gi_304_15 > 0) g_price_212_15 = NormalizeDouble(g_price_212_15 / ld_24_

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

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

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

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

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

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

Стоимость полного кода
4 857,80₽ ≈ $59.37