Tester le close[0]

Présentation, Développement, Améliorations et Ressources pour les Stratégies de Trading Automatique.

Modérateur : Administrateurs

Répondre
Message
Auteur
steph06
Nouveau
Messages : 6
Inscription : 04 sept. 2015, 00:04

Tester le close[0]

#1 Message par steph06 »

Bonjour

J ai utilisé un ea builder en ligne et j'ai pu constater que si l on teste le Close de la bougie en cours pour declencher un trade, en backtest, cela fonctionne.

Mais en live ?

Je ne comprends pas comment cela est possible puisque la bougie n est fermee qu une fois qu un autre est ouverte...

Je verrais bien à la reouverture du marché mais pour l instant j en appelle à vos lumieres

merci

stephane

MaPomme
Membre assidu
Messages : 184
Inscription : 21 oct. 2015, 14:07

Re: Tester le close[0]

#2 Message par MaPomme »

Le Close est la dernière cotation de la bougie. En cours ou pas.
Attention, si tu BT en Close[0] tu BT la modélisation MT4 !
voir Tickstory.

steph06
Nouveau
Messages : 6
Inscription : 04 sept. 2015, 00:04

Re: Tester le close[0]

#3 Message par steph06 »

Merci pour ta réponse.

Donc si j ai bien compris, le close est le premier tick quand on est au deuxieme tick.

Par conte je ne comprends pas ce que signifie
tu BT la modélisation MT4
C'est qu il va chercher le close reel de la bougie qu il connait forcement ...

Merci

Avatar de l’utilisateur
ionone
Membre actif et régulier
Messages : 98
Inscription : 29 sept. 2016, 16:10

Re: Tester le close[0]

#4 Message par ionone »

il ne faut pas utiliser Close[0] mais

Code : Tout sélectionner

double c = iClose(...,0)

Avatar de l’utilisateur
Trader55
VideoBourse family
Messages : 1280
Inscription : 21 sept. 2014, 21:30

Re: Tester le close[0]

#5 Message par Trader55 »

@steph06

si tu en es à te poser ce type de question, je te conseille d'acheter le bouquin (dispo en pdf) de mon ami Henri Baltzer, "programmer en mql4".

Tres bien fait, simple, exemples, progressivité.

Je peux te connecter avec lui au cas où

Jeff719
VideoBourse family
Messages : 785
Inscription : 28 sept. 2015, 16:18

Re: Tester le close[0]

#6 Message par Jeff719 »

Oui je n'ai entendu dire que du bien de ce bouquin.

Par ailleurs la doc des ruskofs est vraiment inepte.

Il y a un phénomène vraiment piégeux dans Metatrader, c'est que le système dans son ensemble réagit différemment selon que l'on soit en optimisation, en backtest ou en prod (démo ou réel). En gros ça marche pareil mais il y a quelques pièges ou le débutant va tomber à pieds joint.

