hzh-+¬+l2+·_atc.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «hzh-+¬+l2+·_atc.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торговый советник для MetaTrader 4, написанный на языке MQL4. Советник использует скользящую среднюю (iMA) и индикатор Envelopes для формирования торговых сигналов и размещения отложенных ордеров BUYSTOP и SELLSTOP в определённые часы торговой сессии.
Советник одновременно управляет шестью отложенными ордерами с различными магическими числами и дистанциями стоп-лосса. Лот рассчитывается автоматически на основе свободного маркета, заданного риска и количества убыточных исторических сделок. Встроена функция трейлинг-стопа, которая перемещает уровень стоп-лосса вверх по направлению движения цены, используя значение скользящей средней или нижней границы Envelopes.
Также в советнике реализована защита от убытков: позиции закрываются при превышении потерь свыше 20% от баланса счёта. Отложенные ордера удаляются в определённый час, если они ещё не активированы. Дополнительно имеется проверка на год, после 2030 года торговля полностью прекращается с предупреждением пользователя.
Настройки программы
| Настройка | Описание |
|---|---|
| Magic | Magic — Целочисленный параметр — магическое число для идентификации ордеров, управляемых советником. |
| Lots | Lots — Числовой параметр задаёт начальный размер лота для торговых операций. |
| MaximumRisk | MaximumRisk — Числовой параметр задаёт максимальный допустимый риск в процентах от свободного маркета для расчёта лота. |
| DecreaseFactor | DecreaseFactor — Числовой коэффициент уменьшения лота на основе количества убыточных исторических сделок. |
Поиск по коду файла
extern int Magic = 1175460;
int gi_80 = 160;
int gi_84 = 0;
int gi_88 = 1;
double gd_92 = 1.0;
int gi_100 = 2;
int g_datetime_104 = 10;
double g_pips_108 = 10.0;
double g_pips_116 = 21.0;
double g_pips_124 = 21.0;
extern double Lots = 1.0;
extern double MaximumRisk = 0.08;
extern double DecreaseFactor = 3.0;
int gi_156 = 150;
int g_ticket_160;
int g_ticket_164;
int g_ticket_168;
int g_ticket_172;
int g_ticket_176;
int g_ticket_180;
double gd_184 = 0.0;
double LotsOptimized() {
double l_lots_0 = Lots;
int l_hist_total_8 = OrdersHistoryTotal();
int l_count_12 = 0;
l_lots_0 = NormalizeDouble(AccountFreeMargin() * MaximumRisk / 1000.0, 1);
if (DecreaseFactor > 0.0) {
for (int l_pos_16 = l_hist_total_8 - 1; l_pos_16 >= 0; l_pos_16--) {
if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_HISTORY) == FALSE) {
Print("Error in history!");
break;
}
if (OrderSymbol() != Symbol() || OrderType() > OP_SELL) continue;
if (OrderProfit() > 0.0) break;
if (OrderProfit() < 0.0) l_count_12++;
}
if (l_count_12 > 1) l_lots_0 = NormalizeDouble(l_lots_0 - l_lots_0 * l_count_12 / DecreaseFactor, 1);
}
if (l_lots_0 < 0.1) l_lots_0 = 0.1;
return (l_lots_0);
}
int init()//??ʼ??????
{
ObjectCreate("comment_label", OBJ_LABEL, 0, 0, 0);
ObjectSet("comment_label", OBJPROP_XDISTANCE, 50);
ObjectSet("comment_label", OBJPROP_YDISTANCE, 20);
ObjectSetText("comment_label"," ?t֮?R??????ʥ????ATC", 20, "Arial", Red);
return (0);
}
int deinit() {
ObjectDelete("comment_label");
return (0);
}
int start() {
// код доступен только после оплаты
}
double l_price_0;
double l_price_8;
double l_price_16;
double l_price_24;
double l_price_32;
double l_price_40;
int l_ticket_48;
double l_price_52;
double l_price_60;
int l_period_68 = 0;
l_period_68 = gi_80;
int l_timeframe_72 = 0;
l_timeframe_72 = gi_84;
int l_ma_method_76 = 0;
l_ma_method_76 = gi_88;
double l_deviation_80 = 0;
l_deviation_80 = gd_92;
double l_ienvelopes_88 = 0;
double l_ienvelopes_96 = 0;
double l_ima_104 = 0;
CloseAllLoss();
int l_digits_112 = MarketInfo(Symbol(), MODE_DIGITS);
l_ima_104 = iMA(NULL, l_timeframe_72, l_period_68, 0, l_ma_method_76, PRICE_CLOSE, 0);
l_ienvelopes_88 = iEnvelopes(NULL, l_timeframe_72, l_period_68, l_ma_method_76, 0, PRICE_CLOSE, l_deviation_80, MODE_UPPER, 0);
l_ienvelopes_96 = iEnvelopes(NULL, l_timeframe_72, l_period_68, l_ma_method_76, 0, PRICE_CLOSE, l_deviation_80, MODE_LOWER, 0);
Comment("HZH EA\nFor EUR/USD time frame H1 only");
int l_day_of_year_116 = DayOfYear();
int l_year_120 = Year();
if ((l_year_120 == 2030 && l_day_of_year_116 >= 365) || l_year_120 > 2030) {
Comment("Trade is stopped ! Update your adviser please.\nUse of this version can be dangerous to your deposit !");
return (0);
}
int l_ord_total_124 = OrdersTotal();
if (OrdersTotal() == 0) {
g_ticket_160 = 0;
g_ticket_164 = 0;
g_ticket_168 = 0;
g_ticket_172 = 0;
g_ticket_176 = 0;
g_ticket_180 = 0;
}
if (OrdersTotal() > 0) {
for (int l_pos_128 = 0; l_pos_128 < l_ord_total_124; l_pos_128++) {
OrderSelect(l_pos_128, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() == Magic + 2) g_ticket_160 = OrderTicket();
if (OrderMagicNumber() == Magic + 4) g_ticket_164 = OrderTicket();
if (OrderMagicNumber() == Magic + 6) g_ticket_168 = OrderTicket();
if (OrderMagicNumber() == Magic + 1) g_ticket_172 = OrderTicket();
if (OrderMagicNumber() == Magic + 3) g_ticket_176 = OrderTicket();
if (OrderMagicNumber() == Magic + 5) g_ticket_180 = OrderTicket();
}
}
if (g_ticket_160 == 0) {
if (Hour() > gi_100 && Hour() < g_datetime_104) {
if (l_ienvelopes_88 > Close[0] && l_ienvelopes_96 < Close[0]) {
l_price_0 = NormalizeDouble(l_ienvelopes_88, l_digits_112) + g_pips_108 * Point;
l_ticket_48 = OrderSend(Symbol(), OP_BUYSTOP, LotsOptimized(), NormalizeDouble(l_ienvelopes_88, l_digits_112), 0, NormalizeDouble(l_ienvelopes_96, l_digits_112), l_price_0, "", Magic +
2, g_datetime_104, Aqua);
if (l_ticket_48 > 0) {
if (OrderSelect(l_ticket_48, SELECT_BY_TICKET, MODE_TRADES)) {
g_ticket_160 = l_ticket_48;
Print(l_ticket_48);
} else Print("Error Opening BuyStop Order: ", GetLastError());
return (0);
}
}
}
}
if (g_ticket_164 == 0) {
if (Hour() > gi_100 && Hour() < g_datetime_104) {
if (l_ienvelopes_88 > Close[0] && l_ienvelopes_96 < Close[0]) {
l_price_8 = NormalizeDouble(l_ienvelopes_88, l_digits_112) + g_pips_116 * Point;
l_ticket_48 = OrderSend(Symbol(), OP_BUYSTOP, LotsOptimized(), NormalizeDouble(l_ienvelopes_88, l_digits_112), 0, NormalizeDouble(l_ienvelopes_96, l_digits_112), l_price_8, "", Magic +
4, g_datetime_104, Aqua);
if (l_ticket_48 > 0) {
if (OrderSelect(l_ticket_48, SELECT_BY_TICKET, MODE_TRADES)) {
g_ticket_164 = l_ticket_48;
Print(l_ticket_48);
} else Print("Error Opening BuyStop Order: ", GetLastError());
return (0);
}
}
}
}
if (g_ticket_168 == 0) {
if (Hour() > gi_100 && Hour() < g_datetime_104) {
if (l_ienvelopes_88 > Close[0] && l_ienvelopes_96 < Close[0]) {
l_price_16 = NormalizeDouble(l_ienvelopes_88, l_digits_112) + g_pips_124 * Point;
l_ticket_48 = OrderSend(Symbol(), OP_BUYSTOP, LotsOptimized(), NormalizeDouble(l_ienvelopes_88, l_digits_112), 0, NormalizeDouble(l_ienvelopes_96, l_digits_112), l_price_16, "", Magic +
6, g_datetime_104, Aqua);
if (l_ticket_48 > 0) {
Показано первые 50% кода (символов: 8580)
Что вы получите после оплаты
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? Адрес передаётся вместе с заказом в магазин и сохраняется для связи заказа с оплатой. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.