Erreurs, bugs, questions - page 797

 
sergeev:

C'est ça ?


J'ai deux questions.

- pourquoi avez-vous changé le calcul du quadruplet dans le code ?

- Qu'est-ce que cet indicateur montre ? Comment trader dessus ?

C'est ici.

- Je ne l'ai pas changé. J'ai tout transféré un par un. Au lieu de f-i dans le code de quatre, j'utilise les valeurs des tableaux MA précédemment calculés à partir des moyennes mobiles lentes et rapides de OPEN, CLOSE, HIGH, LOW dans cinq, en multipliant à nouveau par les coefficients d'instruments appropriés.

Par exemple, le code TOTAL d'un quatre :

if (Symbol() == "EURUSD"){
               OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);
               HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);
               LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
               CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
...
 pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;

Voici l'un des f-i EUR que j'utilise plutôt en cinq (voir ci-dessous) - en calculant immédiatement les formules qu'il contient. C'est du one-to-one :

double EUR(int Mode, int Price, int i, int per1, int per2){
   return(
            (iMA("EURUSD",0,per2,0,Mode,Price,i)-
            iMA("EURUSD",0,per1,0,Mode,Price,i))*10000*kUSD
            +
            (iMA("EURGBP",0,per2,0,Mode,Price,i)-
            iMA("EURGBP",0,per1,0,Mode,Price,i))*10000*kGBP
            +
            (iMA("EURJPY",0,per2,0,Mode,Price,i)-
            iMA("EURJPY",0,per1,0,Mode,Price,i))*100*kJPY
          ); 

En cinq, le calcul se fera comme suit : sans fonctions, comme en quatre, mais directement par des tableaux calculés précédemment :

if (Symbol() == "EURUSD")
        {     
// ----  OPEN=EUR(Mode,PRICE_OPEN,i,per1,per2)-USD(Mode,PRICE_OPEN,i,per1,per2);          
         OPEN=((OPEN_F_EURUSD[i]-OPEN_S_EURUSD[i])*10000*kUSD+(OPEN_F_EURGBP[i]-OPEN_S_EURGBP[i])*10000*kGBP+(OPEN_F_EURJPY[i]-OPEN_S_EURJPY[i])*100*kJPY -
               (OPEN_S_EURUSD[i]-OPEN_F_EURUSD[i])*10000*kEUR+(OPEN_S_GBPUSD[i]-OPEN_F_GBPUSD[i])*10000*kGBP+(OPEN_F_USDJPY[i]-OPEN_S_USDJPY[i])*100*kJPY);
               
// ----  HIGH=EUR(Mode,PRICE_HIGH,i,per1,per2)-USD(Mode,PRICE_HIGH,i,per1,per2);              
         HIGH=((HIGH_F_EURUSD[i]-HIGH_S_EURUSD[i])*10000*kUSD+(HIGH_F_EURGBP[i]-HIGH_S_EURGBP[i])*10000*kGBP+(HIGH_F_EURJPY[i]-HIGH_S_EURJPY[i])*100*kJPY -
               (HIGH_S_EURUSD[i]-HIGH_F_EURUSD[i])*10000*kEUR+(HIGH_S_GBPUSD[i]-HIGH_F_GBPUSD[i])*10000*kGBP+(HIGH_F_USDJPY[i]-HIGH_S_USDJPY[i])*100*kJPY);
               
// ----  LOW=EUR(Mode,PRICE_LOW,i,per1,per2)-USD(Mode,PRICE_LOW,i,per1,per2);
         LOW=((LOW_F_EURUSD[i]-LOW_S_EURUSD[i])*10000*kUSD+(LOW_F_EURGBP[i]-LOW_S_EURGBP[i])*10000*kGBP+(LOW_F_EURJPY[i]-LOW_S_EURJPY[i])*100*kJPY -
               (LOW_S_EURUSD[i]-LOW_F_EURUSD[i])*10000*kEUR+(LOW_S_GBPUSD[i]-LOW_F_GBPUSD[i])*10000*kGBP+(LOW_F_USDJPY[i]-LOW_S_USDJPY[i])*100*kJPY);
               
// ---   CLOSE=EUR(Mode,PRICE_CLOSE,i,per1,per2)-USD(Mode,PRICE_CLOSE,i,per1,per2);
         CLOSE=((CLOSE_F_EURUSD[i]-CLOSE_S_EURUSD[i])*10000*kUSD+(CLOSE_F_EURGBP[i]-CLOSE_S_EURGBP[i])*10000*kGBP+(CLOSE_F_EURJPY[i]-CLOSE_S_EURJPY[i])*100*kJPY -
               (CLOSE_S_EURUSD[i]-CLOSE_F_EURUSD[i])*10000*kEUR+(CLOSE_S_GBPUSD[i]-CLOSE_F_GBPUSD[i])*10000*kGBP+(CLOSE_F_USDJPY[i]-CLOSE_S_USDJPY[i])*100*kJPY);
         }
      
      pair[i]=(OPEN+HIGH+LOW+CLOSE)/4;    

- L'effet cumulatif des mouvements de plusieurs symboles, les différences de MA rapide et lent des symboles OUVERT, HAUT, BAS, FERME sont pris en compte. Ils sont additionnés et divisés par quatre en tenant compte des coefficients des multiplicateurs des différences de MA rapide et lente des instruments qui sont également soumis à l'optimisation.

Pour échanger : 1. en traversant la ligne zéro + Différent (distance du zéro pour filtrer les fausses entrées) de bas en haut, puis pour acheter, de haut en bas, puis pour vendre. Voir Conseiller expert dans la bande-annonce.

2. sur les lignes d'inflexion : s'il y a une inflexion en dessous de zéro, alors achetez, s'il y a une inflexion au-dessus de zéro de cette ligne de différence entre la MA cumulée et l'instrument, alors vendez (cette option n'est pas encore disponible dans l'EA).

Je veux utiliser soit la première, soit la deuxième option du championnat.

Dossiers :
 

Affichage incorrect du graphique (mode barres).

Au démarrage du terminal, l'affichage des symboles du tampon indicateur est sensiblement décalé par rapport aux images des barres auxquelles ils se rapportent.

construire 687

En mode visualisation également, lorsqu'un graphique bouge, les symboles tampons de l'indicateur se déplacent derrière les barres correspondantes avec un décalage très fort et visible.

 
R0MAN:

- Je ne l'ai pas changé. J'ai tout transféré d'une personne à l'autre.

Votre résultat n'est pas le même.

Je ne comprends pas pourquoi vous regroupez toujours mqh

. J'ai mis de l'ordre dans le code. J'ai ajouté deux classes

CSeries - une classe qui sert 4 tableaux et 4 tampons + ils sont définis dans INDICATOR_CALCULATION
CPair - une classe qui sert deux CSeries - Fast et Slow.

Et les fonctions USD/JPY/EUR/GBP + début transféré comme dans MT4


j'ai comparé les résultats avec MT4 - one-to-one - coïncident complètement

La bière est offerte par la maison :)


