Ajuda na codificação - página 630

 
Olá Mladen, preciso da imagem de filtro anexada abaixo.
Arquivos anexados:
filter.jpg  114 kb
 

Estou solicitando uma simples Aroon EA.

Compre: Quando aro acima cruza acima aro abaixo. Sair quando a Aroon acima cruza o nível 50 para baixo ou quando ocorre um sinal oposto, o que ocorrer primeiro. (Sinal oposto significa que quando a excitação sobe cruza abaixo da excitação para baixo).

Vender: Quando aro para baixo cruza acima de aro para cima. Sair quando a ronda para baixo atravessa o nível 50 para baixo ou quando ocorre um sinal oposto, o que ocorrer primeiro. (Sinal oposto significa que quando o sinal oposto é quando o sinal para baixo atravessa abaixo do sinal para cima).

Todas as negociações devem ser abertas na abertura da próxima vela, após a ocorrência do sinal.

Ajustar o stop loss no balanço anterior para alto/baixo. Se não for possível fazer isso, então use o ATR stoploss ou o stoploss manual.

Se possível, acrescente também o recurso de gerenciamento de dinheiro.

Seu tempo, habilidades e generosidade são muito apreciados. Cumprimentos

Reymaq.

 
oi qualquer um tem fps buyysell signal mq4? se sim significa que você pode por favor compartilhar aqui ... eu vi apenas arquivos ex4...
 

senão eu quero uma ajuda. neste indicador alto baixo estão mostrando com linhas amarelas curtas ... gosta que depois do preço do baixo do ziguezague... do preço em si precisa de linhas curtas por 0,326% ,0.5%, 0,618% , 1%, 1,618%,2,27%,2,618%,3,33%, 4,236% i significa que o retracement de fibra é apenas para aquele preço que é como (depois de fixado baixo) low+(low*0,326/100)............ low +(low*0,5/100)........... como...

depois disso, para o high made significa .... o mesmo procedimento como linhas curtas pontilhadas

high(high*0,326/100)........... high -(high*0,5/100)........

você pode agradar a alguém fazer isso por mim?

serei muito grato a u...

Arquivos anexados:
 

Hi,

Eu gostaria de testar seus dois indicadores em uma EA.

1 - SAR parabólico de KAMA 1_5.mq4

2 - Macd - std normalizado.mq4 1_2 (Filtro)


Estou testando com o código abaixo para abrir pedidos.
Fiz um teste de 3 meses no H1.
O resultado foi muito ruim.

alguma maneira de melhorar a forma de abertura de pedidos?

Resultado

extern int    BarToUse    = 1;       // Bar to test (0, for still opened, 1 for first closed, and so on)
extern string     IndicatorsSettings   = "===== INDICATORS SETTINGS=====";
extern string     _Indicator           = "===== Parabolic SAR =====";
extern double    AccStep         = 0.02;      // Accumulation step
extern double    AccLimit        = 0.2;       // Accumulation limit
extern int       AmaPeriod       = 10;        // Kaufman AMA period
extern int  AmaPrice        = 0;  // Price to be used by Kaufman AMA
extern double    FastEnd         = 2;         // Kaufman AMA fast end
extern double    SlowEnd         = 30;        // Kaufman AMA slow end
extern double    SmoothPower     = 2;         // Smooth power
extern bool      JurikFDAdaptive = true;      // Should the Kaufman AMA be Jurik fractal dimension adaptive?
//extern enDisplayType DisplayType = "" ; // What should be displayed?
extern int       LineWidth       = 2;         // Lines width
extern int       ArrowsWidth     = 0;         // Arrows (dots) width
extern bool      Interpolate     = true;      // Interpolate in multi time frame mode?
extern string PARAMETERS_INDICATOR_TWO = "Macd";
extern int                FastMAPeriod  = 23;            // Fast macd period
extern int                SlowMAPeriod  = 50;            // Slow macd period
extern int                SignalPeriod  = 9;             // Signal period
extern int                StdPeriod     = 50;            // Standard deviation used for normalization
extern int Price         = 0;   // Price to use 
extern double             Filter        = 0;             // Filter to apply to macd value
extern int                FilterPeriod  = 0;             // Filter period to use (<= to use the slow macd period)
extern colorOn            ColorChangeOn = clrOnSlope;    // Color change on : 

#define _doNothing 0
#define _doBuy     1
#define _doSell    2
int start()
{
   //MagicWarning();//Display a warning in case MagicNumber is changed
   AutoMagic();//Generate Magic Number based on Symbol and Long/Short params
   
      int doWhat = _doNothing;
      double sarUp = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,0,BarToUse); 
      double sarDn = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,1,BarToUse+1); 
      
      double macdUp= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,0,BarToUse);
      double macdDn= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,1,BarToUse+1);
      
         

        
      if (sarUp!=sarDn & macdUp!=macdDn)
         if (sarUp<sarDn & macdUp<macdDn) //buy
               doWhat = _doBuy;
         else  doWhat = _doSell;
         if (doWhat==_doNothing && !DisplayInfo) return(0);

   if (doWhat==_doBuy && openedBuys==0)
      {
         RefreshRates();
         //double BStopLossLevel   = Ask - StopLoss   *myPoint;
         //double BTakeProfitLevel = Ask + TakeProfit *myPoint;               
         double stopLossBuy   = 0; if (StopLoss>0)   stopLossBuy   =Ask - StopLoss   *myPoint; //Ask-StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitBuy = 0; if (TakeProfit>0) takeProfitBuy =Ask + TakeProfit *myPoint; //Ask+TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int ticketb = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
            if (ticketb>-1)
               dummyResult = OrderModify(ticketb,OrderOpenPrice(),NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),0,CLR_NONE);
              
              
         }
         else dummyResult = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
          
      }
   if (doWhat==_doSell && diStcSell==true && openedSells==0)
      {
         RefreshRates();
         //double SStopLossLevel   = Bid + StopLoss   *Mypoint;
         //double STakeProfitLevel = Bid - TakeProfit *Mypoint;
         double stopLossSell   = 0; if (StopLoss>0)   stopLossSell=Bid + StopLoss   *myPoint; //Bid+StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitSell = 0; if (TakeProfit>0) takeProfitSell =Bid - TakeProfit *myPoint; //Bid-TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int tickets = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
            if (tickets>-1)
                dummyResult = OrderModify(tickets,OrderOpenPrice(),NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),0,CLR_NONE);
         }
         
         else dummyResult = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
Arquivos anexados:
 
borgesr:

Hi,

Eu gostaria de testar seus dois indicadores em uma EA.

1 - SAR parabólico de KAMA 1_5.mq4

2 - Macd - std normalizado.mq4 1_2 (Filtro)


Estou testando com o código abaixo para abrir pedidos.
Fiz um teste de 3 meses no H1.
O resultado foi muito ruim.

alguma maneira de melhorar a forma de abertura de pedidos?

Favor ler este post : https://www.mql5.com/en/forum/186208/page3 sobre eventual otimização. Por que funciona assim : você provavelmente poderia rever as regras que está usando quando os pedidos são abertos e fechados. Mas em qualquer caso, verifique as regras que você está usando e verifique quando seus pedidos são fechados.
 
ramzam:

caso contrário, quero uma ajuda. neste indicador alto baixo estão mostrando com linhas amarelas curtas ... gosta que depois do preço baixo do ziguezague... do preço em si precisa de linhas curtas por 0,326% ,0.5%, 0,618% , 1%, 1,618%,2,27%,2,618%,3,33%, 4,236% i significa que o retracement de fibra é apenas para aquele preço que é como (depois de fixado baixo) low+(low*0,326/100)............ low +(low*0,5/100)........... como...

depois disso, para o high made significa .... o mesmo procedimento como linhas curtas pontilhadas

high(high*0,326/100)........... high -(high*0,5/100)........

você pode agradar a alguém fazer isso por mim?

eu ficarei muito grato a u...

Não posso verificar o arquivo por momento. mas vendo o nome, você tem certeza de que usar ziguezague para sinais pode ser usado da maneira que você está esperando (sendo que o ziguezague pinta novamente)?
 
