Page 1 of 1

MACD sur weighted price + coloration hausse & baisse

Posted: 09 Oct 2014 16:36
by kiyohira
Bonjour,

j'essaye de coder une MACD sur le Weighted Price avec une coloration pour la hausse et la baisse. J'ai codé 3 fois le même indicateur de manière différente.

MACD_Testv2:
- le code fonctionne: MACD + Coloration Hausse & Baisse
- j'utilise une fonction IsFirstBar
- je dois alors faire 2 boucles, une pour le calcul du weightedPrice, l'autre pour la MACD.
- le code pour coloriser la MACD est hors de la derniere boucle.
- je pense que le code est lourd pour la plateforme.

MACD_Testv1:
- le code NE fonctionne PAS pour la coloration Hausse & Baisse
- j'utilise une fonction IsFinalBar
- une seule boucle calcule bien la MACD
- le code de coloration Hausse & Baisse et hors de la boucle mais ne fonctionne pas (il fonctionne hors de la boucle lorsqu'il y a une fonction IsFirstBar voir le code MACD_Testv2 mais il faut alors 2 boucles ce qui est plus lourd).

MACD_Testv0:
- le code NE fonctionne PAS pour la coloration Hausse & Baisse
- j'utilise une fonction IsFinalBar
- une seule boucle calcule la MACD et la coloration Hausse & Baisse qui ne marche pas.

Ma question est simple doit on passer par la version v0 ou peut-on faire fonctionner les codes v1 ou v0 qui sont plus legèrs car j'ai aussi 4 autres indicateurs qui utilisent le même code et j'affiche 2 études à la fois pour avoir 2 unités de temps différentes sur le même instruments: ce qui charge la Nano et le système.
J'ai aussi codé une version v3 avec IsBarCompleted() qui est le bon compromis MAIS au niveau de la bougie en cours la MACD relie la ligne horizontale des abscisses - donc indique 0 - ce qui n'est pas correct.

Merci de vos réponses.
Jean-Christophe. ;)
PS: code v3 ci-dessous car je ne peux pas uploader le troisième fichier:

Express MACD_Testv3

Vars

Series
WeightedPrice,

//MACD Calculation//
Macd_FastEMA,
Macd_SlowEMA,
MACD_Signal,
MACD,
//MACD_histo,
MACD_up,
MACD_down;

Numeric
i;

Input
$fastEMA(1, 200, 9),
$slowEMA(1, 200, 19),
$MACD_Signal_period(1, 200, 6);

Calculation

CalculateAtEveryTick(false);

WeightedPrice = (h+l+(c*2))/4;

SetYscaleFormat(GetPriceFormat());

If IsBarCompleted() then

begin
//MACD Calculation
ExpMovingAverage(WeightedPrice, Macd_FastEMA, $fastEMA);
ExpMovingAverage(WeightedPrice, Macd_SlowEMA, $slowEMA);
MACD= Macd_FastEMA-Macd_SlowEMA;
ExpMovingAverage(MACD, MACD_Signal, $MACD_Signal_period);
end

if MACD >= MACD[1] then // Colorise MACD according to trend
begin
MACD_up = MACD;
MACD_up[1] = MACD[1];
MACD_down = void;
end
else
begin
MACD_down = MACD;
MACD_down[1] = MACD[1];
MACD_up = void;
end

Interpretation
begin
end

//DISPLAY//////////////////////////////////////////////////////////////////////////

plotline(0,200,200,200,1); //abscissa line

////MACD Line
//plot(MACD_SMA,225,225,225, 1); //Bollinger Bands mid line = MACD MA (same line for Boll with STD1 or STD2)
plot(MACD_up,0,220,0, 4); //MACD is bullish green
plot(MACD_down,255,0,0, 4);
plotcrossinglines(MACD,"grey",0,MACD_signal,"grey",0,"lightgreen","lightred");

//DEBUG SECTION////////////////////////////////////////////////////////////////////
////MACD Line
//plot(MACD,"blue", 1); //MACD
//plot(MACD_signal,220,220,220,1); //MACD Signal//@@@cs:782082-3691939-552277_cs@@@

Re: MACD sur weighted price + coloration hausse & baisse

Posted: 15 Oct 2014 11:58
by WHS Support
Bonjour Jean-Christophe,

Je fais suite à votre post et je pense que nous possedons quelque chose qui va pouvoir vous aider. Il s'agit d'une nouvelle fonction WMA(Weighted Moving Average) qui va vous simplifier les choses.

Vous trouverez ci-joint un exemple de codage pour une MACD. Il ne vous restera plus qu'a intégrer les séries relatives aux couleurs:
W_MACD.txt
Je vous en souhaite bonne réception.

Cordialement,

Amélie

WH SelfInvest

Re: MACD sur weighted price + coloration hausse & baisse

Posted: 22 Oct 2014 15:04
by kiyohira
Merci de vore réponse.

Cordialement,

Jean-Christophe.