[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 333

 

Je ne vais pas discuter ! Si vous essayez, vous verrez ce qui ne va pas. J'écris juste pour ceux qui rencontreront ce problème. C'est inversé dans le temps, donc le graphique est inversé dans le temps. J'affiche le texte de l'indicateur. PRÊT. Regardez le graphique, des entrées très intéressantes peuvent être détectées par ce système. Il me semble qu'il entre plus tôt et plus précisément dans le système que le MASD.

#propriété indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

double Buf_0[1000],Bears_array[1000],Bulls_array[1000],Line1[1000],Line2[1000];
int init()
{
SetIndexBuffer(0,Buf_0) ;
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2) ;
retour ;
}
extern double PeriodPower=13 ;
extern double MA_Period=5 ;

int start()
{
int i=Bars-IndicatorCounted()-1 ;
while(i>=0)
{
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
ArraySetAsSeries(Bears_array,true) ; // Appliqué pour l'indexation synchronisée dans la fonction iMAOnArray
ArraySetAsSeries(Bulls_array,true) ;
Ligne1[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMMA,i) ;
Ligne2[i]=iMAOnArray(Bulls_array,0,MA_Period,0,MODE_SMMA,i) ;
Buf_0[i]=(Line2[i]+Line1[i])/Point/10;

i-- ;
}
retour ;
}


 
Stepan241 писал(а) >>

Je ne vais pas discuter ! Si vous essayez, vous verrez ce qui ne va pas. J'écris juste pour ceux qui rencontreront ce problème. C'est inversé dans le temps, donc le graphique est inversé dans le temps. J'affiche le texte de l'indicateur. PRÊT. Regardez le graphique, des entrées très intéressantes peuvent être détectées par ce système. Il me semble qu'il entre plus tôt et plus précisément que le MASD.

#propriété indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

double Buf_0[1000],Bears_array[1000],Bulls_array[1000],Line1[1000],Line2[1000];
int init()
{
SetIndexBuffer(0,Buf_0) ;
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2) ;
retour ;
}
extern double PeriodPower=13 ;
extern double MA_Period=5 ;

int start()
{
int i=Bars-IndicatorCounted()-1 ;
while(i>=0)
{
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
ArraySetAsSeries(Bears_array,true) ; // Appliqué pour l'indexation synchronisée dans la fonction iMAOnArray
ArraySetAsSeries(Bulls_array,true) ;
Ligne1[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_SMMA,i) ;
Ligne2[i]=iMAOnArray(Bulls_array,0,MA_Period,0,MODE_SMMA,i) ;
Buf_0[i]=(Line2[i]+Line1[i])/Point/10;

i-- ;
}
retour ;
}

Vous pouvez essayer de jouer avec, mais vous ne pouvez pas le faire correctement.

L'indicateur peut contenir jusqu'à 8 tampons. Certains d'entre eux peuvent être utilisés pour des calculs intermédiaires.

Cependant, si les performances ne sont pas critiques, alors oui, vous pouvez le faire de cette façon.

 
Vinin >> :

Vous pouvez jouer autour ou vous pouvez le faire normalement.

L'indicateur peut contenir jusqu'à 8 tampons. Certains d'entre eux peuvent être utilisés pour des calculs intermédiaires.

Cependant, si ce n'est pas critique pour vous-même et pour la performance, alors oui, vous pouvez le faire de cette façon.

La notion de normal est relative. Tout comme la notion de droit. Il s'agit plutôt d'une question philosophique. J'ai essayé d'implémenter l'algorithme d'une manière OPTIMALE. Afin de construire un indicateur en UN seul cycle. A mon avis, c'est le matériel le moins chargé, alors que vous pouvez obtenir le même résultat.

>> Et, quant au fait qu'il y a 8 tampons, et qu'en temps de guerre leur nombre peut atteindre 54 et demi, tout sapeur le sait. :-)

 
Stepan241 писал(а) >>

La normalité est relative. Il en va de même pour le concept de droit. Il s'agit plutôt d'une question philosophique. J'ai essayé d'implémenter l'algorithme d'une manière OPTIMALE. Pour que l'indicateur soit construit en UN seul cycle. A mon avis, c'est ce qui charge le moins le matériel quand le résultat est encore correct.

Environ 8 tampons, et leur nombre en temps de guerre peut atteindre jusqu'à 54 et demi, chaque ingénieur le sait. :-)

Il est possible de tout faire en une seule boucle, et d'utiliser un nombre minimal de tampons, mais c'est une autre histoire.

Toute opération avec un tableau (et non un tampon) prend un temps considérable. Il était donc plus facile et plus rapide de faire plusieurs boucles que de tout regrouper en une seule.

Plus rapide dans le sens du fonctionnement de l'indicateur.

 
Vinin >> :

Il est possible de tout faire en un seul cycle, et d'utiliser un nombre minimal de tampons, mais c'est une toute autre conversation.

Toute opération avec un tableau (et non un tampon) prend beaucoup de temps. Il était donc plus facile et plus rapide de faire plusieurs boucles que de tout regrouper en une seule.

Plus rapide dans le sens de la performance de l'indicateur.

Dis-moi, Vinin, as-tu essayé de jeter un coup d'oeil à ton idée et voir ce qu'elle dessine ?

 
Vinin >> :

Il est possible de tout faire en une seule boucle, et d'utiliser un nombre minimal de tampons, mais c'est une toute autre conversation.

Toute opération avec un tableau (et non un tampon) prend beaucoup de temps. Il était donc plus facile et plus rapide de faire plusieurs boucles que de tout regrouper en une seule.

Plus rapide dans le sens de la performance de l'indicateur.

Cher Vinin, avez-vous essayé de jeter un coup d'oeil à votre idée et de la comprendre ?

int start()
{
int i, limit=Bars-IndicatorCounted()-1 ;
for (i=limit;i>=0;i--){
Bears_array[i]=iBearsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
Bulls_array[i]=iBullsPower(NULL,0,PeriodPower,PRICE_CLOSE,i) ;
}
for (i=limit;i>=0;i--){
MA_Ours[i]=iMAOnArray(Bears_array,0,MA_Period,0,MODE_EMA,i) ;
MA_Bulls[i]=iMAOnArray(Bulls_array,100,MA_Period,0,MODE_SMA,i) ;
}
retour ;
}

Je comprends que dans la première boucle, vous formez un tableau de hausses et de baisses. Dans le deuxième cycle, ces deux tableaux sont lissés. Si cela vous plaît tant, il suffit de regarder le résultat et vous comprendrez tout.



 


Regardez de près le GRAPHIQUE AGRAPHIQUE

 
Stepan241 писал(а) >>

Je parlais de ce type de code indicateur en général.

Dossiers :
test.mq4  2 kb
 
Comparez la vitesse de ma version et de la vôtre
 

Je suis d'accord. Il sort bien et tout est correct. J'avais juste besoin d'afficher la sortie suivante

Buf_0[i]=(Line2[i]+Line1[i])/Point/10;

Cela devrait être fait dans une boucle séparée. Je préfère votre version car je préfère la boucle FOR. Merci de votre aide et de votre attention.

Raison: