Aide au codage - page 362

 
triip:
Les gars, j'ai besoin d'un peu d'aide pour coder la relation RSI et SMA.

Comme vous le voyez sur l'image, il y a des signaux (flèches haut-bas), mais certains d'entre eux sont des faux signaux. J'ai donc décidé d'éliminer les faux signaux avec RSI14 et SMA20 dessus.

La logique derrière cela est très simple, la flèche vers le haut doit apparaître si le RSI14 est AU-DESSUS de la SMA20. Une flèche vers le bas devrait apparaître si le RSI est EN DESSOUS de la SMA20.

J'ai marqué quelques flèches ascendantes incorrectes, parce que le RSI est trop élevé, mais je peux coder cette partie moi-même.

J'ai trouvé beaucoup de codes de croisement RSI<MA, mais la plupart d'entre eux vont long/short si le croisement apparaît. Mais j'ai besoin d'un terme où le RSI est AU-DESSUS ou EN-DESSOUS et ensuite faire quelque chose.

Pour l'instant, j'ai trouvé que je devais utiliser l'IRSI et le tableau pour cela, mais je n'arrive pas à mettre ce code en place moi-même.

triip

Avez-vous vérifié celui posté ici : https://www.mql5.com/en/forum/general

 
mladen:
triip Avez-vous vérifié celui qui a été posté ici : https://www.mql5.com/en/forum/general

Oui, mais tout ce que j'ai trouvé était un signal de croisement. J'ai besoin de savoir si le RSI est au-dessus ou au-dessous de la SMA.

Je comprends que je dois d'abord déclarer ce que signifie ABOVE et ce que signifie BELOW, après quoi je peux les utiliser dans la phrase IF.

 
mladen:
triptyque


Avez-vous vérifié celui posté ici : https://www.mql5.com/en/forum/174476



Oui, mais je n'ai trouvé que des signaux de croisement. J'ai besoin de conditions si le RSI est au-dessus/au-dessous de la SMA.


Je comprends que d'abord je dois déclarer ce qui signifie ABOVE et ce qui signifie BELOW, après quoi je peux les utiliser dans la phrase IF.

 
triip:
Oui, mais tout ce que j'ai trouvé était un signal de croisement. J'ai besoin de conditions si le RSI est au-dessus/au-dessous de la SMA. Je comprends que d'abord je dois déclarer ce qui signifie ABOVE et ce qui signifie BELOW, après quoi je peux les utiliser dans la phrase IF.

triip

Je ne sais pas quel rsi vous avez utilisé pour obtenir ces signaux sur votre image, donc ... c'est tout ce que je peux dire. Sans le code ne peut pas aider plus

 
mladen:
Je n'ai aucune idée du RSI que vous avez utilisé pour obtenir ces signaux sur votre image, donc ... c'est tout ce que je peux dire. Sans le code ne peut pas aider plus

Désolé, je n'ai pas mentionné que les signaux de flèches ne proviennent pas du RSI. C'est un autre code que j'utilise. Mais j'ai vu que le RSI avec la SMA aidera à éviter les signaux erronés. C'est pourquoi j'aime éditer le code de signal pour qu'il soit capable d'identifier les conditions RSI aussi.

Ce dont j'ai besoin :

Les signaux de flèches arrivent, mais tous ne sont pas de vrais signaux. Donc avant que la flèche n'arrive, il doit y avoir une autre vérification if qui contrôle les conditions RSI.

if (mon code actuel && RSI est au-dessus/au-dessous de la SMA)

{ afficher la flèche

}

J'ai besoin de la partie rouge.

 
triip:
Désolé, je n'ai pas mentionné que les signaux de flèches ne proviennent pas du RSI. C'est un autre code que j'utilise. Mais j'ai vu que le RSI avec la SMA aidera à éviter les signaux erronés. C'est pourquoi j'aime éditer le code du signal pour qu'il soit capable d'identifier les conditions RSI aussi.

