[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 30

 
J'ai revu Dimka ! Il a mis un ruban sur la voiture. Et maintenant il gaze, gaze, la lumière clignote, mais il n'y a rien sur le compteur de vitesse ! Il a peur de ne pas pouvoir aller au travail demain ! Qu'en pensez-vous ?
 
villy:
J'ai revu Dimka ! Il a mis un ruban sur la voiture. Et maintenant il gaze, gaze, la lumière clignote, mais il n'y a rien sur le compteur de vitesse ! Il a peur de ne pas pouvoir aller au travail demain ! Qu'en pensez-vous ?

Avez-vous essayé un traitement ?
 
Peut-être, qui l'a résolu et est-ce que cette solution est possible dans mt4. Non trouvé. J'ai besoin d'un EA ou d'un script qui surveille le trading d'autres EA (les EA traitent sur différentes paires avec le même magik). Et après la fermeture de chaque ordre, un contrôle sur l'atteinte du profit magik (précédemment entré dans les paramètres de l'EA). Si le profit est supérieur ou égal, l'EA suivant devrait arrêter le trading par l'EA. En plus de ce conseiller de trading, il y en a d'autres qui traitent sur le compte. Comme trouvé l'EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) surveille la différence actuelle entre le solde du compte et les fonds et, si les limites spécifiées sont atteintes, il ferme tous les ordres et désactive tous les conseillers (en appuyant sur le bouton "Advisors" de la barre d'outils). Ce point n'est pas satisfait.
 
granit77:

42
laveosa 22.12.2012 14:46 | interdit| supprimer
J'ai un cas très étrange ici. Je teste le conseiller sur l'historique de 2004 à 2012 et le résultat est un, positif, et ensuite je fais un test sur la période de 2009 à 2012 et c'est juste complètement différent. un grand nombre d'ordres, plus de 20000 pour une période de 8 ans. lorsque le test est important, alors le graphique à barres de rentabilité montre que de 2009 à 2012 le profit est propre et beau et lorsque vous testez toute distance inférieure à 2009 alors juste CHAOS. Savez-vous ce que ça peut être ? Merci d'avance les gars :)


Eh bien, je dirais que votre EA est sur-optimisé... Mais s'il s'agit de la période 2004-2012, puis de la période 2009-2012, il est fort probable qu'au cours de la période 2004-2008, certaines commandes aient été bloquées et qu'elles aient été clôturées avec succès (ou peut-être sans succès) à la fin des tests.
 
evgenGX:
Peut-être, qui l'a résolu et si une telle solution est possible dans mt4. Non trouvé. J'ai besoin d'un EA ou d'un script qui surveille le trading d'autres EA (les EA traitent sur différentes paires avec le même magik). Et après la fermeture de chaque ordre, un contrôle sur l'atteinte du profit magik (précédemment entré dans les paramètres de l'EA). Si le profit est supérieur ou égal, l'EA suivant devrait arrêter le trading par l'EA. En plus de cet EA de trading, il y a d'autres transactions sur le compte. Comme trouvé EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) surveille la différence actuelle entre le solde du compte et les fonds et en cas d'atteinte des limites spécifiées, il ferme tous les ordres et désactive tous les conseillers (clique sur le bouton "Advisors" de la barre d'outils). Ce point n'est pas satisfait.

Tout d'abord, atteindre le bénéfice sur la magie... c'est quelque chose de nouveau))) S'il y a beaucoup de conseillers-experts, pourquoi ne pas utiliser des variables globales pour chacun d'eux ?
 

aide eh !!!!

Comment obtenir le nombre d'ordres perdants (fermés dans l'historique) à partir des 10 derniers ordres fermés ?

il existe une fonction mais elle ne recherche qu'une commande spécifique

ici :

double WW1(int stop,int mn=-1, string sy="", int op=-1 ) {
datetime t ;
double ocp, osl ;
int dg, i, j=-1, k=OrdersHistoryTotal() -1 ;<-- ici nous pouvons changer le numéro de série de la commande à partir de la fin (-1 est l'avant-dernier, si nous enlevons -1 c'est le dernier, etc.)etc.)

if (sy=="0") sy=Symbol() ;
for (i=0 ; i<k ; i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy || sy=="") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) {
t=OrderCloseTime() ;
j=i ;
}
}
}
}
}
}
}
if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {

double rr=OrderProfit() ;


}
return(rr) ;
}


en utilisant cette fonction, je définis bien sûr le type de perte ou de gain

Quelqu'un a-t-il une fonction qui lit les 10 derniers ordres et donne le nombre d'ordres perdants de ceux-ci ?

 

Il y a, bien sûr, une suggestion de faire de cette fonction un type de fonction bool, pour obtenir des réponses vraies ou fausses,

mais alors nous aurons besoin de 10 fonctions de ce type avec des nombres différents (de 1 à -9) et alors nous obtiendrons le nombre de mensonges et de vérités.

alors qui peut conseiller comment obtenir le nombre de fausses et de faux ?

mais c'est beaucoup d'opérations et de formules, je considère que c'est une perversion.

 
evgenGX:
Peut-être, qui l'a résolu et si une telle solution est possible dans mt4. Non trouvé. J'ai besoin d'un EA ou d'un script qui surveille le trading d'autres EA (les EA traitent sur différentes paires avec le même magik). Et après la fermeture de chaque ordre, un contrôle sur l'atteinte du profit magik (précédemment entré dans les paramètres de l'EA). Si le profit est supérieur ou égal, l'EA suivant devrait arrêter le trading par l'EA. En plus de cet EA, il y a d'autres transactions sur le compte. Comme trouvé EA EquityLimits(_http://mtexperts.narod.ru/files/EquityLimits_EA.ex4) surveille la différence actuelle entre le solde du compte et les fonds et en cas d'atteinte des limites spécifiées, il ferme tous les ordres et désactive tous les EAs (en appuyant sur le bouton "EAs" de la barre d'outils). Ce point n'est pas satisfait.
Deux Expert Advisors peuvent "communiquer" entre eux par le biais de variables globales du terminal. L'EA suivant crée une variable GV, par exemple Symbol_STOP, après l'événement spécifié (fermeture de tous les ordres) et met la variable à 1. Et l'EA de trading surveille la variable et s'il trouve cette variable et que sa valeur est 1, l'EA sortira (retournera).
 
gheka:

aide eh !!!!

Comment obtenir le nombre d'ordres perdants (fermés dans l'historique) sur les 10 derniers ordres fermés ?

j'utilise cette fonction pour définir le type de perte ou de gain

peut-être existe-t-il une fonction qui lit immédiatement les 10 derniers ordres et donne un nombre d'ordres perdants de ceux-ci ?


c'est ainsi que le problème est résolu
int num_losed,tt,check=10 ;
for(tt=OrdersHistoryTotal()-1;tt>=0;tt--) if(OrderSelect(tt,SELECT_BY_POS,MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==magique) {
si(OrderProfit()<0) num_losed++ ;
vérifier.. ;
si(check<=0) break ;

}

 
keep87:


Lorsque le code dépasse les 1000 lignes, vous commencez à écrire de manière compacte).

Dans MT4 aussi, les performances se dégradent, notamment lors des tests. La version laconique est plus rapide.


D'après ce que j'ai entendu, le compilateur supprime tous les "trous" lors de la compilation du code. Logiquement, il ne devrait pas se soucier de l'option à écrire pour la performance, parce que dans la sortie du fichier compilé sera le même "sans vides".

N'est-ce pas ?