Des problèmes ont été découverts lors des tests de rétroaction et nous n'arrivons pas à trouver la cause fondamentale ! - page 2

 

C'est ça,

Votre indicateur se repeint, c'est une des nombreuses versions de fisher.

=> Exécutez l'EA Macd_sample, ajoutez votre indicateur à l'écran pendant l'exécution de l'EA,

Mettez l'EA en pause, double-cliquez sur l'indicateur, ce n'est pas la même chose, il se repeint.

Ce que vous obtenez n'est pas ce que vous voyez sur l'écran.

il fonctionne, mais vous ne pouvez pas vérifier qu'il fait ce qu'il devrait faire en regardant simplement l'indicateur,

 

Edit : L'externe "period" est manquant :

   Joy1=iCustom(Symbol(),0,"Solar Joy",period, SolarIndex,1);
   Joy2=iCustom(Symbol(),0,"Solar Joy",SolarIndex,2);
 

mladen est un spécialiste de fischer :

https://www.forex-tsd.com/metatrader-4/474-fisher-12.html

Vous pouvez tester cet indicateur, presque le même que le "Solar Joy", j'ai ajouté une ligne limite = 2 et -2


Ajouter cette pièce :

extern int     RangePeriods=35;
extern double  PriceSmoothing=0.3;    // =0.67 bei Fisher_m10 
extern double  IndexSmoothing=0.3;    // =0.50 bei Fisher_m10
extern double SolarLimit=1;

void SolarJoy()
  {
  // HideTestIndicators(false);
   Joy1 = iCustom(NULL,0,"Fisher_m11",RangePeriods,PriceSmoothing,IndexSmoothing,4,1);
   Joy2 = iCustom(NULL,0,"Fisher_m11",RangePeriods,PriceSmoothing,IndexSmoothing,4,2);
   //Joy1=iCustom(Symbol(),0,"Solar Joy",SolarIndex,1);
   //Joy2=iCustom(Symbol(),0,"Solar Joy",SolarIndex,2);
  }

Dossiers :
 
ffoorr:

C'est ça,

Votre indicateur se repeint, c'est une des nombreuses versions de fisher.

=> Exécutez l'EA Macd_sample, ajoutez votre indicateur à l'écran pendant que l'EA fonctionne,

Mettez l'EA en pause, double-cliquez sur l'indicateur, ce n'est pas le même, il se repeint.

Ce que vous obtenez n'est pas ce que vous voyez sur l'écran.

ça marche, mais vous ne pouvez pas vérifier qu'il fait ce qu'il devrait faire juste en regardant l'indicateur,

Cher ffoorr, je l'ai suivi mais je n'ai pas vu l'indicateur changer ou une quelconque différence.
 
ffoorr:

Edit : L'externe "period" est manquant :

Cher ffoorr, vous pouvez vous référer à l'instruction de iCustom() :

[in]  Custom indicator input-parameters, separated by commas.

The passed parameters and their order must correspond with the declaration order and the type of extern variables of the custom indicator. If the values of input parameters  is not specified, the default values will be used.

Par ailleurs, j'ai également essayé d'ajouter les paramètres externes mais le résultat du test est le même.

 
ffoorr:

mladen est un spécialiste de Fischer :

https://www.forex-tsd.com/metatrader-4/474-fisher-12.html

Vous pouvez tester cet indicateur, presque le même que le "Solar Joy", j'ai ajouté une ligne limite = 2 et -2.


Ajoutez cette partie :


Dear ffoorr,

Oui, ils sont identiques. Cependant, nous ne pouvons toujours pas trouver où est le problème, n'est-ce pas ?

Vous pouvez vérifier le code que ce n'est pas un indicateur fisher. Le lissage de la barre actuelle est basé sur la barre précédente. Les données de l'indicateur de toutes les barres précédentes sont déjà gelées.

 
ffoorr:

Cher JolyDragon,

Oui c'est un indicateur fisher, vérifiez le code, si vous ne trouvez pas le problème, je ne peux pas vous aider.

Cherffoorr, autres amis,

Qu'est-ce qu'un indicateur de pêcheur ?

Quel est le type d'indicateur que les barres passées changent avec la barre actuelle ? Ce genre d'indicateur est une astuce et ne peut pas être utilisé par moi. Je veux dire que "Solar Joy" n'est pas ce genre d'indicateur. Si vous n'êtes pas d'accord, veuillez montrer les phrases de ce genre d'astuce.

Merci pour votre modification de code, mais il semble qu'elle ne soit pas très proche de ce sujet.