mladen:
Por favor, leia este post : https://www.mql5.com/en/forum/186208/page3 sobre uma eventual otimização. Por que funciona assim : você provavelmente poderia rever as regras que está usando quando as ordens são abertas e fechadas. Mas em qualquer caso, verifique as regras que você está usando e verifique quando seus pedidos são fechados.

Prezado Mladen,

A regra deabertura estava errada.

Eu mudei o código , mas ainda continua com um desempenho muito ruim perdendo muito dinheiro.


Para fazer o filtro junto com o Parabólico seria melhor usar o RSI?

      int doWhat = _doNothing;
      double sarUp = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,0,BarToUse); 
      double sarDn = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,1,BarToUse+1); 
      
      double macdUp= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,0,BarToUse);
      double macdDn= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,1,BarToUse+1);
      
         

        
      
         if (sarUp<sarDn & macdUp<macdDn) doWhat = _doBuy;
         if (sarUp>sarDn & macdUp>macdDn)  doWhat = _doSell;
         if (doWhat==_doNothing && !DisplayInfo) return(0);
         
  for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()      != Symbol())            continue;
      if (OrderMagicNumber() != MagicNumber)         continue;

      //
      //
      //
      //
      //
      
      if (DisplayInfo) currentProfit += OrderProfit()+OrderCommission()+OrderSwap();
         
         //
         //
         //
         //
         //
         
         if (OrderType()==OP_BUY)
            if (doWhat==_doSell )
                  { RefreshRates(); if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Orange)) openedBuys++; }
            else  openedBuys++;
         if (OrderType()==OP_SELL)
            if (doWhat==_doBuy )
                  { RefreshRates(); if (!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Green)) openedSells++; }
            else  openedSells++;            
   }
   if (DisplayInfo) Comment("Current profit : "+DoubleToStr(currentProfit,2)+" "+AccountCurrency()); if (doWhat==_doNothing) return(0);

   //
   //
   //
   //
   //
   if (doWhat==_doBuy && openedBuys==0)
      {
         RefreshRates();
         //double BStopLossLevel   = Ask - StopLoss   *myPoint;
         //double BTakeProfitLevel = Ask + TakeProfit *myPoint;               
         double stopLossBuy   = 0; if (StopLoss>0)   stopLossBuy   =Ask - StopLoss   *myPoint; //Ask-StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitBuy = 0; if (TakeProfit>0) takeProfitBuy =Ask + TakeProfit *myPoint; //Ask+TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int ticketb = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
            if (ticketb>-1)
               dummyResult = OrderModify(ticketb,OrderOpenPrice(),NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),0,CLR_NONE);
              
              
         }
         else dummyResult = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
          
      }
   if (doWhat==_doSell & openedSells==0)
      {
         RefreshRates();
         //double SStopLossLevel   = Bid + StopLoss   *Mypoint;
         //double STakeProfitLevel = Bid - TakeProfit *Mypoint;
         double stopLossSell   = 0; if (StopLoss>0)   stopLossSell=Bid + StopLoss   *myPoint; //Bid+StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitSell = 0; if (TakeProfit>0) takeProfitSell =Bid - TakeProfit *myPoint; //Bid-TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int tickets = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
            if (tickets>-1)
                dummyResult = OrderModify(tickets,OrderOpenPrice(),NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),0,CLR_NONE);
         }
         
         else dummyResult = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
      }
   return(0);
}
 
borgesr:

Prezado Mladen,

A regra deabertura estava errada.

Eu mudei o código , mas ainda continua com um desempenho muito ruim perdendo muito dinheiro.


Para fazer o filtro junto com o Parabólico seria melhor usar o RSI?

Por favor, tente otimizar seu EA

 
kapoo:

Sr. Mladen, por favor, veja os códigos abaixo, a seta não aparece ao vivo até que eu troque o tempo.


Esta é uma versão de repintura do indicador sidus

Versão não repintura pode ser baixada daqui : https://www.mql5.com/en/forum/180648/page293