Aiuto per la codifica - pagina 747

 
Spero che questo schermo mostri esattamente ciò che voglio :)
File:
 
skyler1234321:
Spero che questo schermo mostri esattamente quello che voglio :)

Se stai usando HighLowCandle > 0, allora è assente su una candela chiusa.

Imposta UseBarDirection su true e controlla poi

 

Sì, ce l'ho nelle impostazioni. Ci sono le mie impostazioni che ho testato

Forse nel codice c'è qualcosa di sbagliato. Potresti controllare all'interno?

File:
2.PNG  25 kb
 
cja:

C'è un modo semplice per accedere ai dati dell'indicatore MT5 per una visualizzazione sul grafico. So che inizialmente, quando MT5 è uscito per la prima volta, il codice era abbastanza complicato per un semplice indicatore e spero che con l'ultima versione di MT5 qualcosa possa essere cambiato?

Per esempio, se voglio mostrare un cross MA sul display dell'oggetto grafico con MT4 uso

double slow_MA = iMA(Symbol(),0,100,0,MA_MODE,MA_PRICE,0);

doppio fast_MA = iMA(Symbol(),0,35,0,MA_MODE,MA_PRICE,0);

se (ma_fast > ma_slow){ col = clrLime;}

se (ma_fast < ma_slow) {col = clrRed;}

else {col = clrGray;}


C'è qualche semplice equivalente in MT5 o devo scrivere un'infinità di righe di codice per accedere a queste informazioni?

Ciao cja

Prima di tutto grazie per la tua visita indietro TSD in 2017 poi Felice anno nuovo a te come sei molto rara visita tsd ma molto vecchio, anziano ed esperto membro :)

saluti

 

Sto cercando di cambiare questa routine Trailing with Step.
Ho bisogno di muovermi dallo stoploss e non dall'entrata di acquisto/vendita...

per esempio: (operazione BUY)

StopLoss: 250 (in punti)
Traling :150 (in punti)
TralingStep: 50 (in punti)
===========

Entrata BUY=> 1000
StopLoss=>750 (=1000-250)

================
Prima variazione di prezzo) Il prezzo si è spostato a: 1150

(Non ho bisogno di questo.. ;-( )
Trailing sta spostando il mio stoploss a "buy_entrance" =>1000

(Ma ho bisogno di questo)
Trailing dovrebbe spostare il mio stoploss a => 800 (=StopLoss+Trailingstep)

Seconda variazione di prezzo) Prezzo spostato a: 1300
Trailing show essere spostato a=> 950 (=StopLoss+Trailingstep)


il codice attuale usa trailing e trailing step ma ho bisogno di modificarlo...
quando (prezzo spostato) il trailing in punti è raggiunto e usa trailing step per spostare lo stop loss ma il codice attuale
sposta lo stoploss al punto di entrata dell'operazione (e io non voglio questo)

Ho bisogno di:

quando viene aperto il BUY: se il trailing viene raggiunto, il passo di trailing dovrebbe essere sottratto dallo stoploss attuale. (NewStopLoss = LastStoploss - TrailingStep)
quando si apre SELL: se il trailing viene raggiunto, il trailing step deve essere aggiunto dallo stoploss attuale. (NewStopLoss = LastStoploss +TrailingStep)

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

int
 Trailing = 150;
int TrailingStep = 25;

void fSimpleTrailingStep(){   //mt5
   if(Trailing<=0){
      return;
   }         
   if(!Pos.Select(_Symbol)){
      return;
   }         
   if(!Sym.RefreshRates()){
      return;  
   }   
   double nsl,tmsl,psl,newstop;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
               if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){  //////////////
                  //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                   tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
                        Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                        Print ("(BUY) Trailing :"+Pos.StopLoss());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){             
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){   //////////////
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
                           //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                           Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                           Print ("(SELL) Trailing :"+Pos.StopLoss());
                        }
                  }
            }      
      break;
   }
}
 
baraozemo:

Sto cercando di cambiare questa routine Trailing con Step.
Ho bisogno di muovermi dallo stoploss e non dall'entrata buy/sell...

per esempio: (Operazione BUY)

StopLoss: 250 (in punti)
Traling :150 (in punti)
TralingStep: 50 (in punti)
===========

Ingresso BUY=> 1000
StopLoss=>750 (=1000-250)

================
Prima variazione di prezzo) Il prezzo si è spostato a: 1150

(Non ho bisogno di questo.. ;-( )
Trailing sta spostando il mio stoploss a "buy_entrance" =>1000

(Ma ho bisogno di questo)
Il trailing dovrebbe spostare il mio stoploss a => 800 (=StopLoss+Trailingstep)

Secondo cambiamento di prezzo) Il prezzo si è spostato a: 1300
Il trailing deve essere spostato a=> 950 (=StopLoss+Trailingstep)


il codice attuale usa trailing e trailing step ma ho bisogno di modificarlo...
quando (prezzo spostato) il trailing in punti è raggiunto e usa il trailing step per spostare lo stop loss ma il codice attuale
sposta lo stoploss al punto di entrata dell'operazione (e non voglio questo)

Ne ho bisogno:

