SMC
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc_shell.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для платформы MetaTrader 4, написанный на языке MQL4. Анализирует ценовые данные с помощью трёх скользящих средних (короткой, средней и длинной) для определения направления тренда. На основе выявленного тренда советник открывает позиции в лонг или шорт направлении с использованием торговых операций MetaTrader.
Советник рассчитывает размер позиции с учётом базового лота и множителя, а также контролирует риски относительно свободного маржи. Отображает текущий тренд, торговые значения и параметры системы на графике с помощью графических объектов и комментариев.
При открытии ордеров используются стандартные параметры исполнения MetaTrader 4. Советник предоставляет уведомления о событиях через печать в журнал и отправку электронных писем.
Настройки программы
| Настройка | Описание |
|---|---|
| Lots | Лот — Базовый размер позиции для открытия ордера. |
| LotsMultiplier | Множитель лота — Множитель, применяемый к базовому лоту при совпадении направления сделки с текущим трендом. |
| SMALength | Длина краткосрочной SMA — Период короткой скользящей средней, используемой для определения тренда. |
| MMALength | Длина среднесрочной SMA — Период средней скользящей средней, используемой для определения тренда. |
| LMALength | Длина долгосрочной SMA — Период длинной скользящей средней, используемой для определения тренда. |
| ProtectProfit | Защита прибыли — Параметр, объявленный в настройках, но не используемый в активной логике советника. |
| TrailingStop | Трейлинг-стоп — Расстояние для трейлинг-стопа в пунктах. |
| TakeProfit | Тейк-профит — Расстояние до уровня фиксации прибыли в пунктах, задаваемое при открытии ордера. |
| RiskPercent | Процент риска — Процент свободного маржи, используемый для расчёта максимального допустимого риска на сделку. |
Поиск по коду файла
extern double Lots = 0.1;
extern int LotsMultiplier=2;
extern int SMALength=21;
extern int MMALength=34;
extern int LMALength=55;
extern int ProtectProfit = 5;
extern int TrailingStop = 5;
extern int TakeProfit = 25;
extern double RiskPercent = 1;
string LastOrder;
string Trend;
datetime BarTime;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
double SL,TP,Spread, ATR, MinDist,MaxRisk;
double VSMAP0,VSMAP1,SMAP1,MMAP1,LMAP1,VLMAP1,VSMAP1Low,VSMAP1High;
string MaxRiskStr;
bool CloseLongs,CloseShorts;
bool Buy,Sell;
int total,ticket,err,tmp,cnt;
int NumberofPositions;
int BuyLots;
if(Bars<100){Print("bars less than 100"); return(0); }
MinDist=(MarketInfo(Symbol(),MODE_STOPLEVEL)*Point);
Spread=(Ask-Bid);
MaxRisk=(AccountFreeMargin()*RiskPercent/100)*Point;
MaxRiskStr=DoubleToStr(MaxRisk,4);
SMAP1 = iMA(NULL,0,SMALength,0,MODE_SMA,PRICE_CLOSE,0);
MMAP1 = iMA(NULL,0,MMALength,0,MODE_SMA,PRICE_CLOSE,0);
LMAP1 = iMA(NULL,0,LMALength,0,MODE_SMA,PRICE_CLOSE,0);
tmp=0;
err=0;
tmp = ObjectGet("X"+Time[0],6);
err = GetLastError();
if(err!=0)
{ObjectCreate("X"+Time[0],22,0,Time[0],High[1]);
ObjectSet("X"+Time[0],14,2);
ObjectSetText("X"+Time[0],TimeToStr(Time[0]));
ObjectSet("X"+Time[0],6,Gray);
}
ObjectDelete("X"+Time[3]);
tmp=0;
tmp=ObjectGet("Trend",6);
if(SMAP1 > MMAP1 && MMAP1 > LMAP1 && tmp != Lime)
{Trend="UP";
ObjectDelete("Trend");
ObjectCreate("Trend",22,1,Time[0],50);
ObjectSet("Trend",6,Lime);
ObjectSet("Trend",14,241);
}
if(SMAP1 < MMAP1 && MMAP1 < LMAP1 && tmp != Red)
{Trend="DOWN";
ObjectDelete("Trend");
ObjectCreate("Trend",22,1,Time[0],50);
ObjectSet("Trend",6,Red);
ObjectSet("Trend",14,242);
}
if(Trend=="UP" || Trend=="DOWN") Trend=Trend;
else
{Trend="NONE";
ObjectDelete("Trend");
ObjectCreate("Trend",22,1,Time[0],50);
ObjectSet("Trend",6,Yellow);
ObjectSet("Trend",14,240);
}
string Trading ="Trading OPEN";
Comment("SMC SHELL"," ",Trading," Long Term Trend (Stochastic with MAs) ",Trend," ",Hour()," ",Minute()," ",Seconds(),
"\n",
"TRADING VALUES",
"\n",
"Spread ", Spread," MinDist ",MinDist," Max Risk ",MaxRiskStr,
"\n",
"Ask/Bid ",Ask," ",Bid,
"\n",
"SYSTEM PARAMETERS",
"\n",
"MA settings Short ",SMALength," Medium ",MMALength," Long ",LMALength,
"\n",
"Trailing Stop ",TrailingStop,
"\n",
"Lots Multiplier ",LotsMultiplier,
"\n",
);
BuyLots = Lots;
Buy = false;
Sell =false;
tmp=0;
tmp=ObjectGet("X"+Time[0],6); //add in tmp=gray check
if(tmp==Gray)
{
if(Trend != "DOWN") //this is a placeholder for the entry LONG conditions
{
Buy=true;
if(Trend == "UP") BuyLots = Lots*LotsMultiplier;
LastOrder = " Buy on Failure 1";
ObjectSet("X"+Time[0],6,Pink);
SL=Low[Lowest(NULL,0,MODE_LOW,2,1)]-(2*Point); //modify appropriatley
TP=Ask+(10*Point);
}
ifПоказано первые 50% кода (символов: 4959)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.