luckycandles 2in1~.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «luckycandles 2in1~.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой советник для MetaTrader 4, реализующий торговую логику на основе анализа свечных данных. Советник автоматически открывает и управляет позициями, включая функции трейлинга стоп-лосса, усреднения убыточных позиций и блокировки противоположными ордерами.
В качестве основного торгового сигнала используется сравнение разницы между ценой открытия и закрытия предыдущего бара с заданным порогом в пунктах. При выполнении условия запускаются ордера BUY или SELL с настраиваемыми параметрами лота, стоп-лосса и тейк-профита.
Советник поддерживает отображение информации о состоянии счёта на графике, звуковые уведомления при открытии и закрытии позиций, а также многократные попытки выполнения торговых операций с обработкой ошибок.
Настройки программы
| Настройка | Описание |
|---|---|
| __1__ | Параметр 1 — Текстовый параметр настройки. |
| TF | Таймфрейм — Таймфрейм, используемый для анализа свечных данных. |
| pips | Порог в пунктах — Пороговое значение в пунктах для формирования торгового сигнала. |
| ____2___ | Параметр 2 — Текстовый параметр настройки. |
| Lots | Размер лота — Размер лота по умолчанию для открытия новых позиций. |
| StopLoss | Стоп-лосс — Значение стоп-лосса в пунктах для обычных позиций (0 — отключён). |
| TakeProfit | Тейк-профит — Значение тейк-профита в пунктах для обычных позиций (0 — отключён). |
| MagicNumber | Магический номер — Магический номер для обычных позиций советника. |
| Slippage | Проскальзывание — Допустимое проскальзывание при открытии и закрытии позиций. |
| NumberOfTry | Количество попыток — Максимальное количество попыток выполнения торговой операции при ошибке. |
| MarketWatch | Market Watch — Включает или отключает режим Market Watch при открытии позиций. |
| Traling | Трейлинг — Включает или отключает функцию трейлинга стоп-лосса. |
| TSProfitOnly | Трейлинг только с прибылью — Переключатель, ограничивающий трейлинг позициями, имеющими нереализованную прибыль. |
| TrailingStep | Шаг трейлинга — Шаг трейлинга в пунктах для обычных позиций. |
| _____Averag_____ | Параметр усреднения — Текстовый параметр настройки группы усреднения. |
| AVERAGES | Усреднение — Включает или отключает режим усреднения позиций при движении цены против открытого ордера. |
| Averag | Порог усреднения — Числовой параметр, задающий пороговое значение в пунктах для активации усреднения. |
| koef_averag | Коэффициент усреднения — Коэффициент, используемый при расчёте порога усреднения. |
| alfa_lot | Округление лота — Целочисленный параметр, влияющий на округление размера лота при усреднении. |
| koef_lot | Коэффициент лота — Коэффициент, определяющий размер лота при усреднении. |
| StopLoss_Av | Стоп-лосс усреднения — Значение стоп-лосса в пунктах для усреднённых позиций (0 — без стоп-лосса). |
| TakeProfit_Av | Тейк-профит усреднения — Значение тейк-профита в пунктах для усреднённых позиций. |
| Close_and_TRL | Закрытие с трейлингом — Переключатель, определяющий, закрывать ли позицию с фиксацией прибыли или применять трейлинг при достижении целевого уровня. |
| TRL | Уровень трейлинга — Числовой параметр, задающий уровень трейлинга для позиций с усреднением. |
| MagNum_Av | Магический номер усреднения — Магический номер для позиций, открытых в режиме усреднения. |
| clCloseBuy | Цвет закрытия BUY — Цвет отображения графики при закрытии BUY-позиции. |
| clCloseSell | Цвет закрытия SELL — Цвет отображения графики при закрытии SELL-позиции. |
| NameCloseSound | Звук закрытия — Путь к звуковому файлу, воспроизводимому при закрытии позиции. |
| _____Lock_____ | Параметр блокировки — Текстовый параметр настройки группы блокировки. |
| Lock | Блокировка — Включает или отключает блокировку — открытие противоположной позиции при усреднении. |
| Lock_TRL | Трейлинг блокировки — Переключатель, активирующий трейлинг для заблокированных позиций. |
| StopLoss_Lock | Стоп-лосс блокировки — Значение стоп-лосса в пунктах для заблокированных позиций (0 — без стоп-лосса). |
| TakeProfit_Lock | Тейк-профит блокировки — Значение тейк-профита в пунктах для заблокированных позиций. |
| MagicNumber_Lock | Магический номер блокировки — Магический номер для заблокированных позиций. |
Поиск по коду файла
/*
Generated by EX4-TO-MQ4 decompiler V4.0.224.1 []
Website:
E-mail : p******m*@gmail.com
*/
#include <stdlib.mqh>
extern string __1__ = "ok";
extern int TF = 0;
extern int pips = 10;
extern string ____2___ = "ok";
extern double Lots = 0.01;
extern int StopLoss = 0;
extern int TakeProfit = 0;
extern int MagicNumber = 1;
extern int Slippage = 3;
extern int NumberOfTry = 5;
extern bool MarketWatch = FALSE;
extern string _____????_______ = "ok";
extern bool Traling = TRUE;
extern bool TSProfitOnly = TRUE;
extern int TStop.Buy = 30;
extern int TStop.Sell = 40;
extern int TrailingStep = 10;
extern string _____Averag_____ = "_____";
extern bool AVERAGES = TRUE;
extern int Averag = 25;
extern double koef_averag = 1.0;
extern int alfa_lot = 2;
extern double koef_lot = 2.0;
extern double StopLoss_Av = 0.0;
extern int TakeProfit_Av = 10;
extern bool Close_and_TRL = FALSE;
extern int TRL = 5;
extern int MagNum_Av = 3;
extern color clCloseBuy = Aqua;
extern color clCloseSell = Tomato;
extern string NameCloseSound = "ok.wav";
extern string _____Lock_____ = "______????????????????????_____";
extern bool Lock = TRUE;
extern bool Lock_TRL = FALSE;
extern int StopLoss_Lock = 0;
extern int TakeProfit_Lock = 10;
extern int MagicNumber_Lock = 3;
int gi_264 = 0;
bool gi_268 = TRUE;
int gi_272 = 15128749;
int gi_276 = 8421616;
bool gi_280 = TRUE;
string gs_284 = "expert.wav";
bool gi_292 = FALSE;
bool gi_296 = FALSE;
string gs_300 = "";
int g_datetime_308 = 0;
int g_time_312 = 0;
int init() {
// код доступен только после оплаты
}
int deinit() {
if (!IsTesting()) Comment("");
return (0);
}
int start() {
// код доступен только после оплаты
}
int fNewBar() {
if (g_datetime_308 != iTime(Symbol(), TF, 0)) {
if (g_datetime_308 == 0) {
g_datetime_308 = iTime(Symbol(), TF, 0);
return (0);
}
g_datetime_308 = iTime(Symbol(), TF, 0);
return (1);
}
return (0);
}
bool ExistPositions(string as_0 = "", int a_cmd_8 = -1, int a_magic_12 = -1, int ai_16 = 0) {
int l_ord_total_24 = OrdersTotal();
if (as_0 == "0") as_0 = Symbol();
for (int l_pos_20 = 0; l_pos_20 < l_ord_total_24; l_pos_20++) {
if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol() == as_0 || as_0 == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (a_cmd_8 < OP_BUY || OrderType() == a_cmd_8) {
if (a_magic_12 < 0 || OrderMagicNumber() == a_magic_12)
if (ai_16 <= OrderOpenTime()) return (TRUE);
}
}
}
}
}
return (FALSE);
}
void Message(string as_0) {
Comment(as_0);
if (StringLen(as_0) > 0) Print(as_0);
}
void OpenPosition(string a_symbol_0, int a_cmd_8, double a_lots_12, double a_price_20 = 0.0, double a_price_28 = 0.0, int a_magic_36 = 0, string as_40 = "") {
color l_color_48;
int l_datetime_52;
double l_price_56;
double l_ask_64;
double l_bid_72;
int l_digits_80;
int l_error_84;
int l_ticket_92 = 0;
string l_comment_96 = as_40 + " /" + WindowExpertName() + " " + GetNameTF(Period());
if (a_symbol_0 == "" || a_symbol_0 == "0") a_symbol_0 = Symbol();
if (a_cmd_8 == OP_BUY) l_color_48 = gi_272;
else l_color_48 = gi_276;
for (int li_88 = 1; li_88 <= NumberOfTry; li_88++) {
if (!IsTesting() && !IsExpertEnabled() || IsStopped()) {
Print("ok");
break;
}
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
l_digits_80 = MarketInfo(a_symbol_0, MODE_DIGITS);
l_ask_64 = MarketInfo(a_symbol_0, MODE_ASK);
l_bid_72 = MarketInfo(a_symbol_0, MODE_BID);
if (a_cmd_8 == OP_BUY) l_price_56 = l_ask_64;
else l_price_56 = l_bid_72;
l_price_56 = NormalizeDouble(l_price_56, l_digits_80);
l_datetime_52 = TimeCurrent();
if (MarketWatch) l_ticket_92 = OrderSend(a_symbol_0, a_cmd_8, a_lots_12, l_price_56, Slippage, 0, 0, l_comment_96, a_magic_36, 0, l_color_48);
else l_ticket_92 = OrderSend(a_symbol_0, a_cmd_8, a_lots_12, l_price_56, Slippage, a_price_20, a_price_28, l_comment_96, a_magic_36, 0, l_color_48);
if (l_ticket_92 > 0) {
if (!(gi_280)) break;
PlaySound(gs_284);
break;
}
l_error_84 = GetLastError();
if (l_ask_64 == 0.0 && l_bid_72 == 0.0) Message("???????????????? ???????????????????" + a_symbol_0);
Print("Error(", l_error_84, ") opening position: ", ErrorDescription(l_error_84), ", try ", li_88);
Print("Ask=", l_ask_64, " Bid=", l_bid_72, " sy=", a_symbol_0, " ll=", a_lots_12, " op=", GetNameOP(a_cmd_8), " pp=", l_price_56, " sl=", a_price_20, " tp=", a_price_28, " mn=", a_magic_36);
if (l_error_84 == 2/* COMMON_ERROR */ || l_error_84 == 64/* ACCOUNT_DISABLED */ || l_error_84 == 65/* INVALID_ACCOUNT */ || l_error_84 == 133/* TRADE_DISABLED */) {
gi_292 = TRUE;
break;
}
if (l_error_84 == 4/* SERVER_BUSY */ || l_error_84 == 131/* INVALID_TRADE_VOLUME */ || l_error_84 == 132/* MARKET_CLOSED */) {
Sleep(300000);
break;
}
if (l_error_84 == 128/* TRADE_TIMEOUT */ || l_error_84 == 142 || l_error_84 == 143) {
Sleep(66666.0);
if (ExistPositions(a_symbol_0, a_cmd_8, a_magic_36, l_datetime_52)) {
if (!(gi_280)) break;
PlaySound(gs_284);
break;
}
}
if (l_error_84 == 140/* LONG_POSITIONS_ONLY_ALLOWED */ || l_error_84 == 148/* ERR_TRADE_TOO_MANY_ORDERS */ || l_error_84 == 4110/* LONGS__NOT_ALLOWED */ || l_error_84 == 4111/* SHORTS_NOT_ALLOWED */) break;
if (l_error_84 == 141/* TOO_MANY_REQUESTS */) Sleep(100000);
if (l_error_84 == 145/* TRADE_MODIFY_DENIED */) Sleep(17000);
if (l_error_84 == 146/* TRADE_CONTEXT_BUSY */) while (IsTradeContextBusy()) Sleep(11000);
if (l_error_84 != 135/* PRICE_CHANGED */) Sleep(7700.0);
}
if (MarketWatch && l_ticket_92 > 0 && a_price_20 > 0.0 || a_price_28 > 0.0)
if (OrderSelect(l_ticket_92, SELECT_BY_TICKET)) ModifyOrder(-1, a_price_20, a_price_28);
}
string GetNameTF(int a_timeframe_0 = 0) {
if (a_timeframe_0 == 0) a_timeframe_0 = Period();
switch (a_timeframe_0) {
case PERIOD_M1:
return ("M1");
case PERIOПоказано первые 50% кода (символов: 17339)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.