Aide au codage - page 96

 

Bonjour Mladen ,

Je veux garder la trace de quelques choses dans mon code, et l'un d'eux est le nombre de trades ouverts avec différents numéros magiques et différents commentaires de la même paire donc j'utilise ce code, quelque part dans le code je fais une erreur comme le CPU est de 100% donc j'essaie d'améliorer mes fonctions. le suivant est l'un d'eux, pouvez-vous s'il vous plaît suggérer une meilleure alternative pour ma méthode

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}
 
MiniMe:
Bonjour Mladen ,

Je veux garder la trace de quelques choses dans mon code, et l'un d'entre eux est le nombre de trades ouverts avec différents numéros magiques et différents commentaires de la même paire donc j'utilise ce code, quelque part dans le code je fais une erreur comme le CPU est de 100% donc j'essaie d'améliorer mes fonctions. le suivant est l'un d'eux, pouvez-vous s'il vous plaît suggérer une meilleure alternative pour ma méthode

x=OrdersTotal(); xx=x; //-- Count How magic number && comment are open for the same pair for( i=0;i<x;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym /*&& OrderCloseTime()==0 */){

TemMagic= OrderMagicNumber(); TemOrdComment= OrderComment(); OrdOpenPrice= OrderOpenPrice(); OrdType= OrderType(); iSameSymTotal++; // count all oopen trades from the same Symbol for( i=0;i<xx;i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if( OrderSymbol() == Sym ){ if ( TemMagic!= OrderMagicNumber())CounTMagic++; if (TemOrdComment!= OrderComment())CounTComment++; }} }}[/PHP]