Je dois trouver la cause profonde car j'ai trouvé le même problème avec le back testing sur d'autres indicateurs personnalisés aussi.

Cherffoorr, avez-vous testé "Solar Joy" et "Trade Joy" ? Pourriez-vous s'il vous plaît tester et me faire savoir si vous rencontrez le même problème ? Merci beaucoup !


Gumai
 
jollydragon:

Qu'est-ce que l'indicateur Fisher ?

Je veux dire que "Solar Joy" n'est pas ce genre d'indicateur.

  1. Fisher est un indicateur de repeinture. Cela signifie qu'il ne vous montre pas le signal quand le marché le fait. Il vous montre où vous auriez dû avoir un signal plusieurs barres auparavant. Il semble bon mais vous ne pouvez pas l'utiliser pour le trading.
  2. ffoorr: Votre indicateur repaint, c'est une des nombreuses versions de fisher.
    ffoorr vous a déjà dit que c 'était ce genre d'indicateur.
  3. Le centre de gravité est aussi repeint.
    Il semble bon au niveau du signal (où j'ai placé la ligne verticale).
    Mais il ressemblait plus à ceci quand cette barre s'est formée.
    Plusieurs bars plus tard


 

JollyDragon

Peut-être que chaque semaine, il y a un nouvel indicateur de pêche qui surgit de quelque part, peut-être quelqu'un qui essaie d'attirer le client. Le nom de l'indicateur change, mais le code est toujours le même.

C'est parce que l'indicateur de pêcheur semble bon à première vue. Mais ce que vous voyez sur l'image n'est pas ce que vous obtenez lors du trading. Pouvez-vous dire où vous avez trouvé l'indicateur ?

Je n'ai pas testé les deux, je les ai fait fonctionner, en apportant de légères modifications. J'ai supprimé toutes les restrictions d'heure et de solde, et fait en sorte que l'EA trade sur les barres 2 et 3, au lieu de 1 et 2.

L'EA ouvre et ferme l'ordre sur le signal d'achat et le signal de vente, cela ne donne pas de bons résultats avec n'importe quel oscillateur, sauf quand on ferme les ordres sur le profit, donc je me suis arrêté là, je ne suis pas allé plus loin.

La cause profonde se trouve dans le code, étudiez le code.

Voici un indicateur et un EA :


PS : changez le nom de l'indicateur dans l'EA de SOLAR_JOY en SOLAR_JOY_A, il ne téléchargeait pas le SOLAR_JOY, il fallait changer le nom ;-)

Si cela ne fonctionne pas, commentez cette ligne :

// if((SignalAStartHour<SignalAEndHour && h>=SignalAStartHour && h<=SignalAEndHour) || (SignalAStartHour>SignalAEndHour && (( h<=SignalAEndHour && h>=0) || (h<=23 && h>=SignalAStartHour))))


Dossiers :
 
ffoorr:


Pouvez-vous dire où se trouve l'indicateur ?

La cause première se trouve dans le code, étudiez le code.


Cher ffoorr,

J'ai trouvé l'indicateur en faisant une recherche sur google.com.

Vous avez raison de dire que le code a un problème, car j'ai observé le re-dessin de l'indicateur. S'il vous plaît voir les captures d'écran ci-dessous.

Chers tous,

Je dois avoir une mauvaise compréhension des barres, des tampons ou de l'indicateur.

Selon le code, je comprends que chaque barre est toujours dessinée sur la base des barres précédentes à gauche et donc aucun redessin ne devrait se produire. Cependant, j'ai déjà observé un redécoupage.

Veuillez vous référer au fichier de l'indicateur joint ci-dessous. Le contenu principal ne compte que 10 lignes que j'ai collées ici.

J'ai beau essayer d'analyser encore et encore, je n'arrive pas à trouver le code permettant de redessiner les lignes de l'indicateur et cela doit déjà être hors de ma portée.

Puis-je vous demander une faveur et vous suggérer où se trouve le problème ? Merci beaucoup, beaucoup, ..., beaucoup !

   for(i=limit-1; i>=0; i--)
     {
      MaxH = High[iHighest(NULL,0,MODE_HIGH,period,i)];
      MinL = Low[iLowest(NULL,0,MODE_LOW,period,i)];
      price = (High[i]+Low[i])/2;
      Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
      Value=MathMin(MathMax(Value,-0.999),0.999);
      ExtBuffer0[i]=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;
      Value1=Value;
      Fish1=ExtBuffer0[i];
      if(ExtBuffer0[i]>0) ExtBuffer1[i]=10;
      else ExtBuffer1[i]=-10;
     }
Dossiers :
solarjoy.mq4  7 kb