Comment mettre à jour les indicateurs pour la version 600+ ? - page 4

 
qjol:
vous plaisantez bien sûr, cela a fonctionné


Oui, cela fonctionne maintenant.

J'ai utilisé la dernière version avec les 10 paramètres et cela fonctionne maintenant.

Merci.

BTW, je ne comprends toujours pas pourquoi l'ancienne version avec 7 paramètres ne fonctionnait pas !

Comme dans l'image ci-dessus, cet indicateur a 8 paramètres externes. Ici, 'TimeFrame' a été défini comme '0' avant la chaîne "xpMA".

Ensuite, j'ai déclaré le reste des 7 paramètres comme ci-dessous :

double  signal = iCustom(NULL,0,"xpMA",MA_Period,MA_Type,MA_Applied ,T3MA_VolumeFactor,JMA_Phase,Step_Period,DebugMode,3,0); 

Donc, où j'ai fait l'erreur s'il vous plaît indiquer.

Salutations

 
deysmacro:

Il doit apprendre des erreurs communes.

Merci pour le soutien et la compréhension :)
 
Arav007:


BTW, je ne comprends toujours pas pourquoi l'ancienne version avec 7 paramètres ne fonctionnait pas !

Comme dans l'image ci-dessus, cet indicateur a 8 paramètres externes. Ici, 'TimeFrame' a été défini comme '0' avant la chaîne "xpMA".

Puis j'ai déclaré le reste des 7 paramètres comme ci-dessous :

Donc, où j'ai fait l'erreur s'il vous plaît indiquer.


Laissez-moi vous répéter qu'en utilisant iCustom vous devez passer les paramètres correspondant à l'ordre de déclaration.


Les paramètres passés et leur ordre doivent correspondre à l'ordre de déclaration et au type des variables externes de l'indicateur personnalisé. Si les valeurs des paramètres d'entrée ne sont pas spécifiées, les valeurs par défaut seront utilisées.

vous NE POUVEZ PAS sauter un paramètre

Par exemple, si un indicateur personnalisé a 5 paramètres, vous pouvez l'utiliser comme ceci :

double x = iCustom (Symbol(), Period(), "Name", Param1, Param2, Param3, mode, shift);

mais vous ne pouvez pas l'utiliser comme ça :

double x = iCustom (Symbol(), Period(), "Name", Param2, Param3, Param4, mode, shift);
 
qjol:


laissez-moi le dire à nouveau en utilisant iCustom vous devez passer les paramètres correspondant à l'ordre de déclaration

vous NE POUVEZ PAS sauter un paramètre

par exemple si un indicateur personnalisé a 5 paramètres vous pouvez l'utiliser comme ceci :

mais vous ne pouvez pas l'utiliser comme ceci :



C'est ce que je fais mal et que je n'arrive pas à identifier.

Ok, voici comment j'ai assigné les paramètres :

Param1=MA_Period

Param2=MA_Type

Param3=MA_Applied

Param4=T3MA_VolumeFactor

Param5=JMA_Phase

Param6=Step_Period

Param7=DebugMode

Lequel de ces paramètres est erroné ?

Salutations

 

vous avez sauté le premier "TimeFrame".



 
qjol:


Vous avez sauté le premier "TimeFrame".




ohh, alors c'est le cas.

Si je manque l'un des paramètres externes, cela ne fonctionnera pas.

Mais je l'ai omis consciemment car il devrait fonctionner avec l'horizon temporel actuel qui est défini au départ :

iCustom(Null, 0, Param1,...)

C'est pourquoi j'ai pensé qu'il n'était pas nécessaire de le redéfinir comme 'TimeFrame'.

Merci pour la correction.

 
Arav007:


ohh, alors c'est le cas.

Si j'oublie l'un des paramètres externes, cela ne fonctionnera pas.

Non, vous pouvez en oublier, mais vous ne pouvez pas en sauter. Par exemple, s'il y a 5 paramètres et que vous laissez les 2 derniers, il n'y a pas de problème.

mais vous ne pouvez pas sauter 1 et utiliser 2 3 4 5

Mais je l'ai sauté consciemment car il devrait fonctionner avec le cadre temporel actuel qui est défini au départ :

iCustom(Null, 0, Param1,...)

oui, mais le terminal ne sait pas ce que contient ce paramètre, il peut contenir n'importe quoi (pas nécessairement l'intervalle de temps)

C'est pourquoi j'ai pensé qu'il n'était pas nécessaire de le redéfinir comme 'TimeFrame'.

Ne pensez pas, agissez ! ;-)

Merci pour la correction.

Raison: