Ilan-Trio V1.47
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ilan-trio v1.49.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Илан-Трио — торговый советник для MetaTrader 4, объединяющий три независимых торговых модуля (Ilan_Hilo, Ilan 1.5, Ilan 1.6) на одном графике. Каждый модуль самостоятельно управляет множественными ордерами с прогрессивным увеличением лота по заданному показателю.
Модуль Ilan_Hilo использует индикатор RSI для генерации сигналов на входе в сделку, а также поддерживает трейлинг-стоп, стоп-эквити, тайм-аут и управление рисками. Модули 1.5 и 1.6 применяют сравнение ценовых данных по разным таймфреймам для принятия торговых решений.
Советник отображает на графике информацию о балансе, эквити, марже, прибыли и количестве открытых ордеров по каждому модулю. Все три модуля используют торговые API MetaTrader 4 для открытия, модификации и закрытия позиций.
Настройки программы
| Настройка | Описание |
|---|---|
| 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) | Турбо-режим — При включении первые три ордера открываются с уменьшенным шагом в пипсах. |
| Mario's adaptive turbo, fast in begining slower in the end (MarioTurbo) | Адаптивный режим Марио — Включает адаптивный режим наращивания шага, при котором шаг увеличивается быстрее в начале и замедляется к концу. |
| MarioTurboFactor | Коэффициент Марио — Коэффициент, определяющий скорость адаптивного изменения шага в режиме Марио. |
| 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) | Управление рисками — Включает или отключает систему управления рисками с автоматической корректировкой лота в зависимости от размера депозита. |
| 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 и 1.6 (в исходном коде указано, что данный параметр не работает). |
| 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.