ProRealTime
Pour discuter sur l’interface de ProRealTime Software, nos configurations graphiques...
Répondre • Page 1 sur 1

Cadeau de noël (stratégies + code)

par David » 23 déc. 2018 18:00

J'imagine que beaucoup d'entre vous connaissent cette stratégie, mais peut-être pas dans mon cas de figure.


Prenons la vwap et ses bandes par exemple.
Quand le cours va aller chercher sa bande +3 ou -3, il peut revenir par la suite dans le même ordre sur -1 ou +1.
La stratégie consiste à prendre sur ces niveaux de correction de prix pour rejoindre la vwap, grand classique.

Avec les pivots on peut faire exactement la même chose.
Le cours va à S3 puis retourne à R1 et on tente le short pour le retour pivot.

Maintenant prenons le cas qui m'intéresse. Il concerne cette fois-ci, l'initial balance.
La balance initiale consiste à prendre un range (haut et bas) à l'open des marchés sur une durée de temps. Traditionnellement on prend la première heure ou 30 min.


En ce moment sur le Dow Jones je l'utilise souvent pour les 15 premières minutes à l'open.
Je prend deux initial balance, le standard haut bas des 15 premières minutes, et en jaune clair, l'open et la close des 15 premières minutes.
exemple vendredi :
Spoiler:
java_2018-12-23_17-36-30.png
java_2018-12-23_17-36-30.png (59.53 Kio) Consulté 1320 fois

Il peut il y avoir pléthore de stratégies avec, comme pour la vwap et les pivots; rien que pour une analyse de proportion de mouvements ça peut être utile.


J'en avais marre de le tracer à la main, donc j'ai fais un petit bout de code PRT.
Il est imparfait comme le semi-langage de programmation de PRT, dont je ne suis pas fan. Simple d'utilisation, mais très vite limité en fonctionnalités/possibilités.

Il fonctionne uniquement sur le 15 min et pour la journée en cours.
Spoiler:

Code : #

defparam drawonlastbaronly=true

if Time = 154500 then // doit être mis en UT 15 min pour fonctionner
bar = barindex
maxOC = Max(Open, Close)
minOC = Min(Open, Close)
highIB = high
lowIB = low
rangeIB= range
barRangeOC = maxOC - minOC
endif

//initiel balance 15 min, range open close (jaune clair)
if barRangeOC > 25 then //le range doit faire au moins 25 points sinon je ne trace rien
DRAWLINE(bar, maxOC, barindex, maxOC) COLOURED(255, 255, 0)
DRAWTEXT("#barRangeOC# 15h30", barindex, maxOC + 40*ticksize, SansSerif ,bold , 10) COLOURED(255, 255, 0)
DRAWTEXT("#maxOC#", barindex, maxOC - 40*ticksize, SansSerif , Italic, 10)

DRAWLINE(bar, minOC , barindex, minOC) COLOURED(255, 255, 0)
DRAWTEXT("#barRangeOC# 15h30", barindex, minOC - 40*ticksize, SansSerif ,bold , 10) COLOURED(255, 255, 0)
DRAWTEXT("#minOC#", barindex, minOC + 40*ticksize, SansSerif , Italic, 10)

for i = 1 to 10
DRAWLINE(bar, maxOC + barRangeOC * i , barindex, maxOC + barRangeOC * i)
DRAWTEXT("15h30 #i#", barindex, maxOC + barRangeOC * i + 40*ticksize, SansSerif ,bold , 10)

DRAWLINE(bar, minOC - barRangeOC * i , barindex, minOC - barRangeOC * i)
DRAWTEXT("15h30 -#i#", barindex, minOC - barRangeOC * i + 40*ticksize, SansSerif ,bold , 10)
next
endif

//initial balance 15 min, range high low (jaune foncé)
if rangeIB > 25 then //le range doit faire au moins 25 points sinon je ne trace rien
DRAWLINE(bar, highIB, barindex, highIB) COLOURED(125, 125, 0)
DRAWTEXT("#rangeIB# 15h30", barindex, highIB + 40*ticksize, SansSerif ,bold , 10) COLOURED(125, 125, 0)
DRAWTEXT("#highIB#", barindex, highIB - 40*ticksize, SansSerif , Italic, 10) COLOURED(125, 125, 0)

DRAWLINE(bar, lowIB , barindex, lowIB) COLOURED(125, 125, 0)
DRAWTEXT("#rangeIB# 15h30", barindex, lowIB - 40*ticksize, SansSerif ,bold , 10) COLOURED(125, 125, 0)
DRAWTEXT("#lowIB#", barindex, lowIB + 40*ticksize, SansSerif , Italic, 10) COLOURED(125, 125, 0)

for i = 1 to 10
DRAWLINE(bar, highIB + rangeIB * i , barindex, highIB + rangeIB * i) COLOURED(125, 125, 125)
DRAWTEXT("15h30 #i#", barindex, highIB + rangeIB * i + 40*ticksize, SansSerif ,bold , 10) COLOURED(125, 125, 125)

