4MACD from AFL
Forums › ProRealTime forum Français › Support ProBuilder › 4MACD from AFL
- This topic has 6 replies, 3 voices, and was last updated 4 years ago by carlvan.
-
-
03/20/2020 at 4:55 PM #122743
Cher Nicolas,
J’essaie sans succès de convertir une formule AFL-Amibroker en PRT, mais je bloque sur une fonction AFL apparemment non présente en PRT:
“LastValue” et “Highest”, “highest” est différent de “HHV” en ce sens que c’est la valeur la plus élevée de toute la série disponible.
Voici le code en AFL:_SECTION_BEGIN(“4MACD”);
width=Param(“Width”,4,1,9,1);
//=Red===================
Gr1 = MACD(17,8);
Gr2 = Signal(17,8,5);
Diffr = Gr1-Gr2;
rouge= (LastValue(Highest(diffr))/LastValue(Highest(diffr))) *Diffr;
Plot((LastValue(Highest(diffr))/LastValue(Highest(diffr))) *Diffr,”Rouge”,colorRed,2+4,0,0,0,0,width);//=Green===================
gGr1 = MACD(5,10);
gGr2 = Signal(5,10,5);
Diffg = gGr1-gGr2;
vert= (LastValue(Highest(diffr))/LastValue(Highest(diffg))) *Diffg;
Plot((LastValue(Highest(diffr))/LastValue(Highest(diffg))) *Diffg,”Vert”,colorGreen,2+4,0,0,0,0,width);//=Blue===================
bGr1 = MACD(17,14);
bGr2 = Signal(17,14,7);
Diffb = gGr1-gGr2;
Bleu= (LastValue(Highest(diffr))/LastValue(Highest(diffb))) *Diffb;
Plot((LastValue(Highest(diffr))/LastValue(Highest(diffb))) *Diffb,”BleuCiel”,colorskyBlue,2+4,0,0,0,0,width);//=Yellow===================
yGr1 = MACD(10,16);
yGr2 = Signal(10,16,5);
Diffy = yGr1-yGr2;
Jaune= (LastValue(Highest(diffr))/LastValue(Highest(diffy)))*Diffy;
Plot((LastValue(Highest(diffr))/LastValue(Highest(diffy)))*Diffy,”Jaune”,colorYellow,2+4,0,0,0,0,width);Plot(0,””,7,4);
_SECTION_END();D’avance un très grand merci, et j’ai attaché un chart.
Carl
03/20/2020 at 5:34 PM #122746LastValue renvoie la dernière valeur calculée de la série de données spécifié, ici c’est à appliquer à Highest et qui n’a pas de période, donc comme tu le stipules, c’est bien la valeur la plus haute jamais atteinte par chacune des variables nommées Diff.
Donc c’est finalement assez simple, il faut créer une variable du style :
1MAXdiffr = max(MAXdiffr,diffr)ce qui donnerait
12// à la place de rouge= (LastValue(Highest(diffr))/LastValue(Highest(diffr))) *Diffrrouge = (MAXdiffr/MAXdiffr) *Diffr03/20/2020 at 7:12 PM #122761Merci beaucoup pour la réponse rapide.
J’ai converti de la façon suivante, mais le graph est absolument vide – sûrement une petite erreur quelque part de ma part:
123456789101112131415161718192021222324252627282930//=Red===================Gr1 = MACD[17,8,5](close)Gr2 = ExponentialAverage[5](Gr1)Diffr = Gr1-Gr2MAXdiffr = max(MAXdiffr,diffr)rouge= (MAXdiffr/MAXdiffr) *Diffr//=Green===================gGr1 = MACD[5,10,5](close)gGr2 = ExponentialAverage[5](gGr1)Diffg = gGr1-gGr2MAXdiffg = max(MAXdiffg,diffg)vert= (MAXdiffr/MAXdiffg) *Diffg//=Blue===================bGr1 = MACD[17,14,7](close)bGr2 = ExponentialAverage[7](bGr1)Diffb = bGr1-bGr2MAXdiffb = max(MAXdiffb,diffb)bleu= (MAXdiffr/MAXdiffb) *Diffb//=Yellow===================yGr1 = MACD[10,16,5](close)yGr2 = ExponentialAverage[5](yGr1)Diffy = yGr1-yGr2MAXdiffy = max(MAXdiffy,diffy)jaune= (MAXdiffr/MAXdiffy) *Diffyreturn jaune as “jaune”, bleu as “bleu”, vert as “vert”, rouge as “rouge”03/20/2020 at 7:37 PM #122765>> Pour la clarté des messages sur les forums de ProRealCode, merci d’utiliser le bouton “insert PRT code” pour séparer la partie texte de la partie code, merci ! <<
🙂03/20/2020 at 7:40 PM #12276603/21/2020 at 11:04 AM #122796Il doit y avoir suffisamment d’unités sur le graphique pour permettre le calcul de l’indicateur :
1234567891011121314151617181920212223242526272829303132//=Red===================if barindex>20 thenGr1 = MACD[17,8,5](close)Gr2 = ExponentialAverage[5](Gr1)Diffr = Gr1-Gr2MAXdiffr = max(MAXdiffr,diffr)rouge= (MAXdiffr/MAXdiffr) *Diffr//=Green===================gGr1 = MACD[5,10,5](close)gGr2 = ExponentialAverage[5](gGr1)Diffg = gGr1-gGr2MAXdiffg = max(MAXdiffg,diffg)vert= (MAXdiffr/MAXdiffg) *Diffg//=Blue===================bGr1 = MACD[17,14,7](close)bGr2 = ExponentialAverage[7](bGr1)Diffb = bGr1-bGr2MAXdiffb = max(MAXdiffb,diffb)bleu= (MAXdiffr/MAXdiffb) *Diffb//=Yellow===================yGr1 = MACD[10,16,5](close)yGr2 = ExponentialAverage[5](yGr1)Diffy = yGr1-yGr2MAXdiffy = max(MAXdiffy,diffy)jaune= (MAXdiffr/MAXdiffy) *Diffyendifreturn jaune as "jaune", bleu as "bleu", vert as "vert", rouge as "rouge"03/21/2020 at 2:20 PM #122828 -
AuthorPosts
Find exclusive trading pro-tools on