Escort_Trend_Strategy
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «escort_trend_strategy_m0002.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Escort_Trend_Strategy — торговый советник для платформы MetaTrader 4, написанный на языке MQL4. Советник анализирует ценовые данные с помощью трёх технических индикаторов: IMA (линейно-взвешенное скользящее среднее), MACD и CCI. Торговые сигналы формируются поэтапно: сначала определяется направление тренда по IMA, затем подтверждается пересечением линий MACD, и дополнительно проверяется пороговое значение CCI.
Советник поддерживает управление рисками: расчёт объёма позиции на основе процента от депозита и заданного стоп-лосса, а также антимартингейл-расчёт лотов для серии сделок. Доступны функции трейлинг-стопа и перевода стоп-лосса в безубыток. При тестировании возможно отображение информационной таблицы с текущими сигналами и параметрами.
Советник обрабатывает события OnTick, использует торговые операции MetaTrader (OrderSend, OrderModify) и отслеживает ордера по символу и магическому числу для корректной работы с несколькими советниками одновременно.
Настройки программы
| Настройка | Описание |
|---|---|
| s1 | Риск MM и параметры ордеров — Группа настроек управления рисками и параметров ордеров. |
| lot size when disconnecting MM (MM_Lots) | Лот MM — Размер лота при отключённом управлении рисками. |
| 0 MM disabled enabled 1 (MM_Mode) | Режим MM — Режим управления рисками: 0 — отключено, 1 — включено. |
| percentage of the risk position of the deposit and stoploss (RiskPercent) | Процент риска — Процент риска позиции от депозита относительно стоп-лосса. |
| Number of decimal places (LotsDecimal) | Число знаков лота — Количество знаков после запятой в размере лота. |
| koefitsient increase lot series (LotExponent) | Коэффициент увеличения лотов — Коэффициент увеличения лотов в серии сделок. |
| the maximum number of warrants in Series (MaxTrade) | Максимум сделок в серии — Максимальное количество сделок в серии. |
| magic number (helps distinguish its adviser on foreign orders) (MagicNumber) | Магическое число — Магическое число для идентификации ордеров советника. |
| s2 | Торговые опции — Группа настроек торговых параметров. |
| takeprofit (TakeProfit) | Тейк-профит — Уровень тейк-профита в пунктах. |
| Stop Loss (StopLoss) | Стоп-лосс — Уровень стоп-лосса в пунктах. |
| the level of the beginning of work bezubytka treylingstopa (TrailStop) | Начало трейлинг-стопа — Уровень начала работы трейлинг-стопа. |
| step treylingstopa (TrailStep) | Шаг трейлинг-стопа — Шаг трейлинг-стопа. |
| Use treylingstopa (0 - not used) (Trailing) | Трейлинг-стоп — Использование трейлинг-стопа: 0 — не используется, 1 — используется. |
| We translate stoploss to breakeven and then Tralee (0 - immediately Tralee) (Breakeven) | Безубыток — Перевод стоп-лосса в безубыток и последующий трейлинг (0 — немедленный трейлинг). |
| s3 | Сигналы индикаторов — Группа настроек индикаторных сигналов. |
| Max bar graph when the signals should coincide (PorogBar) | Порог по барам — Максимальное количество баров, за которое сигналы должны совпасть. |
| The threshold of the entrance to the position of CCI (PorogCCI) | Порог CCI — Пороговое значение CCI для входа в позицию. |
| MA period (FastIMA) | Период быстрой IMA — Период быстрой скользящей средней IMA. |
| MA period (SlowIMA) | Период медленной IMA — Период медленной скользящей средней IMA. |
| CCI period (PerICCI) | Период CCI — Период индикатора CCI. |
| MACD period (FastMACD) | Период быстрой MACD — Период быстрой линии MACD. |
| MACD period (SlowMACD) | Период медленной MACD — Период медленной линии MACD. |
| display information table (ShowTableOnTesting) | Таблица при тестировании — Отображение информационной таблицы при тестировании. |
Поиск по коду файла
#property version "1.0"
#property strict
extern string s1="Risk MM and parameters orders";
extern double MM_Lots = 0.1; // lot size when disconnecting MM
extern int MM_Mode = 1; // 0 MM disabled enabled 1
extern double RiskPercent = 1; // percentage of the risk position of the deposit and stoploss
extern int LotsDecimal = 1; // Number of decimal places
extern double LotExponent = 1.0; // koefitsient increase lot series
extern int MaxTrade = 0; // the maximum number of warrants in Series
extern int MagicNumber = 149101; // magic number (helps distinguish its adviser on foreign orders)
extern string s2="Trading options";
extern double TakeProfit = 200; // takeprofit
extern double StopLoss = 55; // Stop Loss
extern double TrailStop = 35; // the level of the beginning of work bezubytka treylingstopa
extern double TrailStep = 3; // step treylingstopa
extern int Trailing = 1; // Use treylingstopa (0 - not used)
extern int Breakeven = 1; // We translate stoploss to breakeven and then Tralee (0 - immediately Tralee)
extern string s3="Signals Indicators";
extern int PorogBar = 3; // Max bar graph when the signals should coincide
extern double PorogCCI = 100; // The threshold of the entrance to the position of CCI
extern int FastIMA = 8; // MA period
extern int SlowIMA = 18; // MA period
extern int PerICCI = 14; // CCI period
extern int FastMACD = 8; // MACD period
extern int SlowMACD = 18; // MACD period
extern bool ShowTableOnTesting=TRUE; // display information table
bool Sg_MACD_Buy= False,Sg_MACD_Sell = False;
bool Sg_IMA_Buy = False,Sg_IMA_Sell = False;
bool Sg_ICCI_Buy,Sg_ICCI_Sell;
bool OrderBuy=False,OrderSell=False;
double StopLevel,Spread;
double SignalFastiMA,SignalSlowiMA,SignalCCI;
double MacdCurr,MacdPrev,SignalCurr,SignalPrev;
double Lots,TP,SL;
double MaxLots,MinLots,LotStep,LotOrder;
double PunktSize;
int Slip=3.0,LotCount=0,NumerBar=0;
int total,ticket;
datetime timeprev=0;
string s="Escort_TS_m0002 : ";
int OnInit()
{
// код доступен только после оплаты
}
void OnDeinit(const int reason)
{
ObjectsDeleteAll();
}
void OnTick()
{
// код доступен только после оплаты
}
if(MM_Mode==0 || StopLoss==0) Lots=MM_Lots;
else
{
Lots=NormalizeDouble((AccountBalance()*RiskPercent/100.0)/(PunktSize*StopLoss),LotsDecimal);
if(Lots < MinLots) Lots = MinLots;
if(Lots > MaxLots) Lots = MaxLots;
}
Spread=MarketInfo(Symbol(),MODE_SPREAD)*Point;
StopLevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
Sg_ICCI_Buy = FALSE;
Sg_ICCI_Sell = FALSE;
total=CountTrades();
if(total==0)
{
MacdCurr = iMACD(NULL,0,FastMACD,SlowMACD,9,PRICE_TYPICAL,MODE_MAIN,0);
MacdPrev = iMACD(NULL,0,FastMACD,SlowMACD,9,PRICE_TYPICAL,MODE_MAIN,1);
SignalFastiMA = iMA(Symbol(),NULL,FastIMA,0,MODE_LWMA,PRICE_WEIGHTED,0);
SignalSlowiMA = iMA(Symbol(),NULL,SlowIMA,0,MODE_LWMA,PRICE_WEIGHTED,0);
SignalCCI=iCCI(Symbol(),NULL,PerICCI,PRICE_TYPICAL,0);
if(!Sg_IMA_Buy && (SignalSlowiMA<SignalFastiMA))
{ // Determine the input of IMA 1st step
Sg_IMA_Buy=TRUE;
Sg_IMA_Sell=FALSE;
timeprev = Time[0];
NumerBar = 1;
}
if(!Sg_IMA_Sell && (SignalSlowiMA>SignalFastiMA))
{
Sg_IMA_Sell= TRUE;
Sg_IMA_Buy = FALSE;
timeprev = Time[0];
NumerBar = 1;
}
if((timeprev!=Time[0]) && (Sg_IMA_Buy || Sg_ICCI_Sell))
{
timeprev=Time[0];
if(NumerBar!=0) NumerBar++;
}
if(NumerBar>PorogBar)
{
Sg_IMA_Sell= FALSE;
Sg_IMA_Buy = FALSE;
NumerBar=0;
}
if(!Sg_MACD_Buy && Sg_IMA_Buy && (MacdCurr > 0 && MacdPrev < 0)) Sg_MACD_Buy = TRUE;
if(!Sg_MACD_Sell && Sg_IMA_Sell && (MacdCurr < 0 && MacdPrev > 0)) Sg_MACD_Sell = TRUE;
if(SignalCCI>PorogCCI *1) Sg_ICCI_Buy=TRUE; // We determine the moment of entry of CCI Step 3
if(SignalCCI<PorogCCI*-1) Sg_ICCI_Sell=TRUE;
if(Sg_MACD_Buy && Sg_IMA_Buy && Sg_ICCI_Buy)
{ // Open order Buy
LotOrder=CalcOrdersLot(Lots,LotExponent,MaxLots,MaxTrade);
ticket=OrderSend(Symbol(),OP_BUY,LotOrder,Ask,Slip,0,0,s+IntegerToString(LotCount+1),MagicNumber,0,Blue);
if(ticket<0)
{
Print("Error: ",GetLastError());
return;
} else {
OrderBuy=TRUE;
Sg_MACD_Buy= FALSE;
Sg_IMA_Buy = FALSE;
NumerBar=0;
}
}
if(OrderBuy)
{
TP = NormalizeDouble(Bid + MathMax(TakeProfit, StopLevel)*Point, Digits);
SL = NormalizeDouble(Bid - MathMax(StopLoss, StopLevel)*Point, Digits);
if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0))
{
Print("Error: ",GetLastError());
return;
}
OrderBuy=FALSE;
Показано первые 50% кода (символов: 7891)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.