Obrigado.
Muito claro.
Muito claro.
Desculpe-me, autor. EA sem reversão e com lote selecionável.
EA com lote selecionável -> alterações em LongShortExpertMACD.mq5:
//+------------------------------------------------------------------+ //|LongShortExpertMACD.mq5 //| Copyright 2009-2013, MetaQuotes Software Corp. - 2013, jlwarrior | //| https://login.mql5.com/en/users/jlwarrior | //+------------------------------------------------------------------+ #property copyright "2009-2013, MetaQuotes Software Corp - 2013, jlwarrior" #property link "https://login.mql5.com/en/users/jlwarrior" #property version "1.00" //+------------------------------------------------------------------+ //| Incluir| //+------------------------------------------------------------------+ #include <Expert\LongShortExpertModified.mqh> #include <Expert\Signal\SignalMACD.mqh> #include <Expert\Trailing\TrailingNone.mqh> #include <Expert\Money\MoneyFixedLot.mqh> //+------------------------------------------------------------------+ //| Entradas| //+------------------------------------------------------------------+ //--- entradas para especialista input string Inp_Expert_Title ="Long/Short ExpertMACD"; int Expert_MagicNumber =10981; bool Expert_EveryTick =false; input ENUM_AVAILABLE_POSITIONS Inp_Allowed_Positions=BOTH_POSITION; //curto / longo / ambas as posições permitidas //--- entradas padrão do MACDExpert input int Inp_Signal_MACD_PeriodFast =12; // Período MACD rápido input int Inp_Signal_MACD_PeriodSlow =24; // Período do Slow MACD input int Inp_Signal_MACD_PeriodSignal=9; // Período do sinal MACD input double Inp_Money_Lot =0.5; // Valor do lote input int Inp_Signal_MACD_TakeProfit =50; // Valor do take profit input int Inp_Signal_MACD_StopLoss =20; // Valor do stop loss //+------------------------------------------------------------------+ //| Objeto especialista global| //+------------------------------------------------------------------+ CLongShortExpertModified ExtExpert; //subclasse CExpert projetada especificamente //+------------------------------------------------------------------+ //| Função de inicialização do especialista| //+------------------------------------------------------------------+ int OnInit(void) { //--- Especialista em inicialização if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber)) { //--- falhou printf(__FUNCTION__+": error initializing expert"); ExtExpert.Deinit(); return(-1); } // Parâmetro específico que controla quais posições são permitidas ExtExpert.SetAvailablePositions(Inp_Allowed_Positions); //--- Criação do objeto de sinal CSignalMACD *signal=new CSignalMACD; if(signal==NULL) { //--- falhou printf(__FUNCTION__+": error creating signal"); ExtExpert.Deinit(); return(-2); } //--- Adicionar sinal ao especialista (será excluído automaticamente)) if(!ExtExpert.InitSignal(signal)) { //--- falhou printf(__FUNCTION__+": error initializing signal"); ExtExpert.Deinit(); return(-3); } //--- Definir parâmetros de sinal signal.PeriodFast(Inp_Signal_MACD_PeriodFast); signal.PeriodSlow(Inp_Signal_MACD_PeriodSlow); signal.PeriodSignal(Inp_Signal_MACD_PeriodSignal); signal.TakeLevel(Inp_Signal_MACD_TakeProfit); signal.StopLevel(Inp_Signal_MACD_StopLoss); //--- Verificar parâmetros de sinal if(!signal.ValidationSettings()) { //--- falhou printf(__FUNCTION__+": error signal parameters"); ExtExpert.Deinit(); return(-4); } //--- Criação do objeto final CTrailingNone *trailing=new CTrailingNone; if(trailing==NULL) { //--- falhou printf(__FUNCTION__+": error creating trailing"); ExtExpert.Deinit(); return(-5); } //--- Adicione o final ao expert (será excluído automaticamente)) if(!ExtExpert.InitTrailing(trailing)) { //--- falhou printf(__FUNCTION__+": error initializing trailing"); ExtExpert.Deinit(); return(-6); } //--- Definir parâmetros finais //--- Verificar parâmetros finais if(!trailing.ValidationSettings()) { //--- falhou printf(__FUNCTION__+": error trailing parameters"); ExtExpert.Deinit(); return(-7); } //--- Criação do objeto dinheiro CMoneyFixedLot *money=new CMoneyFixedLot; if(money==NULL) { //--- falhou printf(__FUNCTION__+": error creating money"); ExtExpert.Deinit(); return(-8); } //--- Adicionar dinheiro ao especialista (será excluído automaticamente)) if(!ExtExpert.InitMoney(money)) { //--- falhou printf(__FUNCTION__+": error initializing money"); ExtExpert.Deinit(); return(-9); } //--- Definir parâmetros monetários money.Lots(Inp_Money_Lot); //--- Verificar parâmetros monetários if(!money.ValidationSettings()) { //--- falhou printf(__FUNCTION__+": error money parameters"); ExtExpert.Deinit(); return(-10); } //--- Ajuste de todos os indicadores necessários if(!ExtExpert.InitIndicators()) { //--- falhou printf(__FUNCTION__+": error initializing indicators"); ExtExpert.Deinit(); return(-11); } //--- bem-sucedido return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Função de desinicialização do especialista| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ExtExpert.Deinit(); } //+------------------------------------------------------------------+ //| Manipulador de evento de função "tick"| //+------------------------------------------------------------------+ void OnTick(void) { ExtExpert.OnTick(); } //+------------------------------------------------------------------+ //| Manipulador de eventos de função "trade"| //+------------------------------------------------------------------+ void OnTrade(void) { ExtExpert.OnTrade(); } //+------------------------------------------------------------------+ //| Manipulador de eventos de função "timer"| //+------------------------------------------------------------------+ void OnTimer(void) { ExtExpert.OnTimer(); } //+------------------------------------------------------------------+
EA sem reversão -> alterações em LongShortExpertModified.mqh:
//+------------------------------------------------------------------+ //|LongShortExpertModified.mqh //|Direitos autorais 2013, jlwarrior | //| https://login.mql5.com/en/users/jlwarrior | //+------------------------------------------------------------------+ #include <Expert\Expert.mqh> //+------------------------------------------------------------------+ //| enumeração para controlar se as posições longas, curtas ou ambas são //| permissão para ser aberto| //+------------------------------------------------------------------+ //--- enum ENUM_AVAILABLE_POSITIONS { LONG_POSITION, SHORT_POSITION, BOTH_POSITION }; //+------------------------------------------------------------------+ //| Classe CLongShortExpertModified.| //| Finalidade: permite que apenas posições longas, curtas ou ambas sejam abertas. //| Deriva da classe CExpert (modifica apenas os métodos Open / Reverse) //+------------------------------------------------------------------+ class CLongShortExpertModified : public CExpert { protected: ENUM_AVAILABLE_POSITIONS m_positions; public: CLongShortExpertModified(void); ~CLongShortExpertModified(void); virtual bool CheckOpen(void); void SetAvailablePositions(ENUM_AVAILABLE_POSITIONS newValue){m_positions=newValue;}; }; //+------------------------------------------------------------------+ //| Construtor| //+------------------------------------------------------------------+ CLongShortExpertModified ::CLongShortExpertModified(void) : m_positions(BOTH_POSITION) { } //+------------------------------------------------------------------+ //| Destruidor| //+------------------------------------------------------------------+ CLongShortExpertModified ::~CLongShortExpertModified(void) { } //+------------------------------------------------------------------+ //| Verificar a abertura para posições permitidas| //+------------------------------------------------------------------+ bool CLongShortExpertModified :: CheckOpen() { switch(m_positions) { case LONG_POSITION: return CheckOpenLong(); //verificar apenas as novas posições longas case SHORT_POSITION: return CheckOpenShort(); //verificar apenas as novas posições vendidas default: return CExpert::CheckOpen(); //comportamento padrão } } //+------------------------------------------------------------------+
onde esta o campo pra por o codigo da açao pra Long x short
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
EA Long Short only baseado na CExpert:
Esta subclasse da CExpert permite abrir ordens somente long/short, mostrando seu uso com um exemplo MACD.
Autor: Jose