Trend Stoch EA (Clean + Safe)
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «stoch50_ema200_ea_full.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с помощью скользящей средней и стохастического индикатора, формируя торговые сигналы на основе пересечения стохастика среднего уровня и соотношения цены с трендом.
Советник поддерживает открытие позиций Buy и Sell с возможностью задания объёма лота, магического номера для идентификации ордеров, а также фиксированных уровней стоп-лосса и тейк-профита. При обнаружении противоположного сигнала текущая позиция закрывается и открывается новая.
Встроена функция трейлинг-стопа для управления защитными уровнями по открытым позициям. Также реализована логика закрытия позиций при развороте тренда. Все параметры управления рисками настраиваются пользователем через внешние переменные.
Настройки программы
| Настройка | Описание |
|---|---|
| MagicNumber | Магический номер — Магический номер для идентификации ордеров советника. |
| Lots | Объём лота — Объём лота для открытия позиции. |
| UseStopLoss | Использовать стоп-лосс — Включает или отключает использование стоп-лосса. |
| StopLossPips | Стоп-лосс (пункты) — Расстояние стоп-лосса в пунктах при активированной защите. |
| UseTakeProfit | Использовать тейк-профит — Включает или отключает использование тейк-профита. |
| TakeProfitPips | Тейк-профит (пункты) — Расстояние тейк-профита в пунктах при активированной защите. |
| UseTrailingStop | Использовать трейлинг-стоп — Включает или отключает трейлинг-стоп для открытых позиций. |
| TrailingStopPips | Трейлинг-стоп (пункты) — Расстояние трейлинг-стопа в пунктах для сдвига защитного уровня. |
Поиск по коду файла
#property strict
extern int MagicNumber = 777;
extern double Lots = 0.01;
extern bool UseStopLoss = false;
extern double StopLossPips = 300;
extern bool UseTakeProfit = false;
extern double TakeProfitPips = 600;
extern bool UseTrailingStop = false;
extern int TrailingStopPips = 150;
int Kperiod = 1000;
int Dperiod = 1;
int Slowing = 1;
bool PositionExists(int type)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==type)
return(true);
}
return(false);
}
void CloseOpposite(int type)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==type)
{
bool closed = OrderClose(OrderTicket(), OrderLots(),
(type==OP_BUY ? Bid : Ask),
5, clrRed);
if(!closed)
Print("OrderClose FAILED: ", GetLastError());
}
}
}
}
void PlaceOrder(int type)
{
double sl=0, tp=0;
if(type == OP_BUY)
{
if(UseStopLoss) sl = Bid - StopLossPips * Point;
if(UseTakeProfit) tp = Bid + TakeProfitPips * Point;
int ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 5, sl, tp,
"BuySignal", MagicNumber, 0, clrBlue);
if(ticket < 0)
Print("BUY Order failed: ", GetLastError());
}
if(type == OP_SELL)
{
if(UseStopLoss) sl = Ask + StopLossPips * Point;
if(UseTakeProfit) tp = Ask - TakeProfitPips * Point;
int ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 5, sl, tp,
"SellSignal", MagicNumber, 0, clrRed);
if(ticket < 0)
Print("SELL Order failed: ", GetLastError());
}
}
void ApplyTrailingStop(Показано первые 50% кода (символов: 2789)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.