Ce dont j'ai besoin :

Les signaux de flèches arrivent, mais tous ne sont pas de vrais signaux. Donc, si une flèche arrive, il doit y avoir un autre if check qui contrôle les conditions du RSI.

if (mon code actuel && RSI est au-dessus/au-dessous de la SMA)

{ montre la flèche

}

J'ai besoin de la partie rouge.

triip

Vous devez faire ce qui suit :

1. Sauvegarder les valeurs de RSI dans un tampon

2. Utilisez iMAOnArray() pour calculer la SMA de ces valeurs RSI.

3. Comparez la valeur du RSI sauvegardé et la valeur calculée par iMAOnArray() et c'est votre condition.

 
mladen:
triip

Vous devez faire ce qui suit :

1. Sauvegarder les valeurs du RSI dans un tampon

2. Utiliser iMAOnArray() pour calculer la SMA de ces valeurs RSI.

3. Comparez la valeur du RSI sauvegardé et la valeur calculée par iMAOnArray() et c'est votre condition.

Donc 1 et 2 quelque chose comme ça ?

1.

#property indicator_buffers 2

extern int rsi_p = 14;

extern int MA_Period=20;

extern int MA_Shift=0;

extern int MA_Method=0;

extern int NumberOfBarsToCalculate = 10000;

double Buffer0[];

double Buffer1[];

double Ma[];

double RSi[];

int init()

{

IndicatorBuffers(4);

SetIndexBuffer(0,Buffer0);

SetIndexBuffer(1,Buffer1);

SetIndexBuffer(2,Ma);

SetIndexBuffer(3,RSi);

return(0);

}

[/CODE]

2.

[CODE]int start() {

int shift;

double rsi = 0;

for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){

RSi[shift] = iRSI(NULL,0,rsi_p,PRICE_CLOSE,shift);

}

for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){

Ma[shift] = iMAOnArray(RSi,0,MA_Period,MA_Shift,MA_Method,shift);

Buffer0[shift] = RSi[shift];

Buffer1[shift] = Ma[shift];

}

return(0);

}

 
triip:
Donc 1 et 2 quelque chose comme ça ?

1.

#property indicator_buffers 2

extern int rsi_p = 14;

extern int MA_Period=20;

extern int MA_Shift=0;

extern int MA_Method=0;

extern int NumberOfBarsToCalculate = 10000;

double Buffer0[];

double Buffer1[];

double Ma[];

double RSi[];

int init()

{

IndicatorBuffers(4);

SetIndexBuffer(0,Buffer0);

SetIndexBuffer(1,Buffer1);

SetIndexBuffer(2,Ma);

SetIndexBuffer(3,RSi);

return(0);

}

[/CODE]

2.

[CODE]int start() {

int shift;

double rsi = 0;

for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){

RSi[shift] = iRSI(NULL,0,rsi_p,PRICE_CLOSE,shift);

}

for(shift=NumberOfBarsToCalculate-1;shift>=0;shift--){

Ma[shift] = iMAOnArray(RSi,0,MA_Period,MA_Shift,MA_Method,shift);

Buffer0[shift] = RSi[shift];

Buffer1[shift] = Ma[shift];

}

return(0);

}

Oui, vous pouvez aussi le faire de cette façon

Et quand vous en avez besoin, il suffit de comparer le tampon RSi et MA et vous serez toujours en mesure de voir leur position relative.

 
mladen:
Oui, vous pouvez le faire de cette façon aussi Et quand vous en avez besoin, il suffit de comparer le tampon RSi et MA et vous serez toujours en mesure de voir leur position relative.

Génial, grand merci mladen

 
mladen:
Apprenti codeur Voici un indicateur qui a une telle procédure de tri (il s'agit de trier un tableau à 2 dimensions) : spearman_rank_correlation_nmc.mq4

mladen

Un exemple de c/c++ faisant la même chose ?