Исходный код · ID 3985
smcj.f.mq5
Похожие материалы по тегам
doubletap3d.mq5MetaTrader 5 · 1 общих теговday type radar for tradingview.txtTradingView · 1 общих теговea robofibo source v.11.2.mq4MetaTrader 4 · 1 общих теговzuluquantsupertrend_pro_elite_v6.mq5MetaTrader 5 · 1 общих теговtraders_dynamic_cb_ssa_norm_index_alerts+arrows1@lifeindreamsworld.mq4MetaTrader 4 · 1 общих теговtrader-criptom4n fixed eror.txtTradingView · 1 общих тегов
Вы автор или правообладатель?
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smcj.f.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Поиск по коду файла
#property version "2.00"
#property strict
#include <Trade\Trade.mqh>
CTrade trade;
#define EXPIRY_DATE D'2026.03.10'
input group "=== EA SETTINGS ==="
input int MagicNumber = 200001; // Magic Number (change for each pair)
input group "=== POSITIONS ==="
input double Lot_P1 = 0.01;
input double Lot_P2 = 0.01;
input double Lot_P3 = 0.03;
input double Lot_P4 = 0.03;
input group "=== TREND SYSTEM ==="
input double Sensitivity = 1.0;
input int ATR_Period = 10;
input int Factor = 7;
input group "=== MOVING AVERAGES ==="
input int MA_Fast = 8;
input int MA_Slow = 9;
input group "=== RISK ==="
input double Risk = 1.0;
input int ATR_SL = 14;
input double TP1 = 1.0;
input double TP2 = 2.0;
input double TP3 = 3.0;
input group "=== TRAILING STOP ==="
input bool UseTrailing = true;
input int TrailActivationPips = 20;
input int InstantActivationPips = 40;
input int TrailDistance = 5;
input int TrailStep = 2;
input group "=== FAST EXIT ==="
input bool UseFastExit = true;
input int MaxRetracementPips = 10;
input group "=== DISPLAY ==="
input bool ShowPanel = true;
double prevTrend = 0, currTrend = 0;
int trendDir = 0;
double ma1 = 0, ma2 = 0;
double prevClose = 0;
datetime lastTime = 0;
int trades = 0, wins = 0, losses = 0;
string action = "Waiting";
bool expired = false;
static double sPrevUpper = 0;
static double sPrevLower = 0;
struct PositionData
{
double bestPrice;
bool trailingActive;
};
PositionData posData[100];
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
Comment("");
Print("SMC Stopped | Trades: ", trades, " | Wins: ", wins, " | Losses: ", losses);
}
void OnTick()
{
// код доступен только после оплаты
}
bool UpdateTrend()
{
double atr[];
ArraySetAsSeries(atr, true);
int h = iATR(_Symbol, PERIOD_CURRENT, ATR_Period);
if(h == INVALID_HANDLE) return false;
if(CopyBuffer(h, 0, 0, 3, atr) < 3) return false;
double atrVal = atr[0];
double mult = Sensitivity * Factor;
MqlRates r[];
ArraySetAsSeries(r, true);
if(CopyRates(_Symbol, PERIOD_CURRENT, 0, 3, r) < 3) return false;
double c = r[0].close;
double pc = r[1].close;
double upper = c + mult * atrVal;
double lower = c - mult * atrVal;
if(sPrevLower == 0) sPrevLower = lower;
if(sPrevUpper == 0) sPrevUpper = upper;
lower = (lower > sPrevLower || pc < sPrevLower) ? lower : sPrevLower;
upper = (upper < sPrevUpper || pc > sPrevUpper) ? upper : sPrevUpper;
prevTrend = currTrend;
if(prevTrend == sPrevUpper)
trendDir = c > upper ? -1 : 1;
else
trendDir = c < lower ? 1 : -1;
currTrend = (trendDir == -1) ? lower : upper;
sPrevUpper = upper;
sPrevLower = lower;
return true;
}
bool UpdateMAs()
{
double m1[], m2[];
ArraySetAsSeries(m1, true);
ArraySetAsSeries(m2, true);
int h1 = iMA(_Symbol, PERIOD_CURRENT, MA_Fast, 0, MODE_SMA, PRICE_CLOSE);
int h2 = iMA(_Symbol, PERIOD_CURRENT, MA_Slow, 0, MODE_SMA, PRICE_CLOSE);
if(h1 == INVALID_HANDLE || h2 == INVALID_HANDLE) return false;
if(CopyBuffer(h1, 0, 0, 1, m1) < 1) return false;
if(CopyBuffer(h2, 0, 0, 1, m2) < 1) return false;
ma1 = m1[0];
ma2 = m2[0];
return true;
}
void CheckSignals(double close)
{
datetime t = iTime(_Symbol, PERIOD_CURRENT, 0);
if(t == lastTime) return;
bool buy = (close > currTrend && prevClose <= prevTrend);
bool sell = (close < currTrend && prevClose >= prevTrend);
if(buy)
{
Print("BUY | MA: ", ma1 >= ma2 ? "OK" : "NO");
if(Open(ORDER_TYPE_BUY))
{
action = "BUY";
lastTime = t;
}
}
else if(sell)
{
Print("SELL | MA: ", ma1 <= ma2 ? "OK" : "NO");
if(Open(ORDER_TYPE_SELL))
{
action = "SELL";
lastTime = t;
}
}
}
bool Open(ENUM_ORDER_TYPE type)
{
double p = (type == ORDER_TYPE_BUY) ?
SymbolInfoDouble(_Symbol, SYMBOL_ASK) :
SymbolInfoDouble(_Symbol, SYMBOL_BID);
int d = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);
double atr[];
ArraySetAsSeries(atr, true);
int h = iATR(_Symbol, PERIOD_CURRENT, ATR_SL);
if(h == INVALID_HANDLE) return false;
if(CopyBuffer(h, 0, 0, 1, atr) < 1) return false;
double band = atr[0] * Risk;
double sl, t1, t2, t3;
if(type == ORDER_TYPE_BUY)
{
sl = NormalizeDouble(p - band, d);
double dist = p - sl;
t1 = NormalizeDouble(p + dist * TP1, d);
t2 = NormalizeПоказано первые 50% кода (символов: 7868)
Что вы получите после оплаты
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? Адрес передаётся вместе с заказом в магазин и сохраняется для связи заказа с оплатой. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.
Стоимость полного кода: 787 ₽ (≈ $9.29 USDT)