Demandez ! - page 95

 

La réponse courte est non.

Comme toujours, la barre 0 est temporellement incomplète pour les EA et les indicateurs, et son haut, son bas, sa clôture et son volume sont presque certainement différents de ce qu'ils deviennent lorsque cette barre se termine et devient la barre 1. Plus exactement, la valeur de StochRSICurr à la fin de la barre quotidienne n'est connue qu'au premier tick de la barre quotidienne suivante (et plus tard). Je pense que vous vous rendez un mauvais service en essayant d'utiliser les valeurs de la barre 0, car celles-ci, à quelques exceptions près, ne reflètent que l'état partiel de la barre incomplète.

Pour autant que je sache, l'indicateur est invoqué au moment du premier appel iCustom avec la combinaison particulière de valeurs de paramètres, pendant chaque invocation de la fonction EA start(). Les appels iCustom successifs pendant l'appel de la fonction EA start, au même indicateur, avec la même configuration de valeurs de paramètres, réutilisent ce que le premier appel a produit. La fonction EA start() suivante, appelant à nouveau iCustom, invoquera à nouveau l'indicateur, dans le contexte du tick qui a provoqué l'appel de la fonction start.

Ainsi, aux yeux de l'indicateur, il est invoqué une fois pour chaque tick pour lequel l'EA le laisse être invoqué. En disant à une MA d'utiliser le prix d'ouverture ou le prix haut, etc., on ne change que les valeurs des barres qu'elle regarde, alors que la manière d'invoquer reste la même : elle est invoquée à chaque tick (que l'EA lui permet).

 
 

Aidez-moi, s'il vous plaît

Bonjour à tous,

Personne ne veut m'aider. Je poste une fois de plus mon problème et je vous prie de m'aider.

Je veux juste comprendre pourquoi le résultat n'est pas le même avec les deux façons de coder le même indicateur (voir le code et l'image).

Manuel

Dossiers :
 

backtesting lent

Je voulais juste dire merci à Ralph Ronnquist. J'ai maintenant réussi à faire fonctionner cette partie correctement.

J'ai une autre question pour toute personne qui pourrait m'aider. Lorsque j'essaie d'utiliser Strategy Tester avec mon EA, il est extrêmement lent. Je sais qu'il fonctionne car j'obtiens quelques résultats, mais je dois le laisser fonctionner toute la nuit pour obtenir des résultats sur 3 mois.

Mon EA est basé sur la tendance quotidienne en utilisant le croisement stochastique RSI (test) et ensuite seulement l'action des prix. Quelles peuvent être les raisons principales de cette lenteur ? Est-ce dans la programmation ou est-ce parce que j'utilise un indicateur extérieur ou est-ce parce que le RSI stochastique consomme beaucoup d'énergie.

J'exécute de nombreux autres EA et ils sont tous beaucoup plus rapides que le mien. Mon système est très puissant avec 3GB de Ram et un processeur Intel Centrino Duo.

Toute suggestion ou idée serait appréciée.

Putz

 

Comment écrire

Salut les codeurs

Je suis totalement novice en matière de codage Mql.4. J'apprends toujours en modifiant des EAs existants.

Exemple suivant pour un Pivot flottant :

pour la barre actuelle ;

double Flow_Pivot0 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0))

+ iClose(NULL,0,0))/3.0 ;

pour une barre en arrière

où je dois définir le "nombre" ou la variable "shift_bars".

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0))

+ iClose(NULL,TimeFrame_Flow,0))/3.0 ;

Merci beaucoup

 
 

Aucune solution trouvée

Bonjour Bongo

Désolé mais je n'ai pas trouvé de réponse sur ce lien.

Cas normal

double High1 = iHigh(NULL,0,0) ; // Prix haut maintenant

quand j'ai besoin d'une entrée externe

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1) ; // Le prix est haut maintenant.

Le vert signifie combien de barres en arrière

Mais dans mon cas, où je dois insérer Barback_xxx, la ligne complète ci-dessous doit être une barre en arrière.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0))

+ iClose(NULL,TimeFrame_Flow,0))/3.0 ;

Bongo:
BadGay,

aller à :

https://www.mql5.com/en/forum/173124

B.
 

Temps de retour

Badguy:
Salut Bongo

désolé mais sur ce lien je n'ai pas trouvé de réponse.

Cas normal

double High1 = iHigh(NULL,0,0) ; // Prix haut maintenant

quand j'ai besoin d'une entrée externe

double iHigh1 = iHigh(NULL,iHigh12_TimeFrame,Barsback_iHigh1) ; // Prix haut maintenant

Le vert signifie combien de barres en arrière

Mais dans mon cas, où je dois insérer Barback_xxx, la ligne complète ci-dessous doit être une barre en arrière.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0 ;

Bonjour

Si vous voulez reculer la ligne d'une barre à la fois.

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0)

+ iClose(NULL,TimeFrame_Flow,0))/3.0 ; = Jour actuel

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0 ; = Retour 1 jour en arrière

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0 ; = Retour 2 jours en arrière

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0 ;

Barback_xxx = 1 ,2, 3, 4 etc. recule d'une barre à la fois.

 

Bonjour Cja

Ce n'est pas ce que je veux dire

cja:
Bonjour

Si vous voulez reculer la ligne d'une barre à la fois.

C'est un PIVOT flottant. C'est ça ?

#1

double Flow_Pivot1 = (iHigh(NULL,1440,0)+iLow(NULL,1440,0))

+ iClose(NULL,TimeFrame_Flow,0))/3.0 ; = Jour actuel

C'est le PIVOT normal pour aujourd'hui. N'est-ce pas ?

#2

double Flow_Pivot1 = (iHigh(NULL,1440,1)+iLow(NULL,1440,1)

+ iClose(NULL,TimeFrame_Flow,1))/3.0 ; = Retour en arrière de 1 jour

C'est un PIVOT normal mais à partir d'hier. N'est-ce pas ?

#3

double Flow_Pivot1 = (iHigh(NULL,1440,2)+iLow(NULL,1440,2)

+ iClose(NULL,TimeFrame_Flow,2))/3.0 ; = Retour 2 jours en arrière

J'ai besoin de la fonction #1, mais xx barres en arrière dans n'importe quelle Timeframe.

Même fonction que cet Indi : PrevDayAndFloatingPivot_O.mq4. ( mais seulement le FloatingPivot )

Indi est attaché

double Flow_Pivot1 = (iHigh(NULL,1440,Barback_xxx)+iLow(NULL,1440,Barback_xxx)

+ iClose(NULL,TimeFrame_Flow,Barback_xxx))/3.0 ;

Barback_xxx = 1 ,2, 3, 4 etc. recule d'une mesure à la fois.
Dossiers :
 

C'est peut-être une question stupide... mais j'espère que vous allez m'aider.

.... comment fermer ou ouvrir un ordre(ordre en attente) quand un autre ordre atteint le tp ?

merci b4 !