Aide au codage - page 747

 
J'espère que cet écran montre exactement ce que je veux :)
Dossiers :
 
skyler1234321:
J'espère que cet écran montre exactement ce que je veux :)

Si vous utilisez HighLowCandle > 0, alors il est absent sur une bougie fermée.

Mettez UseBarDirection à true et vérifiez-le ensuite.

 

Oui, je l'ai dans les paramètres. Voici les paramètres que j'ai testés

Peut-être qu'il y a un problème dans le code. Pouvez-vous vérifier à l'intérieur ?

Dossiers :
2.PNG  25 kb
 
cja:

Existe-t-il un moyen simple d'accéder aux données d'un indicateur MT5 pour un affichage sur le graphique ? Je sais qu'à l'origine, lorsque MT5 est sorti, le code était assez compliqué pour un simple indicateur et j'espère qu'avec la dernière version de MT5, quelque chose a pu changer ?

Par exemple, si je veux afficher un croisement de MA sur l'objet graphique avec MT4, j'utilise les codes suivants

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

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

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

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

else {col = clrGray;}


Existe-t-il un équivalent simple dans MT5 ? Ou dois-je écrire d'innombrables lignes de code pour accéder à cette information ?

Bonjour cja

Tout d'abord merci pour votre retour sur TSD en 2017 puis bonne année à vous car vous êtes très rare à visiter tsd mais très ancien,senior et expert membre :).

Salutations

 

J'essaie de modifier cette routine de Trailing with Step.
J'ai besoin de me déplacer à partir du stoploss et non de l'entrée d'achat/vente...

par exemple : (opération BUY)

StopLoss : 250 (en points)
Traling :150 (en points)
TralingStep : 50 (en points)
===========

BUY Entrée=> 1000
StopLoss=>750 (=1000-250)

================
Premier changement de prix) Prix déplacé à : 1150

(Je n'ai pas besoin de cela.. ;-( )
Le suivi déplace mon stoploss vers "buy_entrance" =>1000

(Mais j'ai besoin de cela)
Le suivi devrait déplacer mon stoploss vers => 800 (=StopLoss+Trailingstep)

Deuxième changement de prix) Prix déplacé vers : 1300
Le trailing doit être déplacé à => 950 (=StopLoss+Trailingstep)


le code actuel utilise le trailing et le trailing step mais je dois le modifier...
quand (le prix a bougé) le trailing en points est atteint et il utilise le trailing step pour déplacer le stoploss mais le code actuel
déplace le stoploss au point d'entrée de l'opération (et je ne veux pas cela)

J'ai besoin de :

lorsque l'achat est ouvert : si le trailing est atteint, le trailing step doit être soustrait du stoploss actuel. (NewStopLoss = LastStoploss - TrailingStep)
lorsque SELL est ouvert : si le trailing est atteint, le trailing step doit être ajouté au stoploss actuel. (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:

J'essaie de modifier cette routine Trailing with Step.
J'ai besoin de me déplacer à partir du stoploss et non de l'entrée d'achat/vente...

par exemple : (opération d'achat)

StopLoss : 250 (en points)
Traling :150 (en points)
TralingStep : 50 (en points)
===========

Entrée BUY=> 1000
StopLoss=>750 (=1000-250)

================
Premier changement de prix) Prix déplacé à : 1150

(Je n'ai pas besoin de cela. ;-( )
Le trailing déplace mon stoploss à "buy_entrance" =>1000

(Mais j'en ai besoin)
Trailing devrait déplacer mon stoploss à => 800 (=StopLoss+Trailingstep)

Deuxième changement de prix) Prix déplacé à : 1300
Le trailing doit être déplacé à => 950 (=StopLoss+Trailingstep)


Le code actuel utilise le trailing et le trailing step mais je dois le modifier...
quand (le prix a bougé) le trailing en points est atteint et il utilise le trailing step pour déplacer le stop loss mais le code actuel
déplace le stoploss au point d'entrée de l'opération (et je ne veux pas cela)

J'en ai besoin :

lorsque l'achat est ouvert : si le trailing est atteint, le trailing step doit être soustrait du stoploss actuel. (NewStopLoss = LastStoploss - TrailingStep)
lorsque SELL est ouvert : si le trailing est atteint, le trailing step doit être ajouté au stoploss actuel. (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;
   }
}
Votre départ initial doit toujours se faire à partir de l'entrée initiale d'achat/vente (il n'y a pas d'autre critère disponible)
 

Très cher MLADEN

Timmy et moi essayons de jouer (copier/coller) avec un simple EA avec vente/achat de base sur le changement de tendance, basé sur "moyennes - mtf - alerts 8.7", comme nous sommes tous les deux nuls en matière de codage, s'il vous plaît aidez et guidez, comment coder (icustom) pour cette moyenne ver.

salutations



     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);


Dossiers :
 
mntiwana:

Très cher MLADEN

Timmy et moi essayons de jouer (copier/coller) avec un simple EA avec vente/achat de base sur le changement de tendance, basé sur "moyennes - mtf - alerts 8.7", comme nous sommes tous les deux nuls en matière de codage, s'il vous plaît aidez et guidez, comment coder (icustom) pour cette moyenne ver.

salutations



     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);


Il y a un problème avec les tampons, j'ai utilisé le tampon 2 pour l'achat et les tampons 3 et 4 pour la vente, mais tout se déclenche tout le temps, j'ai essayé d'utiliser seulement le tampon 2 pour l'achat et le tampon 3 pour la vente, mais la même chose s'est produite.
 
timmyhanke:
Quelque chose ne va pas avec les tampons, j'ai utilisé le tampon 2 pour l'achat et les tampons 3 et 4 pour la vente, mais tout se déclenche tout le temps, j'ai essayé d'utiliser seulement le tampon 2 pour l'achat et le tampon 3 pour la vente, mais la même chose est arrivée.

Rien ne cloche avec les tampons. Utilisez le tampon 9 : 1 pour la tendance à la hausse, -1 pour la tendance à la baisse.

 

Cher Monsieur Mladen,


J'ai besoin d'un indicateur d'histogramme pour ma stratégie de trading, pour le moment j'utilise l'indicateur XB4 et l'indicateur de stratégie Bandit. Mais ils n'ont pas d'alerte et de notification envoyées par email ou sur mon android MT4.

Avez-vous modifié l'indicateur XB4d ndicator qui a des alertes envoyées par email et des notifications envoyées sur le téléphone mobile android. Si l'histogramme change de couleur bleu à rouge, ou rouge à bleu sur la première barre.

et l'histogramme de la session de tendance de l'indicateur Bandid system, qui change de couleur de bleu à rouge, ou de rouge à bleu, première couleur de changement de tendance.

Pourriez-vous m'aider à propos de cet indicateur, M. Mladen ?




Salutations,

Samuel

Dossiers :
bandit.PNG  56 kb
XB4.PNG  46 kb
Raison: