Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 318

 
Vitaly Muzichenko:

:D


Merci, brave homme !

 

Le voici plus détaillé

 
Ras al Ghul:

Soit votre variante est très compliquée, soit je ne comprends pas la valeur dont vous parlez...


Dans ma variante, la pièce surlignée est assermentée :

'Array' - tableau requis.

Ne met-on pas la valeur de l'indicateur dans le tableau de cette façon ?



Notez qu'il doit évidemment y avoir plus d'une valeur dans le tableau pour que le calcul soit correct.Vitaly Muzichenko a justement signalé l'erreur, je ne vais pas la répéter une fois de plus.

 
voron_026:

Oui, vous avez raison. Les rectangles sont dessinés sur les mêmes coordonnées. J'ai résolu le problème comme suit :

Ajout de la variableTimeFrame, pour un changement rapide du délai calculé

Eh bien, oui, c'est à peu près ça.

Notez le signe d'égalitéUseDojiCandles.

if(UseDojiCandles == true && Doji() == 1 && New_Bar == true)
 
Aleksey Vyazmikin:

Oui, c'est à peu près ça.

Notez le signe d'égalité deUseDojiCandles.

Vous développez donc la réponse en disant qu'il y a une comparaison "==" et une affectation "=".

 
Vitaly Muzichenko:

Vous développez donc la réponse, à savoir qu'il existe une comparaison "==" et une affectation "=".


L'homme sait clairement, il a juste fait une faute de frappe.

 
Aleksey Vyazmikin:

L'homme sait clairement, il a juste fait une faute de frappe.


Oui, c'est ça, merci pour le tuyau. Je l'ai déjà corrigé.

J'y travaille.

J'ai accroché le marteau et le modèle de marteau inversé.
 
voron_026:

Oui, c'est ça, merci pour le tuyau. Je l'ai déjà corrigé.

Je suis en train d'y travailler.

J'ai connecté les motifs "Marteau" et "Marteau inversé".

Je pars du principe que des schémas similaires fonctionneront différemment lorsque les prix se déplacent vers le nord et vers le sud - je pense qu'il faut en tenir compte lors de leur interprétation.

 
  for(int i=0; i<limit; i++) {
    Last[i] = Symbol1_Vol*Vol1*iClose(Symbol1_Name,0,iBarShift(Symbol1_Name,0,Time[i])) - 
              Symbol2_Vol*Vol2*iClose(Symbol2_Name,0,iBarShift(Symbol2_Name,0,Time[i]));



 for(int i=0; i<limit; i++) {
    if(ButtonSt) { // кнопка выбора, отображать Bands, или Envelopes
     MA[i]=iMAOnArray(Last,0,Env_Period,0,MODE_SMA,i);
     LineUp[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_UPPER,i);
     LineDn[i]=iEnvelopesOnArray(Last,0,Env_Period,MODE_SMA,0,Env_Dev,MODE_LOWER,i);
    } else {
     MA[i]=iMAOnArray(Last,0,BB_Period,0,MODE_SMA,i);
     LineUp[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
     LineDn[i]=iBandsOnArray(Last,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
    }
  }

Techniquement, la façon de procéder semble être claire.

for(int i=0; i<limit; i++) {
    RSI[i] = iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,i);
  }

for(int i=0; i<limit; i++) {
    BandsMn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_MAIN,i);
    BandsUp[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_UPPER,i);
    BandsDn[i]=iBandsOnArray(RSI,0,BB_Period,BB_Dev,0,MODE_LOWER,i);
  }

Mais l'essence du processus n'est pas claire :

Par exemple, quelle valeur doit avoir la limite et pourquoi exactement cette valeur ?

A en juger par la variable i à la fin des fonctions de l'indicateur, nous saisissons les données avec un décalage.

C'est-à-dire que la limite doit dépendre de la période de l'indicateur ?


Merci de votre attention et de votre patience.

 
Ras al Ghul:

Techniquement, la façon de procéder semble être claire.

Mais l'essence du processus n'est pas claire :

Par exemple, quelle valeur doit avoir la limite et pourquoi exactement cette valeur ?

A en juger par la variable i à la fin des fonctions d'indicateur, nous introduisons les données avec un décalage.

C'est-à-dire que la limite doit dépendre de la période de l'indicateur ?


Merci de votre attention et de votre patience.

Limite - le nombre de barres dans le graphique; il faut afficher l'indicateur jusqu'à la fin de l'historique lors du défilement de l'historique.