MetaTrader 5 / Bibliotecas

Biblioteca de classes de perda final StopLoss para MQL5 - biblioteca para MetaTrader 5

95
(5)

Biblioteca de classes universal para a implementação de várias estratégias de StopLoss trailing em robôs de negociação. A biblioteca permite que você gerencie com flexibilidade o StopLoss de posições abertas por uma distância fixa do preço, bem como pelos valores de indicadores populares: Parabolic SAR, AMA, DEMA, FRAMA, MA, TEMA, VIDYA e nível arbitrário.

A biblioteca oferece uma maneira conveniente de adicionar vários tipos diferentes de StopLoss trailing ao seu Expert Advisor MQL5. Basta conectar a classe necessária, configurar os parâmetros e chamar o método Run() em OnTick().

Cabeçalho

#include <Trailings\Trailings.mqh>

Estrutura da classe

Classe Finalidade Exemplos de uso
CSimpleTrailing classe base do rastreamento de preço (rastreamento simples)
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CSimpleTrailing trail; //--- Em OnInit(): trail.SetSymbol(_Symbol); trail.SetMagicNumber(123); trail.SetStopLossOffset(100); trail.SetActive(true); //--- Em OnTick(): trail.Run();

CTrailingByInd classe base do trailing por indicador Usada por classes herdadas
CTrailingBySAR trailing pelo indicador Parabolic SAR
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingBySAR trailSAR; //--- Em OnInit(): trailSAR.Initialize(_Symbol, PERIOD_M15, 0.02, 0.2); trailSAR.SetActive(true); //--- Em OnTick(): trailSAR.Run();

CTrailingByAMA Trailing por Adaptive Moving Average (média móvel adaptável)
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByAMA trailAMA; //--- Em OnInit(): trailAMA.Initialize(_Symbol, PERIOD_H1, 9, 2, 30, 0, PRICE_CLOSE); trailAMA.SetActive(true); //--- Em OnTick(): trailAMA.Run();

CTrailingByDEMA Trailing por Média Móvel Exponencial Dupla
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByDEMA trailDEMA; //--- Em OnInit(): trailDEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailDEMA.SetActive(true); //--- Em OnTick(): trailDEMA.Run();

CTrailingByFRAMA Trailing por Fractal Adaptive Moving Average
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByFRAMA trailFRAMA; //--- Em OnInit(): trailFRAMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailFRAMA.SetActive(true); //--- Em OnTick(): trailFRAMA.Run();

CTrailingByMA Média móvel de arrasto
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByMA trailMA; //--- Em OnInit(): trailMA.Initialize(_Symbol, PERIOD_H1, 20, 0, MODE_EMA, PRICE_CLOSE); trailMA.SetActive(true); //--- Em OnTick(): trailMA.Run();

CTrailingByTEMA Média Móvel Exponencial Tripla com Trailing
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByTEMA trailTEMA; //--- Em OnInit(): trailTEMA.Initialize(_Symbol, PERIOD_H1, 14, 0, PRICE_CLOSE); trailTEMA.SetActive(true); //--- Em OnTick(): trailTEMA.Run();

CTrailingByVIDYA Trailing Variable Index Dynamic Average (média dinâmica de índice variável)
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByVIDYA trailVIDYA; //--- Em OnInit(): trailVIDYA.Initialize(_Symbol, PERIOD_H1, 9, 12, 0, PRICE_CLOSE); trailVIDYA.SetActive(true); //--- Em OnTick(): trailVIDYA.Run();

CTrailingByValue Trailing em um nível especificado
//--- Conexão  #include <Trailings\Trailings.mqh> //--- Globalmente CTrailingByValue trailValue; //--- Em OnInit(): trailValue.SetSymbol(_Symbol); trailValue.SetActive(true); //--- Em OnTick(): trailValue.Run(customSLBuy, customSLSell);


Parâmetros de configuração:

  • SetSymbol(symbol) - define o símbolo de negociação;
  • SetMagicNumber(magic) - define o número mágico;
  • SetStopLossOffset(offset) - define o deslocamento do StopLoss em relação ao preço/indicador;
  • SetTrailingStart(start) - definir o lucro mínimo para a ativação do trailing;
  • SetTrailingStep(step) - definir o passo do movimento do StopLoss;
  • SetSpreadMultiplier(value) - definir o multiplicador de spread para StopLevel;
  • SetActive(flag) - ativar/desativar o trailing.

Para classes de indicadores - parâmetros adicionais do indicador (períodos, tipos de preço, métodos, etc.).

Aqui está um exemplo de como a rede de arrasto Parabolic SAR conectada funciona com o Expert Advisor padrão \MQL5\Experts\Advisors\ExpertMACD.mq5:


Mais detalhes sobre o tópico desses trawls podem ser encontrados nos artigos

  1. Como adicionar Trailing Stop no indicador Parabolic SAR
  2. Como criar qualquer tipo de Trailing Stop e conectá-lo a um Expert Advisor

OTrailings.mqh é uma maneira fácil de adicionar um Trailing StopLoss ao seu Expert Advisor MQL5.
Conecte a classe necessária, configure os parâmetros e chame *.Run() em OnTick.

Se o seu EA tiver um ciclo de enumeração de suas posições, você poderá chamar o método Run() do trailing com o tíquete da posição selecionada:

Run(const ulong pos_ticket);

No caso simples comum, isso seria feito no manipulador OnTick():

for(int i=PositionsTotal()-1; i>=0; i--)   {    trailing_simple.Run(PositionGetTicket(i));   } 



Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/63926