Ilan-Trio V1.45.4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ilan-trio v1.45.4.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Ilan-Trio V1.45.4 — торговый советник для платформы MetaTrader 4, реализующий три параллельные торговые стратегии: Ilan Hilo RSI, Ilan 1.5 и Ilan 1.6. Каждая стратегия самостоятельно управляет своими сделками, используя отложенные ордера на покупку и продажу, фильтрацию по RSI и пошаговое открытие позиций при движении цены. Советник проверяет уровень маржи перед запуском и отображает текущий Margin Level на графике. Поддерживаются режимы управления рисками: стоп по equity, трейлинг-стоп и ограничение максимального количества сделок по каждой стратегии.
Настройки программы
| Настройка | Описание |
|---|---|
| t0 | Заголовок Hilo — Текстовый разделитель группы настроек стратегии Ilan Hilo RSI |
| Use_Ilan_Hilo | Использовать Ilan Hilo — Включает или отключает торговлю по стратегии Ilan Hilo RSI |
| Use_Ilan_15 | Использовать Ilan 1.5 — Включает или отключает торговлю по стратегии Ilan 1.5 |
| Use_Ilan_16 | Использовать Ilan 1.6 — Включает или отключает торговлю по стратегии Ilan 1.6 |
| t1 | Заголовок MagicNumber — Текстовый разделитель группы настроек магических номеров |
| Magic_Ilan_Hilo | Magic Ilan Hilo — Магический номер для идентификации ордеров стратегии Ilan Hilo RSI |
| Magic_Ilan_15 | Magic Ilan 1.5 — Магический номер для идентификации ордеров стратегии Ilan 1.5 |
| Magic_Ilan_16 | Magic Ilan 1.6 — Магический номер для идентификации ордеров стратегии Ilan 1.6 |
| t2 | Заголовок рисков — Текстовый разделитель группы настроек управления рисками и лотами |
| Min_Margin_Level | Минимальный уровень маржи — Процентный порог уровня маржи, ниже которого советник прекращает торговлю |
| ?????? ????? ? ????????? 0.01 ??? ???? ???? ????? 0.1 ?? ????????? ??? ? ????? ????? 0.16 (Lots) | Лот — Базовый размер лота для открытия сделок |
| ????????? ????? ? ????? ?? ?????????? ??? ?????? ? ?????????. ?????? ??? 0.1, ?????: 0.15, 0.26, 0.4 (LotExponent) | Показатель лота — Множитель, увеличивающий размер лота с каждой последующей сделкой в рамках стратегии |
| 2 - ????????? 0.01, 1 - ???? ???? 0.1, 0 - ?????????? ???? 1.0 (lotdecimal) | Десятичные знаки лота — Количество знаков после запятой для округления размера лота (2 — 0.01, 1 — 0.1, 0 — 1.0) |
| ??? ??????- ??? 30 (PipStep) | Шаг в пипсах — Минимальное расстояние в пипсах для условия открытия следующей сделки |
| Money_Management | Управление деньгами — Включает автоматический расчёт размера лота в зависимости от баланса счёта |
| ???? ?????? (TakeProfit) | Тейк-профит — Размер фиксации прибыли в пунктах для каждой сделки |
| ???????????? ???????? ???? (UseTrailingStop) | Использовать трейлинг-стоп — Включает или отключает трейлинг-стоп для всех стратегий |
| TrailStart | Старт трейлинга — Расстояние в пунктах, после которого начинается двигающийся стоп-лосс |
| TrailStop | Шаг трейлинга — Шаг сдвига стоп-лосса в пунктах при движении цены в прибыльную сторону |
| ??????????????? (slip) | Слиппаж — Допустимое проскальзывание цены при открытии и закрытии ордеров в пунктах |
| t3 | Заголовок настроек Hilo — Текстовый разделитель группы дополнительных настроек стратегии Ilan Hilo RSI |
| ??????????? ?????????? ???????????? ???????? ??????? (MaxTrades_Hilo) | Макс. сделок Hilo — Максимальное количество одновременных сделок по стратегии Ilan Hilo RSI |
| t4 | Заголовок настроек 1.5 — Текстовый разделитель группы настроек стратегии Ilan 1.5 |
| MaxTrades_15 | Макс. сделок 1.5 — Максимальное количество одновременных сделок по стратегии Ilan 1.5 |
| t5 | Заголовок настроек 1.6 — Текстовый разделитель группы настроек стратегии Ilan 1.6 |
| MaxTrades_16 | Макс. сделок 1.6 — Максимальное количество одновременных сделок по стратегии Ilan 1.6 |
Поиск по коду файла
extern string t0 = "????????????? ?????????";
extern bool Use_Ilan_Hilo =TRUE;
extern bool Use_Ilan_15 =TRUE;
extern bool Use_Ilan_16 =TRUE;
extern string t1 = "????????? MagicNumber";
extern int Magic_Ilan_Hilo = 11000;
extern int Magic_Ilan_15 = 12000;
extern int Magic_Ilan_16 = 13000;
extern string t2 = "????? ?????????";
extern int Min_Margin_Level = 200;
extern double Lots = 0.01; // ?????? ????? ? ????????? 0.01 ??? ???? ???? ????? 0.1 ?? ????????? ??? ? ????? ????? 0.16
extern double LotExponent = 1.55; // ????????? ????? ? ????? ?? ?????????? ??? ?????? ? ?????????. ?????? ??? 0.1, ?????: 0.15, 0.26, 0.43 ...
extern int lotdecimal = 2; // 2 - ????????? 0.01, 1 - ???? ???? 0.1, 0 - ?????????? ???? 1.0
extern double PipStep = 30.0; // ??? ??????- ??? 30
double MaxLots = 10; // ??????????? ???? ????
extern bool Money_Management =FALSE;
extern double TakeProfit = 10.0; // ???? ??????
bool UseEquityStop = FALSE; // ???????????? ???? ? ?????????
double TotalEquityRisk = 20.0; // ???? ? ????????? ?? ????????
extern bool UseTrailingStop = FALSE;// ???????????? ???????? ????
extern double TrailStart = 13.0;
extern double TrailStop = 3.0;
extern double slip = 5.0; // ???????????????
extern string t3 = "????????? ???????? Ilan_Hilo";
double Lots_Hilo; // ??????? ???? ????? ????? 1 ??????????
double LotExponent_Hilo;
int lotdecimal_Hilo;
double TakeProfit_Hilo; // ???? ??????
extern int MaxTrades_Hilo = 10; // ??????????? ?????????? ???????????? ???????? ???????
bool UseEquityStop_Hilo; // ???????????? ???? ? ?????????
double TotalEquityRisk_Hilo; // ???? ? ????????? ?? ????????
bool UseTrailingStop_Hilo; // ???????????? ???????? ????
double Stoploss_Hilo = 500.0; // ??? ????????? ????????!!!
double TrailStart_Hilo;
double TrailStop_Hilo;
double PipStep_Hilo; // ??? ??????- ??? 30
double slip_Hilo; // ???????????????
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;
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 = "????????? ???????? Ilan 1.5";
double LotExponent_15;
double Lots_15;
int lotdecimal_15;
double TakeProfit_15;
bool UseEquityStop_15; // ???????????? ???? ? ?????????
double TotalEquityRisk_15; // ???? ? ????????? ?? ????????
extern int MaxTrades_15 = 10;
int OpenNewTF_15 = 60;
int gi_unused_88_15;
bool UseTrailingStop_15; // ???????????? ???????? ????
double Stoploss_15 = 500.0; // ??? ????????? ????????!!!
double TrailStart_15;
double TrailStop_15;
double PipStep_15; //30
double slip_15;
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 gd_260_15;
bool gi_268_15;
string gs_ilan_272_15 = "Ilan 1.5";
int gi_280_15 = 0;
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 = "????????? ???????? Ilan 1.6";
double LotExponent_16;
double Lots_16;
int lotdecimal_16;
double TakeProfit_16;
extern int MaxTrades_16 = 10;
bool UseEquityStop_16; // ???????????? ???? ? ?????????
double TotalEquityRisk_16; // ???? ? ????????? ?? ????????
int OpenNewTF_16 = 1;
bool UseTrailingStop_16;
double Stoploss_16 = 500.0; // ??? ??? ????????? ????????!!!
double TrailStart_16;
double TrailStop_16;
double PipStep_16;//30
double slip_16;
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 gd_260_16;
bool gi_268_16;
string gs_ilan_272_16 = "Ilan 1.6";
int gi_280_16 = 0;
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;
double Marg = 0.0001; //???????? ????????, ???????? ?? ????, ????? ???????? ??????? ?? ????
int start()
{
// код доступен только после оплаты
}int counted_bars=IndicatorCounted();
if (AccountMargin()!=0) Marg=AccountMargin();
if ((AccountEquity()/Marg)*100 > Min_Margin_Level)
{ Comment(" ");
Comment("Margin level = ", DoubleToStr(100*AccountEquity()/Marg,2), "%");
if (Lots > MaxLots) Lots = MaxLots; //??????????? ?????
if (Use_Ilan_Hilo)
{
{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 PipStep_Hilo = PipStep;//30
double slip_Hilo = slip; // ???????????????
if(Money_Management==true)
{if (MathCeil(AccountBalance ()) < 2000) // Money_Management = ???? ???? ?????? 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 (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() != Magic_Ilan_Hilo) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_Hilo) {
if (OrderType() == OP_BUY) {
LongTrade_Hilo = TRUE;
ShortTrade_Hilo = FALSE;
break;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_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, Bid, slip_Hilo, Ask, 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, Magic_Ilan_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, Ask, slip_Hilo, Bid, 0, 0, EAName_Hilo + "-" + NumOfTrades_Hilo, Magic_Ilan_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 = Bid;
BuyLimit_Hilo = Ask;
if (!ShortTrade_Hilo && !LongTrade_Hilo) {
NumOfTrades_Hilo = total_Hilo;
iLots_Hilo = NormalizeDouble(Lots_Hilo * MathPow(LotExponent_Hilo, NumOfTrades_Hilo), lotdecimal_Hilo);
if (PrevCl_Hilo > CurrCl_Hilo) {
if (iRSI(NULL, PERIOD_H1, 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, Magic_Ilan_Hilo, 0, HotPink);
if (ticket_Hilo < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastBuyPrice_Hilo = FindLastBuyPrice_Hilo();
NewOrdersPlaced_Hilo = TRUE;
}
} else {
if (iRSI(NULL, PERIOD_H1, 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, Magic_Ilan_Hilo, 0, Lime);
if (ticket_Hilo < 0) {
Print("Error: ", GetLastError());
return (0);
}
LastSellPrice_Hilo = FindLastSellPrice_Hilo();
NewOrdersPlaced_Hilo = TRUE;
}
}
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() != Magic_Ilan_Hilo) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_Hilo) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
AveragePrice_Hilo += OrderOpenPrice() * OrderLots();
Count_Hilo += OrderLots();
}
}
}
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() != Magic_Ilan_Hilo) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_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() == Magic_Ilan_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;
}
}
}
}
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() != Magic_Ilan_Hilo) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_Hilo)// OrderModify(OrderTicket(), AveragePrice_Hilo, OrderStopLoss(), PriceTarget_Hilo, 0, Yellow);
while(!OrderModify(OrderTicket(), AveragePrice_Hilo, OrderStopLoss(), PriceTarget_Hilo, 0, Yellow))// ???????????? ??? ???????? ??????...
{Sleep(1000);RefreshRates();} //..?????? ????? ????????? ????????, ?????? ?????? ?? ???? ?????????..
NewOrdersPlaced_Hilo = FALSE;
}
}
}
}
if (Use_Ilan_15)
{
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 PipStep_15 = PipStep;//30
double slip_15 = slip; // ???????????????
if(Money_Management==true)
{if (MathCeil(AccountBalance ()) < 2000) // Money_Management = ???? ???? ?????? 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 (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() != Magic_Ilan_15) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15) {
if (OrderType() == OP_BUY) {
gi_320_15 = TRUE;
gi_324_15 = FALSE;
break;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_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, Bid, slip_15, Ask, 0, 0, gs_ilan_272_15 + "-" + gi_288_15, Magic_Ilan_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, Ask, slip_15, Bid, 0, 0, gs_ilan_272_15 + "-" + gi_288_15, Magic_Ilan_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() != Magic_Ilan_15) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15) {
orders_15++;
}
}
if (totals_15==0 || orders_15 < 1) {
l_iclose_8 = iClose(Symbol(), 0, 2);
l_iclose_16 = iClose(Symbol(), 0, 1);
g_bid_220_15 = Bid;
g_ask_228_15 = Ask;
gi_288_15 = gi_304_15;
gd_292_15 = /*NormalizeDouble(*/Lots_15/* * MathPow(LotExponent, gi_288), lotdecimal)*/;
if (l_iclose_8 > l_iclose_16) {
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, Magic_Ilan_15, 0, HotPink);
if (gi_328_15 < 0) {
Print("Error: ", GetLastError());
return (0);
}
gd_236_15 = FindLastBuyPrice_15();
gi_332_15 = TRUE;
} else {
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, Magic_Ilan_15, 0, Lime);
if (gi_328_15 < 0) {
Print("Error: ", GetLastError());
return (0);
}
gd_244_15 = FindLastSellPrice_15();
gi_332_15 = TRUE;
}
gi_316_15 = FALSE;
}
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() != Magic_Ilan_15) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15) {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
g_price_212_15 += OrderOpenPrice() * OrderLots();
ld_24_15 += OrderLots();
}
}
}
if (gi_304_15 > 0) g_price_212_15 = NormalizeDouble(g_price_212_15 / ld_24_15, Digits);
if (gi_332_15) {
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() != Magic_Ilan_15) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15) {
if (OrderType() == OP_BUY) {
g_price_180_15 = g_price_212_15 + TakeProfit_15 * Point;
gd_unused_196_15 = g_price_180_15;
gd_308_15 = g_price_212_15 - Stoploss_15 * Point;
gi_268_15 = TRUE;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15) {
if (OrderType() == OP_SELL) {
g_price_180_15 = g_price_212_15 - TakeProfit_15 * Point;
gd_unused_204_15 = g_price_180_15;
gd_308_15 = g_price_212_15 + Stoploss_15 * Point;
gi_268_15 = TRUE;
}
}
}
}
if (gi_332_15) {
if (gi_268_15 == TRUE) {
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() != Magic_Ilan_15) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_15)
while(!OrderModify(OrderTicket(), g_price_212_15, OrderStopLoss(), g_price_180_15, 0, Yellow))// ???????????? ??? ???????? ??????...
{Sleep(1000);RefreshRates();} //..?????? ????? ????????? ????????, ?????? ?????? ?? ???? ?????????..
gi_332_15 = FALSE;
}
}
}
}
if (Use_Ilan_16)
{
double LotExponent_16 = LotExponent;
int lotdecimal_16 = lotdecimal;
double TakeProfit_16 = TakeProfit;
bool UseEquityStop_16 = UseEquityStop;
double TotalEquityRisk_16 = TotalEquityRisk;// ???? ? ????????? ?? ????????
bool UseTrailingStop_16 = UseTrailingStop;
double TrailStart_16 = TrailStart;
double TrailStop_16 = TrailStop;
double PipStep_16 = PipStep;//30
double slip_16 = slip; // ???????????????
if(Money_Management==true)
{if (MathCeil(AccountBalance ()) < 2000) // Money_Management = ???? ???? ?????? 2000, ?? ??? = Lots (0.01), ?????- % ?? ????
{ double Lots_16 = Lots;
}
else
{Lots_16 = 0.00001 * MathCeil(AccountBalance ());
}
}
else Lots_16 = Lots;
if (UseTrailingStop_16) TrailingAlls_16(TrailStart_16, TrailStop_16, g_price_212_16);
if (gi_280_16 != Time[0])
{
gi_280_16 = Time[0];
double ld_0_16 = CalculateProfit_16();
if (UseEquityStop_16) {
if (ld_0_16 < 0.0 && MathAbs(ld_0_16) > TotalEquityRisk_16 / 100.0 * AccountEquityHigh_16()) {
CloseThisSymbolAll_16();
Print("Closed All due to Stop Out");
gi_332_16 = FALSE;
}
}
gi_304_16 = CountTrades_16();
if (gi_304_16 == 0) gi_268_16 = FALSE;
for (g_pos_300_16 = OrdersTotal() - 1; g_pos_300_16 >= 0; g_pos_300_16--) {
OrderSelect(g_pos_300_16, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic_Ilan_16) continue;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_16) {
if (OrderType() == OP_BUY) {
gi_320_16 = TRUE;
gi_324_16 = FALSE;
break;
}
}
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Ilan_16) {
if (OrderType() == OP_SELL) {
gi_320_16 = FALSE;
gi_324_16 = TRUE;
break;
}
}
}
if (gi_304_16 > 0 && gi_304_16 <= MaxTrades_16) {
RefreshRates();
gd_236_16 = FindLastBuyPrice_16();
gd_244_16 = FindLastSellPrice_16();
if (gi_320_16 && gd_236_16 - Ask >= PipStep_16 * Point) gi_316_16 = TRUE;
if (gi_324_16 && Bid - gd_244_16 >= PipStep_16 * Point) gi_316_16 = TRUE;
}
if (gi_304_16 < 1) {
gi_324_16 = FALSE;
gi_320_16 = FALSE;
gd_188_16 = AccountEquity();
}
if (gi_316_16) {
gd_236_16 = FindLastBuyPrice_16();
gd_244_16 = FindLastSellPrice_16();
if (gi_324_16) {
gi_288_16 = gi_304_16;
gd_292_16 = NormalizeDouble(Lots_16 * MathPow(LotExponent_16, gi_288_16), lotdecimal_16);
RefreshRates();
gi_328_16 = OpenPendingOrder_16(1, gd_292_16, Bid, slip_16, Ask, 0, 0, gs_ilan_272_16 + "-" + gi_288_16, Magic_Ilan_16, 0, HotPink);
if (gi_328_16 < 0) {
Print("Error: ", GetLastError());
return (0);
}
gd_244_16 = FindLastSellPrice_16();
gi_316_16 = FALSE;
gi_332_16 = TRUE;
} else {
if (gi_320_16) {
gi_288_16 = gi_304_16;
gd_292_16 = NormalizeDouble(Lots_16 * MathPow(LotExponent_16, gi_288_16), lotdecimal_16);
gi_328_16 = OpenPendingOrder_16(0, gd_292_16, Ask, slip_16, Bid, 0, 0, gs_ilan_272_16 + "-" + gi_288_16, Magic_Ilan_16, 0, Lime);
if (gi_328_16 < 0) {
Print("Error: ", GetLastError());
return (0);
}
gd_236_16 = FindLastBuyPrice_16();
gi_316_16 = FALSE;
gi_332_16 = TRUE;
}
}
}
}
if(time_16!=iTime(NULL,OpenNewTF_16,0))
{
int totals_16=OrdersTotal();
int orders_Показано первые 50% кода (символов: 37400)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.