Je veux utiliser la première ou la deuxième option du championnat.

Avez-vous des résultats probants ?

Dossiers :
 

et c'est le genre d'indicateur que vous essayiez de faire à l'origine

Dossiers :
 
sergeev:

1. vos résultats ne correspondent pas.

Je ne sais pas pourquoi tu as toujours MQH dans ton kit.

Quoi qu'il en soit, j'ai nettoyé le code. J'ai ajouté deux classes

CSeries - une classe, qui sert 4 tableaux et 4 tampons + ils sont définis dans INDICATOR_CALCULATION
CPair - une classe qui sert deux CSeries - Fast et Slow.

Et fonctions USD/JPY/EUR/GBP + départ décalé comme dans MT4


2. J'ai comparé les résultats avec MT4 - one-to-one - ils sont identiques.

La bière est offerte par la maison :)

3. avez-vous des résultats probants ?


1. Oh ! Merci du fond du cœur ! Je ne l'ai pas encore regardé. Est-ce que c'est iCustom - est-ce que ça se prête ?

Pas une chouette sur un cinq. J'ai cette indica depuis des années - dans les archives.

2. chirurgien avec son MASD - inspiré ! Il donne tous les neuro-multi-spectra-ultra-ul ultras avec ses 11 métiers. :-)

C'est comme ça qu'il est d'habitude. Maintenant, si le iCustom répond à mes besoins, je mettrai les signaux dans des hiboux et je deviendrai fou !

3. Bien qu'il n'y ait pas de hibou sur le talon... Se prête-t-il à iCustom ? - J'ai besoin de ses valeurs sur la première, la deuxième et la troisième barre (pour coder deux conditions d'entrée sur le marché : passage par zéro et (ou) point d'inflexion au-dessus/au-dessous de zéro).

4. "Tu me dois une bière :-) + a écrit dans un message personnel.

 
R0MAN:

3. Bien qu'il n'y ait pas de hibou sur le talon... Se prête-t-il à iCustom ? - a besoin de ses valeurs à partir de la première, deuxième et troisième barre (pour coder deux conditions d'entrée sur le marché : passage par zéro et (ou) point d'inflexion au-dessus/au-dessous de zéro).

tout est transmis à l'iCustom.
 
Rosh:
Le débogage n'est pas disponible dans le testeur
Y a-t-il des projets ? Le débogage en ligne est peu utile en raison des conditions non reproductibles.
 
Rappelez-moi, comment faire pour qu'un indicateur s'affiche automatiquement dans la fenêtre du graphique, qui est ouverte après l'exécution dans le testeur ? Je ne pense pas avoir eu besoin de faire quoi que ce soit avant.
 
marketeer:
Le débogage en ligne est peu utile car les conditions ne sont pas reproductibles.

Il y a une lettre comme ça. Elle est grande et en gras.

Y a-t-il des projets ?

Je ne pense pas que MetaQuotes ait l'enthousiasme nécessaire pour passer d'un testeur à un débogueur, ce qui est compréhensible - la tâche est tordue.

Des idées de"serveur virtuel" circulent - c'est plus proche de la réalité, surtout si l'entrée de données arbitraires (à une vitesse arbitraire) est autorisée. Mais c'est aussi une option qui met beaucoup de pression sur les métacitations (apparemment, pour plusieurs raisons à la fois).

Mais d'autres voies sont possibles. Quelque chose de troisième. Quelque chose comme un "microtester" directement dans le débogueur. On définit une paire, on spécifie des points d'arrêt, on le lance et voilà. Passez-le dans le débogueur. Avec des arrêts aux points d'arrêt et la possibilité d'examiner pas à pas et de commencer "plus loin", jusqu'à la fin de la "période de débogage".

Comme ci comme ça.

// Mais ce ne sont que mes spéculations/réflexions à voix haute. Peut-être que Stringo trouvera quelque chose d'autre.

Mais il faut faire quelque chose, c'est sûr.

 

MetaDriver:

Il y a des idées qui circulent sur le "serveur virtuel" - c'est plus proche de la réalité, surtout si vous autorisez l'entrée de données arbitraires (à une vitesse arbitraire). Mais c'est aussi une option qui met à rude épreuve les métacitations (apparemment, pour plusieurs raisons à la fois).

Ouch quelque chose me semble qu'un testeur avec débogage serait plus réaliste, et il ne faut même pas rêver dans cette direction.

Raison: