logical scalper v.1.892.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «logical scalper v.1.892.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Программный товар представляет собой торгового советника для платформы MetaTrader 4, написанного на языке MQL4. Советник предназначен для автоматического анализа ценовых данных и технических индикаторов, а также для выполнения торговых операций на рынке.
В основе работы лежит комбинация нескольких технических инструментов: скользящие средние (iMA), полосы Энвелопс (iEnvelopes), осциллятор OsMA (iOsMA) и пользовательский индикатор дивергенции. Советник оценивает одновременные сигналы этих индикаторов перед открытием позиции.
Торговые операции выполняются через стандартные функции торгового API MQL4 (OrderSend, OrderModify). Поддерживается управление позициями с использованием фиксированного стоп-лосса, тейк-профита и трейлинг-стопа. Также реализована функция оптимизации объёма позиции на основе свободных средств на счёте.
Советник содержит предустановки параметров для различных валютных пар и включает проверку допустимого торгового времени. Логика работы управляется рядом внутренних переключателей, позволяющих включать или отключать отдельные модули анализа.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Уровень тейк-профита в пунктах |
| StopLoss | Стоп-лосс — Уровень стоп-лосса в пунктах |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах |
| Lots | Объём лота — Фиксированный объём торговой позиции при отключённом управлении риском |
| MM | Управление риском — Переключатель автоматического расчёта объёма лота на основе свободных средств |
| MaximumRisk | Максимальный риск — Максимальная доля свободных средств на счёте, используемая для расчёта объёма |
| DecreaseFactor | Фактор уменьшения — Коэффициент уменьшения объёма лота при наличии убыточных сделок в истории |
| MAPeriod | Период MA — Период расчёта скользящей средней |
| MABars | Смещение MA — Количество баров для сравнения значений скользящей средней |
| Percent | Процент Энвелопс — Ширина полос Энвелопс в виде процентного значения |
| EnvPer | Период Энвелопс — Период расчёта полос Энвелопс |
| OscPer1 | Период OsMA (быстрый) — Быстрый период осциллятора OsMA |
| OscPer2 | Период OsMA (медленный) — Медленный период осциллятора OsMA |
| OscSigPer | Период сигнала OsMA — Период сигнальной линии осциллятора OsMA |
| FT_Per | Период дивергенции 1 — Первый период для расчёта индикатора дивергенции |
| SL_Per | Период дивергенции 2 — Второй период для расчёта индикатора дивергенции |
| TradeRatio | Коэффициент торговли — Пороговое значение дивергенции для входа в сделку |
| TradeOffRatio | Коэффициент отката — Верхний порог дивергенции для допустимого входа в сделку |
| Comm | Комментарий — Текстовый комментарий, присваиваемый торговым ордерам |
Поиск по коду файла
extern int TakeProfit = 44;
extern int StopLoss = 80;
extern int TrailingStop = 40;
bool gi_88 = FALSE;
bool gi_92 = FALSE;
extern double Lots = 1.0;
extern bool MM = TRUE;
extern double MaximumRisk = 10.0;
extern double DecreaseFactor = 2.0;
bool gi_124 = TRUE;
bool gi_128 = TRUE;
bool gi_132 = TRUE;
bool gi_136 = TRUE;
bool gi_140 = TRUE;
bool gi_144 = TRUE;
extern int MAPeriod = 3;
extern int MABars = 14;
extern double Percent = 0.0026;
extern int EnvPer = 6;
extern int OscPer1 = 23;
extern int OscPer2 = 17;
extern double OscSigPer = 15.0;
int gi_184 = 0;
int gi_188 = 24;
int gi_192 = 0;
int gi_196 = 0;
int gi_200 = 0;
int gi_204 = 0;
int gi_208 = 0;
int gi_212 = 0;
extern int FT_Per = 25;
extern int SL_Per = 36;
int gi_224 = 1;
int gi_228 = 1;
extern double TradeRatio = 0.00042;
extern double TradeOffRatio = 0.05;
extern string Comm = "Logical Scalper";
int g_magic_256;
int gi_unused_260;
double setpoint() {
double ld_ret_0;
if (Digits == 3) ld_ret_0 = 0.01;
else
if (Digits == 5) ld_ret_0 = 0.0001;
return (ld_ret_0);
}
int init() {
// код доступен только после оплаты
}
int CalculateCurrentOrders(string as_unused_0) {
int l_count_8 = 0;
int l_count_12 = 0;
for (int l_pos_16 = 0; l_pos_16 < OrdersTotal(); l_pos_16++) {
if (OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES) == FALSE) break;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == g_magic_256) {
if (OrderType() == OP_BUY) l_count_8++;
if (OrderType() == OP_SELL) l_count_12++;
}
}
if (l_count_8 > 0) return (l_count_8);
return (-l_count_12);
}
double LotsOptimized() {
double ld_ret_0 = Lots;
int l_hist_total_8 = OrdersHistoryTotal();
int l_count_12 = 0;
ld_ret_0 = NormalizeDouble(0.00001 * (AccountFreeMargin() * MaximumRisk), 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) ld_ret_0 = NormalizeDouble(ld_ret_0 - ld_ret_0 * l_count_12 / DecreaseFactor, 1);
}
if (ld_ret_0 < 0.1) ld_ret_0 = 0.1;
if (MM == FALSE) ld_ret_0 = Lots;
if (gi_92 == TRUE) ld_ret_0 /= 10.0;
return (ld_ret_0);
}
void CheckForOpen() {
int l_ticket_0;
int l_hour_4;
int li_8;
if (gi_88 == TRUE) {
if (Symbol() == "USDJPY" || Symbol() == "USDJPYm") {
MAPeriod = 2;
MABars = 18;
Percent = 0.0032;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 5;
OscPer2 = 22;
OscSigPer = 2;
EnvPer = 2;
FT_Per = 25;
SL_Per = 15;
TradeRatio = 0.0029;
TradeOffRatio = 0.024;
}
if (Symbol() == "EURJPY" || Symbol() == "EURJPYm") {
MAPeriod = 18;
MABars = 10;
Percent = 0.018;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 5;
OscPer2 = 30;
OscSigPer = 5;
EnvPer = 6;
FT_Per = 30;
SL_Per = 16;
TradeRatio = 0.0052;
TradeOffRatio = 0.027;
}
if (Symbol() == "GBPJPY" || Symbol() == "GBPJPYm") {
MAPeriod = 8;
MABars = 12;
Percent = 0.0072;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 5;
OscPer2 = 36;
OscSigPer = 10;
EnvPer = 2;
FT_Per = 17;
SL_Per = 28;
TradeRatio = 0.0034;
TradeOffRatio = 0.063;
}
if (Symbol() == "CHFJPY" || Symbol() == "CHFJPYm") {
MAPeriod = 30;
MABars = 4;
Percent = 0.012;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 7;
OscPer2 = 45;
OscSigPer = 8;
EnvPer = 20;
FT_Per = 52;
SL_Per = 29;
TradeRatio = 0.0016;
TradeOffRatio = 0.034;
}
if (Symbol() == "EURUSD" || Symbol() == "EURUSDm") {
MAPeriod = 11;
MABars = 50;
Percent = 0.001;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 8;
OscPer2 = 40;
OscSigPer = 10;
EnvPer = 20;
FT_Per = 4;
SL_Per = 15;
TradeRatio = 0.0003;
TradeOffRatio = 0.006;
}
if (Symbol() == "GBPUSD" || Symbol() == "GBPUSDm") {
MAPeriod = 3;
MABars = 14;
Percent = 0.0023;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 23;
OscPer2 = 17;
OscSigPer = 15;
EnvPer = 6;
FT_Per = 25;
SL_Per = 37;
TradeRatio = 0.00042;
TradeOffRatio = 0.05;
}
if (Symbol() == "USDCHF" || Symbol() == "USDCHFm") {
MAPeriod = 5;
MABars = 9;
Percent = 0.0056;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 5;
OscPer2 = 12;
OscSigPer = 11;
EnvPer = 10;
FT_Per = 5;
SL_Per = 20;
TradeRatio = 0.00022;
TradeOffRatio = 0.0015;
}
if (Symbol() == "GBPCHF" || Symbol() == "GBPCHFm") {
MAPeriod = 10;
MABars = 20;
Percent = 0.034;
TakeProfit = 42;
StopLoss = 84;
TrailingStop = 0;
OscPer1 = 9;
OscPer2 = 30;
OscSigPer = 4;
EnvPer = 7;
FT_Per = 25;
SL_Per = 50;
TradeRatio = 0.001;
TradeOffRatio = 0.03;
}
if (Symbol() == "AUDUSD" || Symbol() == "AUDUSDm") {
MAPeriod = 12;
MABars = 2;
Percent = 0.008;
TakeProfit = 24;
StopLoss = 46;Показано первые 50% кода (символов: 8385)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.