Aide au codage - page 485

 
NWFstudent:
Supposons que vous traitez le graphique d'une heure et que vous utilisez un indicateur mtf affichant le graphique de 4 heures, alors je veux que le réglage soit d'utiliser le cadre temporel suivant.

J'ai trouvé ce fil de discussion, mais comme je ne suis pas un codeur, je ne sais pas où coller le code ou si l'indicateur doit être modifié.

J'ai trouvé ce fil de discussion, mais comme je ne suis pas un codeur, je ne sais pas où coller le code ou s'il doit être modifié pour l'indicateur actuel.

Next Timeframe - MQL4 forum

L'indicateur auquel je veux ajouter ce paramètre est "Traders Dynamic_Cb_ssa norm Index_alerts+arrows new 1.01" des forums elite.

NWFstudent

Vous pouvez voir dans celui-ci comment vous pouvez faire cela de manière simple : https://www.mql5.com/en/forum/181187/page24 (y compris jusqu'à choisir automatiquement le troisième cadre temporel supérieur).

 

Salut mladen.

La dernière fois pendant un certain temps....I promet.

Comme vous le savez maintenant, je suis un grand fan de l'indicateur ADX.

Je l'utilise de plusieurs façons et je n'entre jamais dans une transaction contre lui.

J'aime aussi le principe de l'indicateur des trois canards.

et j'ai essayé de combiner les deux, mais sans succès.

Je vais faire un dernier essai, puis j'essaierai autre chose :

L'indicateur ci-joint, pour autant que je puisse le voir, ne comporte que des zones où un indicateur est mentionné - Lignes 54,57,60.

Tout le reste semble être lié au cadre temporel.

J'ai essayé de supprimer toute mention de 'sma & SMA' - et de remplacer par adx & ADX, mais sans succès.

C'est possible, et si c'est le cas (sans prendre trop de votre temps.), faites-moi savoir comment.

Je vous souhaite une excellente fin de semaine.

Dossiers :
 
Jeeves:
Bonjour mladen.

La dernière fois pour un moment....I promesse.

Comme vous le savez maintenant, je suis un grand fan de l'indicateur ADX.

Je l'utilise de plusieurs façons et je n'entre jamais dans une transaction contre lui.

J'aime aussi le principe de l'indicateur des trois canards.

et j'ai essayé de combiner les deux, mais sans succès.

Je vais faire un dernier essai, puis j'essaierai autre chose :

L'indicateur ci-joint, pour autant que je puisse le voir, ne comporte que des zones où un indicateur est mentionné - Lignes 54,57,60.

Tout le reste semble être lié au cadre temporel.

J'ai essayé de supprimer toute mention de 'sma & SMA' - et de remplacer par adx & ADX, mais sans succès.

C'est possible, et si c'est le cas (sans prendre trop de votre temps.), faites-moi savoir comment.

Passez une bonne fin de semaine.

Jeeves

Vous ne pouvez pas utiliser l'adx à la place de la sma dans cet indicateur. Les valeurs Adx sont dans une gamme de valeurs complètement différente et ne peuvent pas être comparées à Bid comme cet indicateur le fait dans le code.

 
mladen:
NWFstudent Vous pouvez voir dans celui-ci comment vous pouvez le faire d'une manière simple : https://www.mql5.com/en/forum/181187/page24 (y compris jusqu'à choisir automatiquement le troisième cadre temporel supérieur)

Merci, c'était un simple copier-coller

 

Chérie,

quelqu'un peut-il m'aider ?

Qu'est-il arrivé à ce " ticket invalide pour la fonction OrderModify " ?

Mais dans l'autre peut le commerce.

extern double lots = 0.1 ;

extern double stopsize = 200;

extern double profsize = 100 ;

extern double Risk =0.01 ;

int err ;

int ticket ;

double stop ;

double prof ;

int init() { return(0) ; }

int deinit() { return(0) ; }

int start()

{

int TotalOrders = 0 ;

for (int i=0 ; i <= OrdersTotal() ; i++)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

si (OrderSymbol() == Symbol())

TotalOrders++ ;

}

si (TotalOrders<1)

{

ticket=OrderSend(Symbol(), OP_SELL, getLots(Risk), Bid, 3, 0, 0, NULL,LimeGreen) ;

stop=(Bid+stopsize*Point) ;

prof=(Bid-profsize*Point) ;

OrderModify( ticket, OrderOpenPrice(), stop, prof, 0, Blue) ;

}

err=GetLastError() ;

Commentaire(" ") ;

}

 
hock87:
Cher,

Quelqu'un peut-il m'aider ?

Qu'est-il arrivé à ce " ticket invalide pour la fonction OrderModify " ?

Mais dans les autres cas, vous pouvez le négocier.

Cela signifie que votre commande n'a pas été acceptée / exécutée et que la fonction OrderSend() a renvoyé -1 comme résultat. Vérifiez toujours si le numéro du ticket est > -1 avant d'essayer de modifier une commande nouvellement créée.

 

Des exemples d'utilisation de fichiers simples (pas de fichiers d'historique) ?

 
mladen:
xtractalpha Je vais devoir le tester pour voir ce qui se passe. Si je trouve le problème, je le posterai ici.

Cher Mladen,

Avez-vous des nouvelles de ma demande ?

Bon week-end

Merci d'avance,

Thierry

 
xtractalpha:
Cher Mladen,

Avez-vous des nouvelles de ma demande ?

Bon week-end

Merci d'avance,

Thierry

Thierry

Supprimez les lignes 74 et 137 de votre code (vous appelez la fonction LotsizeCalc() à partir de ces deux lignes et de cette façon vous augmentez artificiellement la taille du lot à chaque tick).

Après avoir supprimé ces lignes, cela devrait fonctionner correctement.

 
mladen:
Thierry

Supprimez les lignes 74 et 137 de votre code (vous appelez la fonction LotsizeCalc() à partir des deux lignes et de cette façon vous augmentez artificiellement la taille du lot à chaque tick).

Après avoir supprimé ces lignes, cela devrait fonctionner correctement.

Merci pour votre réponse rapide !

J'ai supprimé les lignes, mais l'EA ouvre toujours des transactions avec une taille de lot erronée.

C'est vraiment étrange que l'EA ignore mon code Martingale. Car l'EA n'ouvre des transactions qu'avec une taille de lot de 0.10 ou 0.20..... (voir l'image).

Capture d'écran par Lightshot

Je pense que ma fonction lotsizecalc est à l'origine du problème. Je veux que la fonction multiplie ma taille de lot par le montant de la martingale lorsque je perds un trade.

Mon montant de martingale est de 1,5 et ma taille de lot est de 0,10. Cela signifie que lorsque je perds 5 trades d'affilée, les tailles de lot seront : 0.1 , 0.15 , 0.22 , 0.34 , 0.51 .

double LotsizeCalc() { if(lastOrderProfit()<0 && tradeNumber <=MaximumTrades) { tradeNumber++; malot=OrderLots()*MartingaleAmount; } else { malot = LotSize; tradeNumber=1; } return(malot); }

Quelqu'un peut-il vérifier ce code ?

Merci d'avance,

Thierry