Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
EA Long Short only baseado na CExpert - expert para MetaTrader 5
- Visualizações:
- 4242
- Avaliação:
- Publicado:
- 2016.12.27 09:11
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
O Expert Advisor atual permite escolher abrir apenas long/short (ou ambas) posições com base em uma extensão da classe CExpert.
Dois arquivos diferentes são fornecidos:
- LongShortExpertModified.mqh: Esta classe estende a classe padrão CExpert modificando os métodos CheckOpen() e CheckReverse(), a fim de permitir que apenas as ordens desejadas possam ser abertas;
- LongShortExpertMACD.mq5: Este EA é uma modificação simples através da classe incorporada ExpertMACD.mq5, incluindo o EA modificado, desenvolvido para permitir somente o tipo de ordem desejada de acordo com um parâmetro de entrada, sendo fornecido para clarificar a utilização do EA.
LongShortExpertModified
Esta classe modifica o comportamento da classe padrão CExpert permitindo apenas um certo tipo de ordem de acordo com a seguinte enumeração:
enum ENUM_AVAILABLE_POSITIONS
{
LONG_POSITION,
SHORT_POSITION,
BOTH_POSITION
};
Esta enumeração será utilizada como um parâmetro de entrada para o EA final exigido para determinar qual tipo de ordem será permitido, e ele é usado internamente para abrir apenas as ordens desejadas e para processar a inversão da ordem somente se ambos os tipos de posições são permitidos (valor do enum BOTH_POSITION ).
Para fazer isso, CheckOpen() e CheckReverse() foram reescritos:
class CLongShortExpertModified : public CExpert { protected: ENUM_AVAILABLE_POSITIONS m_positions; public: CLongShortExpertModified(void); ~CLongShortExpertModified(void); virtual bool CheckOpen(void); virtual bool CheckReverse(void); void SetAvailablePositions(ENUM_AVAILABLE_POSITIONS newValue){m_positions=newValue;}; };
CheckOpen() é modificado para verificar apenas as posições compradas ou vendidas de acordo com o valor de m_positions:
bool CLongShortExpertModified :: CheckOpen() { switch(m_positions) { case LONG_POSITION: return CheckOpenLong(); //verifica apenas novas posições compradas case SHORT_POSITION: return CheckOpenShort(); //verifica apenas novas posições vendidas default: return CExpert::CheckOpen(); //comportamento padrão } }
CheckReverse() é modificado para verificar somente a inversão das posições se ambos os tipos de posições são permitidos:
bool CLongShortExpertModified::CheckReverse() { switch(m_positions) { case LONG_POSITION: case SHORT_POSITION: return false; // a reversão não é permitida default: return CExpert::CheckReverse(); //comportamento padrão } }
LongShortExpertMACD
Esta classe oferece um exemplo específico da utilização da classe anterior do EA, com base no EA padrão ExpertMACD incluído na distribuição do MQL5.
Em primeiro lugar, a classe concreta de EAs deve ser incluída, e o parâmetro de entrada correspondente adicionado. Além disso, o EA externo está associado com a subclasse, em vez do CExpert padrão:
#include <Expert\LongShortExpertModified.mqh> //[...] input ENUM_AVAILABLE_POSITIONS Inp_Allowed_Positions=BOTH_POSITION; //short / long / ambas as posições permitidas //[...] CLongShortExpertModified ExtExpert; //subclasse especifica da CExpert
Após a inicialização do EA, o parâmetro deve ser definido de acordo com o valor de entrada:
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber)) { //--- failed printf(__FUNCTION__+": error initializing expert"); ExtExpert.Deinit(); return(-1); } // Controlador do parâmetro específico que as posições são permitidas ExtExpert.SetAvailablePositions(Inp_Allowed_Positions);
Não é necessário alterações adicionais. A figura a seguir mostra os parâmetros de configuração para o expert:
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/1896
Indicador simples que mostra quando o mercado está aberto.
Mutex - WinAPISincroniza processos ОС/EA/MT etc. Não são mais necessários DLLs agora.
Um sistema de negociação multi-moeda, com base nas bandas de Bollinger e com uma técnica seguidora de tendência. Capaz de negociar até 6 pares de moedas simultaneamente. O sistema tem embutido uma partilha dos parâmetros de otimização.
FxTrend 25EMAFxTrend 25EMA é baseado na diferença do valor de EMA de 25 durante dois momentos diferentes.