DEMANDE D'INDICATEUR STOCHASTIQUE TimeSeries
Forums › ProRealTime forum Français › Support ProBuilder › DEMANDE D'INDICATEUR STOCHASTIQUE TimeSeries
- This topic has 9 replies, 2 voices, and was last updated 6 years ago by Nicolas.
Tagged: Stochastic, stochastique, timeseries
-
-
09/25/2018 at 10:09 AM #81270
Bonjour,
Je souhaiterai obtenir le code de l’indicateur intégré à Proorder sur la STochastique Méthode Time Series
En effet, cette dernière est réactive au variation et je l’ai cherché sur tous les supports mais pas moyen de la trouver
Je ne suis pas assez sachant en programmation et mathématiques pour la créer
Pouvez-vous, s’il vous plait, m’aider ?
09/25/2018 at 12:09 PM #81276Ci-dessous le code de l’oscillateur Stochastique associé à la moyenne mobile de type TimeSeries:
12345678910111213p=14q=3r=5plusHaut = HIGHEST[p](HIGH)plusBas = LOWEST[p](LOW)oscillateur = (CLOSE - plusBas) / (plusHaut - plusBas) * 100ligneK = AVERAGE[q,6](oscillateur)ligneD = AVERAGE[r,6](ligneK)RETURN ligneK AS "%K", ligneD AS "%D"Le résultat est bien le même que la version de la plateforme.
1 user thanked author for this post.
09/25/2018 at 10:50 PM #81309Bonjour Nicolas et merci pour votre aide.
Croyez-vous qu’il soit possible d’approcher par les résultats du code 2 fois ci-dessous quasi parfait qui triche avec le DPO
J’ai déjà essayé de remplacer le DPO par les MM mais celà ne donne que 25% du résultat avec le code suivant
Je l’ai testé sur le DAX 30 mon support favori
remplacement dpo par mm1234567891011121314151617181920212223242526k=33once rr=1n=(k*2)-4p=(n/2)-1pprc=navg1 = average[pprc](high)r = round(pprc/2) +1myDPO1 = high - avg1[r]avg2 = average[pprc](low)myDPO2 = low - avg2[r]avg3=average[pprc](close)myDP03=close-avg3[r]h1=myDPO1moyh=high-h1hi=(moyh-moyh[1]+(high[p])/n)*nhi=(round(hi*100))/100l1=myDPO2moyl=low-l1lo=(moyl-moyl[1]+(low[p])/n)*nlo=(round(lo*100))/100clo1=myDP03moyc=close-clo1clot=(moyc-moyc[1]+(close[p])/n)*nclot=(round(clot*100))/100Cependant j’ai observé sa façon d’agir et j’ai pu en dégager sa technique partielle :
OPEN[2]>OPEN AND LOW[1]<open pour les achats et
OPEN[2]<OPEN AND HIGH[1]>open pour les ventes et je pense lié à une sorte de stochastique Time Series …
Qu’en pensez-vous ?
Le Rêve DPO1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283DEFPARAM CUMULATEORDERS = FALSEDEFPARAM FLATAFTER=163000Positionsize = 3once rr=1mb=average[20](typicalprice)k=48n=(k*2)-4p=(n/2)-1h1=DPO[n](high)moyh=high-h1hi=(moyh-moyh[1]+(high[p])/n)*nhi=(round(hi*100))/100l1=dpo[n](low)moyl=low-l1lo=(moyl-moyl[1]+(low[p])/n)*nlo=(round(lo*100))/100clo1=dpo[n](close)moyc=close-clo1clot=(moyc-moyc[1]+(close[p])/n)*nclot=(round(clot*100))/100cond1=(high>high[1] and high>high[2])cond2=(cond1 and high>hi[46]) and (barindex>bari or rr=-1)if cond1 and cond2 thenflagg=1targeth=hightargetl=lo[46]elseflagg=0signa=mbendiffor zz=0 to 45if clot[45-zz]<targetl and hi[45-zz]<=targeth and flagg=1 thensigna=high+(averagetruerange[20](close))*.5rr=1bari=barindex+zz+2breakelsif hi[45-zz]>targeth thensigna=mbbreakendifnextcondi=(low<low[1] and low<low[2]) and low<lo[46] and (barindex>bar or rr=1)if condi thenfflag=1target1=lowtarget2=hi[46]elsefflag=0siigna=mbendiffor kk=0 to 45if clot[45-kk]>target2 and lo[45-kk]>=target1 and fflag=1 thensiigna=low-(averagetruerange[20](close))*.5rr=-1bar=barindex+kk+2breakelsif lo[45-kk]<target1 thensiigna=mbbreakendifnextif barindex < 100 thensigna=undefinedsiigna=undefinedendif// Conditions pour ouvrir une position acheteuseIF siigna < mb THENBUY Positionsize CONTRACTS AT MARKETENDIF//Conditions pour ouvrir une position vendeuseIF signa > mb THENSellshort Positionsize CONTRACTS AT MARKETENDIF//STOPSET STOP LOSS 9409/26/2018 at 4:21 PM #81373L’utilisation du DPO dans l’indicateur n’a d’utilité que parce qu’il connaît le future, on en extrait donc les bonnes “coordonnées” pour tracer le canal (si je me souviens bien à quoi l’indicateur que tu as posté ressembles), et ainsi obtenir une parfaite visualisation de ce qui a était. Remplacer le DPO par des moyennes mobiles, c’est une idée mais, comme tu l’as constaté, n’amène pas grand chose au final, puisque il n’y a rien de mieux que de connaître le futur ! N’est ce pas ? 😆
10/01/2018 at 1:42 PM #81672Bonjour Nicolas,
Je souhaiterai dans mon code sur le Dax30 en 5 min, faire référence au DOW JONES, par exemple, si le Dow Jones descends depuis 10 bougies , ne faire que des ventes.
Ce que je ne sais pas c’est : est-ce que c’est possible et aussi comment faire appel au Cours du DOW JONES sur CFD
D’avance merci pour ta réponse.
10/01/2018 at 2:22 PM #8167710/12/2018 at 5:31 PM #82671Bonjour Nicolas,
Je ne comprends pas pourquoi il y a des écarts si importants en Backtest lorsque je change l’horaire de l’affichage du Dax30 dans les options de la plateforme avec le code ci-dessous qui est pour le DAX30 en 5 min. Lorsque je règle en heure anglaise 8:40 jusque 19:00 j’ai un super résultat et si je passe à 19:30 j’ai un résultat beaucoup moins important alors que les ordres n’ont pas changé et que je suis flat à 16:30 (heure anglaise) dans le code. As-tu une idée ?
Canal DPO avec valeurs du passé123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166DEFPARAM CUMULATEORDERS = FALSEDEFPARAM FLATAFTER=163000defparam preloadbars = 300Positionsize = 2REM LE WEEK END C'EST FERMEif dayofweek=6 or dayofweek=7 thenrepos=0elserepos=1endifrem on arrete plus tot le vendrediIF DayOfWeek=5 and time>150000 thenvendredi=1elsevendredi=1endifrem on ne trade que la journéeif time<084000 and time>162500 thenjournee=0elsejournee=1endifrem on ne trade pas le midiif (time>105500 and time<120000) thentradetime=1elsetradetime=1endifrem on ne vends pas en début d'après midi entre 13h30 et 14h15IF TIME >123000 and time <131500 thenvente=1Elsevente=1endifrem on ne vends pas pas durant la phase haussière fin de séanceif time>152000 and time<163000 thenvente2=1elsevente2=1endifrem on n'achète pas durant la phase baissière entre 12h55 et 13h25if time>115500 and time<122500 thenachat=0elseachat=1endifrem on n'achète pas durant la phase baissière de 16h00 à 16h35if time>150000 and time<153500 thenachat2=0elseachat2=1endifrem on ne vends pas entre 11h28 et 12h00if time>102800 and time<110000 thenvente3=1elsevente3=1endifrem on évite les extrêmes en cas de retournement brutalIF (CLOSE[50]-close)>45 thenstopvente=1elsestopvente=1endifif (close-close[50])>45 thenstopachat=1elsestopachat=1endifcondachat=(ACHAT2=1 and achat=1 and vendredi=1 and tradetime=1 and journee=1 and repos=1 and stopachat=1)condivente=(VENTE2=1 AND VENTE=1 and vente3=1 and vendredi=1 and tradetime=1 and journee=1 and repos=1 and stopvente=1)once rr=1mb=average[10](medianprice)k=28n=(k*2)-4p=(n/2)+1avg = average[k](high)r = round(k/2) +1h4 = high - avg[r]myDPO = h4h1=myDPOmoyh=high-h1hi=(moyh-moyh[1]+(high[p])/n)*nhi=(round(hi*100))/100avg1 = average[k](low)r1 = round(k/2) +1h1 = low - avg1[r1]myDPOl = h1l1=mydpolmoyl=low-l1lo=(moyl-moyl[1]+(low[p])/n)*nlo=(round(lo*100))/100avg2 = average[k](close)r4 = round(k/2) +1h2 = close - avg2[r4]myDPO2 = h2clo1=mydpo2moyc=close-clo1clot=(moyc-moyc[1]+(close[p])/n)*nclot=(round(clot*100))/100cond1=(high>high[1] and high>high[2])cond2=(cond1 and high>hi[46]) and (barindex>bari or rr=-1)if cond1 and cond2 thenflagg=1targeth=hightargetl=lo[46]elseflagg=0signa=mbendiffor zz=0 to 45if clot[45-zz]<targetl and hi[45-zz]<=targeth and flagg=1 thensigna=high+(averagetruerange[20](close))*.5rr=1bari=barindex+zz+2breakelsif hi[45-zz]>targeth thensigna=mbbreakendifnextcondi=(low<low[1] and low<low[2]) and low<lo[46] and (barindex>bar or rr=1)if condi thenfflag=1target1=lowtarget2=hi[46]elsefflag=0siigna=mbendiffor kk=0 to 45if clot[45-kk]>target2 and lo[45-kk]>=target1 and fflag=1 thensiigna=low-(averagetruerange[20](close))*.5rr=-1bar=barindex+kk+2breakelsif lo[45-kk]<target1 thensiigna=mbbreakendifnextif barindex < 100 thensigna=undefinedsiigna=undefinedendif// Conditions pour ouvrir une position acheteuseIF siigna < mb and condachat THENBUY Positionsize CONTRACTS AT MARKETENDIF//Conditions pour ouvrir une position vendeuseIF signa > mb and condivente THENSellshort Positionsize CONTRACTS AT MARKETENDIF//STOPSET STOP LOSS 90010/15/2018 at 10:11 AM #8276610/15/2018 at 11:11 PM #82832Bonsoir Nicolas, je précise mon soucis, d’ailleurs je ne sais pas si tu travailles pour Prorealtime et si c’est à toi que je dois m’adresser ou directement au support technique, enfin bref : lorsque je code : if time<084000 or time>180000 afin de limiter le créneau horaire d’intervention, j’ai par exemple un profit de 700 € hors si je change les horaires d’affichage du dax dans les options de la plateforme, les résultats changent.
Pourtant , les horaires sont contraints et le robot n’intervient que dans cette plage horaire
Et par défaut, 200 bougies sont preload, alors que ma plus grande période est de 56 pour une moyenne mobile, même si je charge 300 bougies, celà ne change rien, c’est vraiment les horaires de la plateforme qui font tout changer au niveau du résultat
Alors je me dis que peut-être lorsque l’on contraint à une plage horaire, il n’y a de bougies preload et que l’algo utilise peut-être l’historique avant 18h00 de la veille lors du démarrage à 8h40
Je ne sais pas si je suis trés explicite
Aussi, je pense que les ingénieurs de prorealtime pourraient trés facilement coder une fonction qui fait appel au cours du Dow Jones dans un code qui s’exécute sur le Dax 30 5 min, car à partir de 15h30 ( heure française) et à plus forte raison à partir de 17h30, c’est bien le Dow Jones qui donne la tendance au Dax, tout comme le Dax donne la tendance au France 40 en journée…..
Peut-être que celà est possible en MQL4 sur Metatrader 4 ?????
D’avance merci pour tes réponses, si tu ne les as pas, je les transmettrai au support technique et je tiendrai informé
See You Soon
10/16/2018 at 7:19 AM #82841On s’éloigne vraiment beaucoup du sujet de base ici 🙄
Bref, rien qu’en utilisant l’instruction GRAPH, on débloque 90% des soucis de programmation et on apprend en même temps pourquoi on a eu ces problèmes pour ne plus les reproduire. Si tu as créé des horaires personnalisés, il est logique que les indicateurs ne se calculent plus de la même manière et donc tes résultats en ressortent différent.
-
AuthorPosts
Find exclusive trading pro-tools on