Nous avons un code comme celui-ci (j'ai ajouté quelques commentaires afin de clarifier ce qui est stocké où) :

[PHP] string uniques[][4] ; ArrayResize(uniques,0) ;

//

//

// uniques[][0] -> Symbole

// uniques[][1] -> Nombre magique

// uniques[][2] -> Commentaire

// uniques[][3] -> Nombre d'occurrences

// doit être transformé en int en utilisant StrToInt()

//

//

for( int i=OrdersTotal()-1 ; i>=0 ; i--)

{

OrderSelect(i,SELECT_BY_POS, MODE_TRADES) ;

bool found=false ;

for (int k=ArrayRange(uniques,0)-1 ; k>=0 && !found ; k--)

si (OrderSymbol() == uniques[k][0] && OrderMagicNumber() == StrToInteger(uniques[k][1]) && OrderComment() == uniques[k][2]) { uniques[k][3] = StrToInteger(uniques[k][3])+1 ; found=true ; }

if (!found)

{

k = ArrayRange(uniques,0) ;

ArrayResize(uniques,k+1) ;

uniques[k][0] = OrderSymbol() ;

uniques[k][1] = OrderMagicNumber() ;

uniques[k][2] = OrderComment() ;

uniques[k][3] = 1 ;

}

}

PS : la taille du tableau lui-même (ArrayRange(uniques,0)) est le nombre de combinaisons uniques symbole + numéro magique + commentaire, et uniques[nn][3] montre combien d'occurrences pour cette combinaison particulière il y a dans la file d'attente des commandes.

 

Merci beaucoup Mladen,

Si je veux dire si j'ai plus d'une transaction, ce serait if (uniques[1][3] == 1) , correct ?

Mais cela ne compile pas, est-ce parce que uniques[1][3] est un tableau de chaînes ?

Cela devrait-il être

if (StrToInteger(uniques[1][3])==1) ?

 
MiniMe:
Merci beaucoup Mladen,

Si je veux dire que j'ai plus d'une transaction, ce serait if (uniques[1][3] == 1) , correct ?

Mais cela ne compile pas, est-ce parce que uniques[1][3] est un tableau de chaînes ?

Cela devrait-il être

si (StrToInteger(uniques[1][3])==1) ?

Oui, vous devez d'abord le convertir en entier. Mais alors la condition serait : if (StrToInteger(uniques[1][3])>1) et ce serait pour la deuxième combinaison unique symbole + numéro magique + commentaire trouvée.

 

Salut Mladen,

J'ai ce séquentiel de Demark...mais il est faux dans la phase de compte à rebours.

C'est l'explication exacte du livre de Jason Perl :

tD Setup vs. tD Compte à rebours séquentiel

Une fois que le TD Setup est terminé, le TD Countdown peut commencer, à partir de la clôture

de la mesure 9 du TD Setup (incluse). La distinction entre

les deux stratégies est la suivante :

- TD Setup compare la clôture actuelle avec la clôture correspondante

quatre barres plus tôt,

Alors que

- Le compte à rebours TD compare la clôture actuelle avec le plus bas deux barres plus tôt pour un achat potentiel.

deux barres plus tôt pour un achat potentiel, et compare la clôture actuelle avec le haut deux barres plus tôt pour une vente potentielle.

Cette relation de prix est une distinction importante par rapport au TD Setup.

Cette relation de prix est une distinction importante par rapport au TD Setup, car le marché doit être en tendance pour que le TD Countdown puisse être utilisé.

Cette relation de prix est une distinction importante par rapport au TD Setup, car le marché doit être en tendance pour que le TD Countdown identifie objectivement le point

point d'épuisement probable d'un renversement de tendance.

On peut commencer à chercher la première barre d'un TD Buy Countdown

lorsqu'une configuration d'achat TD est en place.

■ Pour initier le compte à rebours d'achat TD

Après

TD Buy Setup est en place, recherchez l'initiation d'un TD Buy Countdown.

Si

la barre neuf d'un TD Buy Setup a également une clôture inférieure ou égale au plus bas deux barres

précédentes

Alors,

La barre 9 d'un TD Buy Setup devient la barre 1 d'un TD Buy Countdown.

Si

Cette condition n'est pas remplie,

Alors

la première barre du compte à rebours d'achat TD est reportée jusqu'à ce qu'elle le soit, et le compte à rebours d'achat TD

continue jusqu'à ce qu'il y ait un total de treize fermetures, chacune inférieure ou égale à,

le plus bas deux barres plus tôt.

Compte à rebours de vente TD

Dès qu'un TD Sell Setup est en place, nous pouvons commencer à chercher la première barre d'un TD Sell Countdown.

première barre d'un compte à rebours de vente TD ; la barre neuf d'un TD Sell Setup peut également être la barre un d'un compte à rebours de vente TD, si vous le souhaitez.

une d'un TD Sell Countdown si elle satisfait aux conditions suivantes .

■ Condition pour un TD Sell Countdown

Avec la barre neuf du TD Sell Setup en place, il doit y avoir une clôture supérieure ou égale au plus haut deux barres plus tôt.

égale au plus haut des deux barres précédentes.

Dans mon image vous pouvez voir (pour le compte à rebours de vente) que la barre n°6 n'a pas une clôture supérieure au haut deux barres plus tôt.... donc c'est une erreur !

S'il vous plaît, pouvez-vous corriger cette erreur pour le compte à rebours d'achat et de vente ?

Merci d'avance

Dossiers :
 

J'ai trouvé l'erreur (cette putain de version 500 de mt4 ne crée pas les fichiers ex4), maintenant ça marche. J'ai essayé d'effacer le post, mais je n'ai pas réussi.

marley60:
Bonjour,

J'espère que vous pourrez m'aider avec ceci. Je veux que les points (flèches ; aqua&yellow) de l'indi dans la fenêtre deux s'affichent comme des points (flèches) sur la clôture (ou le haut pour le signal d'achat/le bas pour le signal de vente) dans la fenêtre un (la fenêtre principale du graphique). J'ai essayé pendant des heures, mais je ne serai jamais un codeur ;-)

 
marley60:
J'ai trouvé l'erreur (cette putain de version 500 de mt4 ne crée pas les fichiers ex4), maintenant ça marche. J'ai essayé d'effacer le post, mais je n'ai pas réussi.

Ne vous inquiétez pas de l'article précédent

Au moins, nous savons qu'il y a un autre bug dans la version 500.

 

Bonjour à tous !

J'ai mis en place une vidéo de 3 minutes expliquant mon problème dans le but d'être plus concis et percutant en demandant de l'aide !

Vidéo:2013-06-13_1517 - Bibliothèque de D.Gilberto - devrait l'expliquer clairement !

J'apprécierais grandement les suggestions ou l'aide de quiconque. Je veux essentiellement savoir quelle est la barre au moment où toutes les moyennes mobiles se croisent, jusqu'au moment où la prochaine barre suivant celle-ci, revient toucher la 21 EMA - À ce stade, je veux que mon ordre soit placé au plus haut/bas de ces plages de barres. L'ordre doit être retiré sur la première barre qui clôture au-delà de l'EMA 60...

J'espère que ce n'est pas trop demander et j'apprécierais beaucoup qu'une étincelle brillante me donne un coup de main !

Je vous remercie !

 

Codeurs

J'aime bien cette stratégie simple basée sur le RSI en image (peut être que c'est du TS)

Sympathique et simple et pourtant efficace Pas besoin de plus de précisions, une image vaut mille mots !

Est-il possible de coder de tels indicateurs (bougies RSI et oscillateur) pour MT4 ? ou avons-nous déjà de tels indicateurs ?

Merci

Dossiers :
 
marley60:
J'ai trouvé l'erreur (cette putain de version 500 de mt4 ne crée pas les fichiers ex4), maintenant ça marche. J'ai essayé d'effacer le message, mais je n'ai pas pu.

Marley,

Voir mon message dans la rubrique Bugs connus de Metatrader. Moi et plusieurs autres personnes avons eu le même problème

Tzuman