Pour en revenir à la question posée, tout d'abord quand on a besoin du prix, soit c'est un prix échantillonné (au sens de l'échantillonnage en théorie du signal) et donc selon le time frame, on prend le prix de la bar closed c'est à dire le close de la bar1, pas de la bar0. Dans un indic on prend donc close[1] (ou close[indice] si on est dans la boucle d'init ou de prise en compte de plusieurs nouvelles barres).

Si pour quelques raisons que ce soit l'indic utilise en sus de l'échantillonnage du time frame chaque tick, le prix du tick (depuis les builds 600 comportant la nouvelle interface d'appel) est effectivement obtenu avec close[0]. Attention, ici close est le nom de la variable attribuée au paramètres de la fonction d'appel de l'indic : OnCalculate(...) En nom de variable on met ce qu'on veut. Les exemples d'indicateurs fournis avec mt4 montrent comment s'en servir pour écrire un indic. Attention au nom des variables, close avec c minuscule peut être piégeux car différent peu de Close avec majuscule qui est le tableau global accessible (pas d'erreur de compil, mais ça va pas marcher en backtest).

Dans un EA, on utilise iClose qui donne exactement le même résultat que ce tableau : Close, quand on fait référence à la paire et au time frame du graphique sur lequel l'EA est attaché. On peut donc avoir le prix du dernier tick par Close[0], ou l'iClose(.., 0...) approprié. Personnellement je trouve cela inélégant et préfère Bid tout simplement.

Pour en revenir à la petite histoire et si ma mémoire ne me joue pas des tours, il était donc possible avant les releases 600 d'écrire pour back test dans l'indic tmpPrix=Close[0] en pensant disposer du prix du tick fournis par le tester. Que neni ! On obtenait par avance le futur prix de Close de la bar alors que ceci était sensé être correctement modélisé. Avec une telle information sur le futur, y avait moyen d'écrire des machins salement gagnants sans même sur optimiser. :mrgreen:
Les informations présentées ne peuvent être considérées ni comme un conseil en investissement, ni comme une recommandation d'investissement. Il s'agit de commentaires généraux sur les marchés et de raisonnements que l'on peut tenir à leur sujet.

Avatar de l’utilisateur
Trader55
VideoBourse family
Messages : 1280
Inscription : 21 sept. 2014, 21:30

Re: Tester le close[0]

#7 Message par Trader55 »

Jeff719 a écrit :On peut donc avoir le prix du dernier tick par Close[0], ou l'iClose(.., 0...) approprié. Personnellement je trouve cela inélégant et préfère Bid tout simplement.
Oui parfaitement, prendre Bid.

@Jeff719, et toi comment as tu appris le MQL4 ? Juste avec le forum MQL ?
Tu fais un peu de MT 5 également ?

Jeff719
VideoBourse family
Messages : 785
Inscription : 28 sept. 2015, 16:18

Re: Tester le close[0]

#8 Message par Jeff719 »

Disons que je suis un vieux programmeur - j'ai peut être écrit un demi million de lignes dans ma carrière - avec qq sources exemple, mql c'était brossé en quelques jours.

J'ai compris après quelques mois d'expérience des marchés que ça allait être compliqué. Lorsqu'un jeune crétin de commercial broker explique au prétexte que la syntaxe ressemble à C++, qu'ainsi les particuliers disposent de presque les mêmes outils que les professionnels... j'ai été saisi du fait que ça allait être très dur, lorsque vos fournisseurs d'informations en fait vous enfument.

Parce qu'avant les releases 600, mql4 c'était un méchant petit langage procédural évoquant le Pascal d'il y a 30 ans. D'ailleurs la semi compil évoque le Pcode.

Je n'ai pas encore fait de mql5. Avec le marché US et IB, il faudra bien... 8)
Les informations présentées ne peuvent être considérées ni comme un conseil en investissement, ni comme une recommandation d'investissement. Il s'agit de commentaires généraux sur les marchés et de raisonnements que l'on peut tenir à leur sujet.

Avatar de l’utilisateur
ionone
Membre actif et régulier
Messages : 98
Inscription : 29 sept. 2016, 16:10

Re: Tester le close[0]

#9 Message par ionone »

Jeff719 a écrit :On peut donc avoir le prix du dernier tick par Close[0], ou l'iClose(.., 0...) approprié. Personnellement je trouve cela inélégant et préfère Bid tout simplement.

sauf que sur MT5 il n'y a pas Ask et Bid... Donc c'est une bonne habitude d'utiliser iClose.

Jeff

Avatar de l’utilisateur
Trader55
VideoBourse family
Messages : 1280
Inscription : 21 sept. 2014, 21:30

Re: Tester le close[0]

#10 Message par Trader55 »

Bien vu.

Jeff719
VideoBourse family
Messages : 785
Inscription : 28 sept. 2015, 16:18

Re: Tester le close[0]

#11 Message par Jeff719 »

ionone a écrit :
sauf que sur MT5 il n'y a pas Ask et Bid... Donc c'est une bonne habitude d'utiliser iClose.
Merci!

Tiens, si tu maitrise 4 et 5, ce serait bien de saupoudrer à l'occasion ces remarques. Les différences pour passer de 4 à 5. Un papier d'ensemble est assommant tant à lire qu'à écrire, surtout que c'est par petites touches qu'on mémorise.
Les informations présentées ne peuvent être considérées ni comme un conseil en investissement, ni comme une recommandation d'investissement. Il s'agit de commentaires généraux sur les marchés et de raisonnements que l'on peut tenir à leur sujet.

Avatar de l’utilisateur
ionone
Membre actif et régulier
Messages : 98
Inscription : 29 sept. 2016, 16:10

Re: Tester le close[0]

#12 Message par ionone »

Jeff719 a écrit :
ionone a écrit :
sauf que sur MT5 il n'y a pas Ask et Bid... Donc c'est une bonne habitude d'utiliser iClose.
Merci!

Tiens, si tu maitrise 4 et 5, ce serait bien de saupoudrer à l'occasion ces remarques. Les différences pour passer de 4 à 5. Un papier d'ensemble est assommant tant à lire qu'à écrire, surtout que c'est par petites touches qu'on mémorise.
je vais modérer mon propos, il y a un Ask et un Bid que l'on peut récupérer mais pas directement par Ask et Bid, il faut utiliser :

Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
et
Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);


pour utiliser MT5, je recommande fortement d'utiliser cTrade pour manager les ordres car sinon c'est un casse-tête sans fin, pour ouvrir un simple ordre il faut plusieurs dizaines de lignes...cTrade simplifie tout ça...

Jeff

Répondre