DRAWLINE(bar, lowIB - rangeIB * i , barindex, lowIB - rangeIB * i) COLOURED(125, 125, 125)
DRAWTEXT("15h30 -#i#", barindex, lowIB - rangeIB * i + 40*ticksize, SansSerif ,bold , 10) COLOURED(125, 125, 125)
next
endif
 
return
Si certains d'entre vous développent sur PRT avec brio. J'essaye de coder l'équivalent sur un graphe en tick par tick qui trace la même chose.
Il semblerait ne pas y avoir de possibilité de faire communiquer nos indicateurs/datas entre différents graphiques.
Si vous avez des solutions, j'en serai ravis.

Et enfin, la zone d'IB des jours précédents fonctionne bien aussi. ;)

bonus
Spoiler:
java_2018-12-23_18-16-09.png
java_2018-12-23_18-16-09.png (54.07 Kio) Consulté 1307 fois

Re: Cadeau de noël (stratégies + code)

par kenzo94 » 23 déc. 2018 18:59

je pensais peut être à tort que l'ib correspond plutôt au pré market ... ? je travaille avec cela sur le dax le matin ... très intéressant de tester sur le dow :)

Re: Cadeau de noël (stratégies + code)

par David » 23 déc. 2018 19:09

Les deux mon général Miaou !

Les deux sont intéressants et sur les européens le pré market l'est encore plus.
Personnellement, je suis les deux. Après tout est relatif en fonction de la taille du range.

Par exemple j'ai eu des journées au mois de décembre ou à l'open US, la première bougie 15 min était ridiculement petite, mais j'ai utilisé la suivante. Ce qui revenait à prendre la bougie 30 min.


J'ai mis de côté le Dax depuis quelques semaines, car le Dow est volatile en ce moment. Mais le même indicateur, réglé pour la bougie 8h-9h du Dax, doit bien fonctionner aussi, si il y a un écart de prix intéressant. ;)

Re: Cadeau de noël (stratégies + code)

par David » 23 déc. 2018 19:29

Ça marche super bien aussi sur le Dow le timinig pré market européen.

Tu peux facilement modifier le code, en remplaçant la ligne 3 par :
if Time = 90000 then
et il faut mettre ton graphe en heure

Re: Cadeau de noël (stratégies + code)

par kenzo94 » 23 déc. 2018 19:52

:top:

Re: Cadeau de noël (stratégies + code)

par Jim » 24 déc. 2018 13:38

David, ton code est transposable dans toute ut et en tick avec prt. Une piste :

If opentime > 153000 and opentime < 154500 then
PlusHaut = max(PlusHaut,high)
PlusBas = min(PlusBas,low)
Endif
If opentime>=154500 then
// PlusHaut et PlusBas retournent l'ib


Sinon, qu'appelles-tu les bandes du vwap ? (Je ne connais que le vwap)

Re: Cadeau de noël (stratégies + code)

par David » 27 déc. 2018 23:23

Salut Jim, ça fait plaisir de te croiser, merci pour ta piste. :mercichinois:

vwap bands, elles sont dispo dans PRT
Spoiler:
java_2018-12-27_23-22-35.png
java_2018-12-27_23-22-35.png (62.34 Kio) Consulté 1143 fois
j'utilise des bolinger bands customs maintenant

Re: Cadeau de noël (stratégies + code)

par David » 09 janv. 2019 15:11

un autre exemple
Spoiler:
en 15 min
java_2019-01-09_15-09-01.png
java_2019-01-09_15-09-01.png (127.36 Kio) Consulté 1061 fois

Sujets similaires
Votre plus beau cadeau de Noël
Pièces jointes par chad » 25 déc. 2016 11:12 (17 Réponses)
Allez-vous fêter Noël en famille ? Et commet fêter Noêl ?
Pièces jointes par Chris77 » 05 déc. 2020 20:29 (35 Réponses)
Un p'tit cadeau
par Valérie » 20 janv. 2012 19:54 (5 Réponses)
Cadeau
Pièces jointes par jc-tergal » 13 avr. 2012 17:09 (2 Réponses)
Un petit cadeau pour vos enfants
par iGeriya » 23 sept. 2012 19:23 (2 Réponses)
Cadeau pour la Fête des Pères
Pièces jointes par falex » 12 juin 2013 11:56 (23 Réponses)
Merci pour le cadeau
par Rogue » 15 août 2013 12:48 (39 Réponses)
Application de stratégies backtestées
par kieran » 05 janv. 2014 17:56 (15 Réponses)
Stratégies sur des positions plus long terme
par [email protected] » 10 août 2014 14:45 (25 Réponses)
Are random trading strategies more successful than ...
par Jeff719 » 16 nov. 2015 21:58 (9 Réponses)