Article-14782-MQL5-Trailing.../TrailingBySAR_03.mq5
2026-03-22 17:00:58 +07:00

60 行
5.1 KiB
MQL5

//+------------------------------------------------------------------+
//| TrailingBySAR_03.mq5 |
//| Copyright 2024, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
#define SAR_DATA_INDEX 1 // бар, с которого получаем данные Parabolic SAR
#include "TrailingsFunc.mqh"
//--- input parameters
input ENUM_TIMEFRAMES InpTimeframeSAR = PERIOD_CURRENT; // Parabolic SAR Timeframe
input double InpStepSAR = 0.02; // Parabolic SAR Step
input double InpMaximumSAR = 0.2; // Parabolic SAR Maximum
input long InpMagic = 123; // Expert Magic Number
//--- global variables
int ExtHandleSAR=INVALID_HANDLE; // хэндл Parabolic SAR
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- создаём хендл Parabolic SAR
ExtHandleSAR=CreateSAR(Symbol(), InpTimeframeSAR, InpStepSAR, InpMaximumSAR);
//--- при ошибке создания индикатора выходим с ошибкой из OnInit
if(ExtHandleSAR==INVALID_HANDLE)
return(INIT_FAILED);
//--- успешно
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//--- если не новый бар - уходим из обработчика
if(!IsNewBar())
return;
//--- тралим стопы позиций по Parabolic SAR
TrailingByDataInd(ExtHandleSAR, SAR_DATA_INDEX, InpMagic);
}
//+------------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction& trans,
const MqlTradeRequest& request,
const MqlTradeResult& result)
{
if(trans.type==TRADE_TRANSACTION_DEAL_ADD)
TrailingByDataInd(ExtHandleSAR, SAR_DATA_INDEX, InpMagic);
}
//+------------------------------------------------------------------+