quando viene aperto il BUY: se il trailing viene raggiunto, il passo di trailing dovrebbe essere sottratto dallo stoploss attuale. (NewStopLoss = LastStoploss - TrailingStep)
quando SELL è aperto: se il trailing è raggiunto, il passo di trailing deve essere aggiunto dallo stoploss attuale. (NewStopLoss = LastStoploss +TrailingStep)

#include <Trade/Trade.mqh>
#include <Trade/SymbolInfo.mqh>
#include <Trade/PositionInfo.mqh>
CTrade Trade;
CSymbolInfo Sym;
CPositionInfo Pos;

int
 Trailing = 150;
int TrailingStep = 25;

void fSimpleTrailingStep(){   //mt5
   if(Trailing<=0){
      return;
   }         
   if(!Pos.Select(_Symbol)){
      return;
   }         
   if(!Sym.RefreshRates()){
      return;  
   }   
   double nsl,tmsl,psl,newstop;  
   switch(Pos.PositionType()){
      case POSITION_TYPE_BUY:
         nsl=Sym.NormalizePrice(Sym.Bid()-_Point*Trailing);
            if(nsl>=Sym.NormalizePrice(Pos.PriceOpen())){
               //if(nsl>Sym.NormalizePrice(Pos.StopLoss())){
               if(nsl>=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep)){  //////////////
                  //tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                   tmsl=Sym.NormalizePrice(Sym.Bid()-_Point*Sym.StopsLevel());
                     if(nsl<tmsl){
                        //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                        newstop=Sym.NormalizePrice(Pos.StopLoss()+_Point*TrailingStep);
                        Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                        Print ("(BUY) Trailing :"+Pos.StopLoss());
                     }
               }
            }
      break;
      case POSITION_TYPE_SELL:
         nsl=Sym.NormalizePrice(Sym.Ask()+_Point*Trailing);
            //if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())){             
            if(nsl<=Sym.NormalizePrice(Pos.PriceOpen())-_Point*TrailingStep){   //////////////
               psl=Sym.NormalizePrice(Pos.StopLoss());
                  if(nsl<psl || psl==0){
                     tmsl=Sym.NormalizePrice(Sym.Ask()+_Point*Sym.StopsLevel());
                        if(nsl>tmsl){
                           newstop=Sym.NormalizePrice(Pos.StopLoss()-_Point*TrailingStep);
                           //Trade.PositionModify(_Symbol,nsl,Pos.TakeProfit());
                           Trade.PositionModify(_Symbol,newstop,Pos.TakeProfit());
                           Print ("(SELL) Trailing :"+Pos.StopLoss());
                        }
                  }
            }      
      break;
   }
}
La partenza iniziale deve essere sempre dall'entrata iniziale di acquisto/vendita (non ci sono altri criteri disponibili)
 

Carissimo MLADEN

Timmy ed io stiamo cercando di giocare (copia/incolla) con un semplice EA con base sell/buy sul cambio di tendenza, basato su "averages - mtf - alerts 8.7", come entrambi zero in materia di codifica, plz aiuto e guida, come il codice (icustom) per questo ver media.

saluti



     double Averages_trend_current  = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);

     double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);


 
mntiwana:

Carissimo MLADEN

Timmy ed io stiamo cercando di giocare (copia/incolla) con un semplice EA con base sell/buy sul cambio di tendenza, basato su "averages - mtf - alerts 8.7", come entrambi zero in materia di codifica, plz aiuto e guida, come il codice (icustom) per questo ver media.

saluti



     double Averages_trend_current  = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse);

     double Averages_trend_previous = iCustom(NULL,0,"averages - mtf - alerts  8.7",PERIOD_CURRENT,AveragePeriod,AveragePrice,AverageMethod,DoubleSmoothedAverage,AdaptiveAverage,FilterPeriod,FilterOn,BarToUse+1);


C'è qualcosa che non va con i buffer, ho usato il buffer 2 per comprare e sia il buffer 3 che il 4 per vendere, ma tutto si innesca sempre, ho provato ad usare solo il buffer 2 per comprare e il buffer 3 per vendere, ma è successa la stessa cosa.
 
timmyhanke:
C'è qualcosa che non va con i buffer, ho usato il buffer: 2 per comprare e sia il buffer 3 che il 4 per vendere, ma tutto si innesca sempre, ho provato a usare solo il buffer 2 per comprare e il buffer 3 per vendere, ma è successa la stessa cosa.

Niente di sbagliato con i buffer. Usa il buffer 9: 1 per il trend up, -1 per il trend down

 

Caro signor Mladen,


Ho bisogno di un indicatore di istogramma per la mia strategia di trading, in questo momento uso l'indicatore XB4 e l'indicatore di strategia Bandit. ma non hanno allarmi e notifiche da inviare via email o al mio android MT4.

avete modificato l'indicatore XB4d ndicator che ha l'allarme inviare e-mail e notifica che inviare al telefono cellulare android. se l'istogramma cambia colore blu a rosso, o rosso a blu sulla prima barra.

e la sessione di tendenza dell'istogramma dall'indicatore di sistema Bandid, che cambia colore da blu a rosso, o rosso a blu, il primo colore di cambiamento di tendenza.

Potrebbe aiutarmi su questo indicatore, signor Mladen.




saluti,

Samuel

File:
bandit.PNG  56 kb
XB4.PNG  46 kb