Boa noite,
Criei um EA pelo assistente MQL. para o indicardor ENVELOPES.
Gostaria de modificá-lo, no entanto, para operar invertido, ou seja:
quanto o indicador ENVELOPES me indicar uma compra eu quero que seja efetuada uma venda e vice-versa.
Alguém poderia me ajudar?
Por favor ao adicionar código use a caixa de códigos para que fique mais legível
segue exemplo...
void OnStart() { //--- array dinâmico double array[]; //--- vamos definir o tamanho do array para 100 elementos e reservar um buffer para outros 10 elementos ArrayResize(array,100,10); //--- inicializa os elementos do array com valor EMPTY_VALUE=DBL_MAX ArrayInitialize(array,EMPTY_VALUE); Print("Valores dos 10 últimos elementos antes da inicialização"); for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]); //--- expande o array em 5 elementos ArrayResize(array,105); Print("Valores dos 10 últimos elementos antes do ArrayResize(array,105)"); //--- valores dos 5 últimos elementos são obtidos do buffer de reserva for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]); }
para que consiga ajuda é preciso que poste o trecho de código onde é feita as transações, pelo que olhei falta parte do seu código.
Por favor ao adicionar código use a caixa de códigos para que fique mais legível
segue exemplo...
para que consiga ajuda é preciso que poste o trecho de código onde é feita as transações, pelo que olhei falta parte do seu código.
Jonathan, muito obrigado pela força.
Segue o código:
Quero alterá-lo para fazer operações invertidas, ou seja, quando mandar comprar, quero que efetue uma venda, e vice-versa.
Grato.
//+------------------------------------------------------------------+ //| Lessandro Envelopes 1.0 | //| opyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Include | //+------------------------------------------------------------------+ #include <Expert\Expert.mqh> //--- available signals #include <Expert\Signal\SignalEnvelopes.mqh> //--- available trailing #include <Expert\Trailing\TrailingNone.mqh> //--- available money management #include <Expert\Money\MoneyFixedLot.mqh> //+------------------------------------------------------------------+ //| Inputs | //+------------------------------------------------------------------+ //--- inputs for expert input string Expert_Title ="LessandroEnv2"; // Document name ulong Expert_MagicNumber =31108; // bool Expert_EveryTick =false; // //--- inputs for main signal input int Signal_ThresholdOpen =10; // Valor limite do sinal para abrir [0...100] input int Signal_ThresholdClose =10; // Valor limite do sinal para fechar [0...100] input double Signal_PriceLevel =0.0; // Nível de preços para executar entrada input double Signal_StopLevel =50.0; // Stop Loss (em pontos) input double Signal_TakeLevel =50.0; // Stop Gain (em pontos) input int Signal_Expiration =4; // Expiração de ordens pendentes (em barras) input int Signal_Envelopes_PeriodMA =5; // Período da média input int Signal_Envelopes_Shift =0; // Mudança de horário input ENUM_MA_METHOD Signal_Envelopes_Method =MODE_EMA; // Método da média input ENUM_APPLIED_PRICE Signal_Envelopes_Applied =PRICE_CLOSE; // Série de preços input double Signal_Envelopes_Deviation=0.04; // Desvio padrão da média para cálculo do Envelope input double Signal_Envelopes_Weight =1.0; // Envelopes Peso no sinal [0...1.0] //--- inputs for money input double Money_FixLot_Lots=2.0; // Quantidade (Volume) //+------------------------------------------------------------------+ //| Global expert object | //+------------------------------------------------------------------+ CExpert ExtExpert; //+------------------------------------------------------------------+ //| Initialization function of the expert | //+------------------------------------------------------------------+ int OnInit() { //--- Initializing expert if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber)) { //--- failed printf(__FUNCTION__+": error initializing expert"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Creating signal CExpertSignal *signal=new CExpertSignal; if(signal==NULL) { //--- failed printf(__FUNCTION__+": error creating signal"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ExtExpert.InitSignal(signal); signal.ThresholdOpen(Signal_ThresholdOpen); signal.ThresholdClose(Signal_ThresholdClose); signal.PriceLevel(Signal_PriceLevel); signal.StopLevel(Signal_StopLevel); signal.TakeLevel(Signal_TakeLevel); signal.Expiration(Signal_Expiration); //--- Creating filter CSignalEnvelopes CSignalEnvelopes *filter0=new CSignalEnvelopes; if(filter0==NULL) { //--- failed printf(__FUNCTION__+": error creating filter0"); ExtExpert.Deinit(); return(INIT_FAILED); } signal.AddFilter(filter0); //--- Set filter parameters filter0.PeriodMA(Signal_Envelopes_PeriodMA); filter0.Shift(Signal_Envelopes_Shift); filter0.Method(Signal_Envelopes_Method); filter0.Applied(Signal_Envelopes_Applied); filter0.Deviation(Signal_Envelopes_Deviation); filter0.Weight(Signal_Envelopes_Weight); //--- Creation of trailing object CTrailingNone *trailing=new CTrailingNone; if(trailing==NULL) { //--- failed printf(__FUNCTION__+": error creating trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add trailing to expert (will be deleted automatically)) if(!ExtExpert.InitTrailing(trailing)) { //--- failed printf(__FUNCTION__+": error initializing trailing"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set trailing parameters //--- Creation of money object CMoneyFixedLot *money=new CMoneyFixedLot; if(money==NULL) { //--- failed printf(__FUNCTION__+": error creating money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Add money to expert (will be deleted automatically)) if(!ExtExpert.InitMoney(money)) { //--- failed printf(__FUNCTION__+": error initializing money"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- Set money parameters money.Lots(Money_FixLot_Lots); //--- Check all trading objects parameters if(!ExtExpert.ValidationSettings()) { //--- failed ExtExpert.Deinit(); return(INIT_FAILED); } //--- Tuning of all necessary indicators if(!ExtExpert.InitIndicators()) { //--- failed printf(__FUNCTION__+": error initializing indicators"); ExtExpert.Deinit(); return(INIT_FAILED); } //--- ok return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Deinitialization function of the expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ExtExpert.Deinit(); } //+------------------------------------------------------------------+ //| "Tick" event handler function | //+------------------------------------------------------------------+ void OnTick() { ExtExpert.OnTick(); } //+------------------------------------------------------------------+ //| "Trade" event handler function | //+------------------------------------------------------------------+ void OnTrade() { ExtExpert.OnTrade(); } //+------------------------------------------------------------------+ //| "Timer" event handler function | //+------------------------------------------------------------------+ void OnTimer() { ExtExpert.OnTimer(); } //+------------------------------------------------------------------+
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa noite,
Criei um EA pelo assistente MQL. para o indicardor ENVELOPES.
Gostaria de modificá-lo, no entanto, para operar invertido, ou seja:
quanto o indicador ENVELOPES me indicar uma compra eu quero que seja efetuada uma venda e vice-versa.
Alguém poderia me ajudar?
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalEnvelopes.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Inputs |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title ="LessandroEnv2"; // Document name
ulong Expert_MagicNumber =31108; //
bool Expert_EveryTick =false; //
//--- inputs for main signal
input int Signal_ThresholdOpen =10; // Valor limite do sinal para abrir [0...100]
input int Signal_ThresholdClose =10; // Valor limite do sinal para fechar [0...100]
input double Signal_PriceLevel =0.0; // Nível de preços para executar entrada
input double Signal_StopLevel =50.0; // Stop Loss (em pontos)
input double Signal_TakeLevel =50.0; // Stop Gain (em pontos)
input int Signal_Expiration =4; // Expiração de ordens pendentes (em barras)
input int Signal_Envelopes_PeriodMA =5; // Período da média
input int Signal_Envelopes_Shift =0; // Mudança de horário
input ENUM_MA_METHOD Signal_Envelopes_Method =MODE_EMA; // Método da média
input ENUM_APPLIED_PRICE Signal_Envelopes_Applied =PRICE_CLOSE; // Série de preços
input double Signal_Envelopes_Deviation=0.04; // Desvio padrão da média para cálculo do Envelope
input double Signal_Envelopes_Weight =1.0; // Envelopes Peso no sinal [0...1.0]
//--- inputs for money
input double Money_FixLot_Lots=2.0; // Quantidade (Volume)
//+------------------------------------------------------------------+
//| Global expert object |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Initializing expert
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- failed
printf(__FUNCTION__+": error initializing expert");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//--- Creating signal
CExpertSignal *signal=new CExpertSignal;
if(signal==NULL)
{
//--- failed
printf(__FUNCTION__+": error creating signal");
ExtExpert.Deinit();
return(INIT_FAILED);
}
//---
ExtExpert.InitSignal(signal);
signal.ThresholdClose(Signal_ThresholdOpen);
signal.ThresholdOpen(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);