Conversion du code Midas Volume d'Amibroker
Forums › ProRealTime forum Français › Support ProBuilder › Conversion du code Midas Volume d'Amibroker
- This topic has 6 replies, 2 voices, and was last updated 5 years ago by carlvan.
Tagged: vwap
-
-
02/07/2019 at 6:52 PM #90772
Cher Nicolas,
Je ne sais pas s’il est possible de convertir ce code d’un indicateur très intéressant que j’utilise sur Amibroker. Cet indicateur, qui retourne une ligne sur le graphe, est basé sur le volume et le prix, et commence ses calculs à partir d’un point désigné par l’utilisateur en cliquant sur le graphe. Habituellement, ce point initial est un Top ou Bottom important. La formule fut communiquée dans le journal « Stocks & Commodities » il y a de nombreuses années, et fut appelée « MIDAS Volume ».
En espérant que ce soit convertible pour Prorealcode, et en vous remerciant déjà de considérer ma requête. Bien cordialement,
CarlMIDAS Channel
dn = DateTime(); // une coordonnée X sur le graphe
sd = SelectedValue( dn ); // quand l’utilisateur pointe et clique la souris sur le graphe à la coordonnée de son choix sur l’axe des X, cela retourne la valeur du prix pour cette barre
start = dn == sd;
mp = (H+L)/2;
PV = mp * V;
CV = Cum( V );
VSS = CV – ValueWhen( start, CV );
denom = IIf( VSS == 0, 1, VSS );
num = Cum( PV ) – ValueWhen( start, Cum( PV ) );
M = IIf( BarsSince( start ), num/denom, mp );
Q1 = Param(“Percentage Upper”, 0, 0, 10, 0.01 );
Q2 = Param(“Percentage Lower”, 0, 0, 10, 0.01 );Plot( M, « Midas line », colorblack, styleLine );
//Plot( M * ( 1 + Q1 * 0.01 ), “Upper”, colorWhite,styleDashed );
//Plot( M * ( 1 – Q2 * 0.01 ), “Lower”, colorWhite,styleDashed );Le chart attaché montre le résultat lorsqu’on clique sur le top atteint par AAPL, en 5 minute chart, le 13 décembre 2018. La ligne est un point de résistance évident (mais ça ne marche pas toujours aussi bien!)
02/08/2019 at 8:55 AM #9082102/08/2019 at 10:07 AM #90826C’est exact, je n’avais pas noté que c’était similaire au VWAP! La différence toutefois, c’est que, si je ne me trompe, le VWAP commence à être calculé en début de session, alors qu’ici le but est de la faire démarrer à un point choisi sur le chart, par exemple un pivot. Je n’ai pas trouvé de formule qui permette de faire un click-souris sur le chart pour forcer le calcul à partir de ce point. Pour AFL Amibroker, c’est “SelectedValue()” mais je ne sais pas si PRT a un code équivalent.
02/08/2019 at 10:52 AM #90832On peut faire commencer le calcul à n’importe quel moment.
Avant d’aller plus loin, tu peux regarder cet indicateur qui commence le calcul à partir d’une date précise : VWAP Date anchored
Si tu veux aussi ajouter une condition horaire pour le début, en sus de la date, alors on pourrait l’adapter.
02/08/2019 at 11:40 AM #90836Merci pour le link, en fait comme je ne souhaite utiliser le VWAP qu’en intraday, et basé surt des highs/lows spécifiques, il faudrait en effet ajouter la condition horaire e, plus de “StartDate”. C’est spécifiquement cela que je cherche. Un grand merci d’avance.
Carl V.
(Note: je suppose que remplacer la condition Stardate et Horaire par un clic souris sur le graphe est impossible actuellement?)
02/08/2019 at 1:40 PM #90855En effet le code ne peut pas détecter les interventions manuelles sur le graphique.
Voilà j’ai modifié le code en question du anchored VWAP avec un condition horaire (exemple ci-joint).
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950//PRC_VWAP Time anchored | indicator//08.02.2019//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge// --- settingsstartTime = 064200viewSD = 1 //1 = true / 0 = false// --- end of settingsVWAP=undefinedSDup1 = undefinedSDlw1 = undefinedSDup2 = undefinedSDlw2 = undefinedSDup3 = undefinedSDlw3 = undefinedif time=startTime and date=today thenstartbar=barindexendifif time>=startTime and startbar>0 thenbarcount=barindex-startbard = max(1, barcount)VWAP = SUMMATION[d](volume*typicalprice)/SUMMATION[d](volume)if(barcount=0) thensd = 0elsesd = SUMMATION[d](max(abs(high-vwap),abs(vwap-low)))/dendifif viewSD thenSDup1 = vwap+sdSDlw1 = vwap-sdSDup2 = vwap+sd*2SDlw2 = vwap-sd*2SDup3 = vwap+sd*3SDlw3 = vwap-sd*3endifif vwap>vwap[1] thencolor = 1elsecolor = -1endifendifRETURN VWAP coloured by color as "VWAP", SDup1 coloured(102,102,102) as "upper 1 STD", SDlw1 coloured(102,102,102) as "lower 1 STD", SDup2 coloured(102,102,102) as "upper 2 STD", SDlw2 coloured(102,102,102) as "lower 2 STD", SDup3 coloured(102,102,102) as "upper 3 STD", SDlw3 coloured(102,102,102) as "lower 3 STD"02/08/2019 at 2:15 PM #90862 -
AuthorPosts
Find exclusive trading pro-tools on