Nous souhaitons attirer l'attention des contributeurs de nos forums que la législation française requiert que vous indiquiez si vous avez une position ouverte dans un instrument sur lequel vous émettez une opinion. Veuillez respecter cette recommandation faite par l’AMF (Autorité des Marchés Financiers) . Pour plus d'information : lire ce PDF.
esthétiquement j'aurai voulu une autre couleur que vert et une épaisseur plus épaisse de la largeur d'une bougie , une idée , où placer les couleurs rgb et le coef. dans le plotbars <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />
pour un simple macd j'utilise plotcandles(zero,macdhisto,macdhisto,zero);
//plot(macd,lightblue,2);
//plot(ema3,red,2);
</blockquote><hr />
Bonjour JB,
Pour les " plotbars " on ne peux pas les mofifier.
Il y a un an pratiquement j'avais posé la question à " WHS " pour savoir quand " Fipertec " envisageait d'intégrer l'instruction " plothistogram " dans la liste des mots réservés actifs.
Je n'ai jamais eu de réponse.
La seule solution envisageable, il me semble, serait que nous en fassions tous simultanément la demande à " Fipertec " pour que cela ait une chance d'aboutir.
À ma connaissance la " FutureStation Nano " est la seule plateforme qui ne permette pas la représentation graphique sous forme d'histogramme, ce qui est surprenant pour une plateforme de ce niveau d'autant que l'instruction " plothistogram " fait parti des mots réservés prévus pour être intégré à celle-ci.
<blockquote><strong>Citation de : Eric_Lefort</strong> <em>(au 11-10-2012 10:36:58)</em>
Si intéressés, voici <strong><u>le code de la force relative pour la nano de WHS</u></strong>.
<font color='#0000FF'>Express E_Indice_de_force
// Ecrit par Eric Lefort pour Mogalef
Vars
Input $Longueur(1,50,10); // longueur sur laquelle est examinée la force
input $Compare_Study(0,1,0); //Donner juste la Force (0) ou comparer les forces (1)
series haut1,bas1,haut2,bas2;
series Force,Force2; /Force du principal (CAC?) et force de l'indice comparé (DAX?)
series null,CP,CP2,N,N2;
series CLO(Study.close),HI(Study.high),LO(Study.low); // on va chercher les valeurs de l'indice que l'on va comparer au CAC
Calculation
CalculateAtEveryTick(false);
// *********************** Calcul de la Force du CAC : ceci est le meilleur algorythme que j'ai trouvé.
Haut1=Highest(h,$longueur);
Bas1=Lowest(l,$longueur);
N=(h+l+c)/3;
//if IsFinalBar() then
ExpMovingAverage(N,CP,3);
// ************************ Calcul de la force de l'indice comparé
If $compare_study =1 then begin
haut2=Highest(hi,$longueur);
bas2=Lowest(lo,$longueur);
N2=(hi+lo+clo)/3;
ExpMovingAverage(N2,cp2,3);
end
// ************************
if $compare_study>1 then begin
haut2=Highest(hi,$longueur);
bas2=Lowest(lo,$longueur);
N2=(hi+lo+clo)/3;
ExpMovingAverage(N2,cp2,3);
<blockquote><strong>Citation de : Eric_Lefort</strong> <em>(au 11-10-2012 12:48:37)</em>
Pour <strong><u>le code Nano de la volatilité</u></strong>, il est tout simple.
Il mesure la différence entre haut et bas de chaque jour puis applique une moyenne mobile (deux sont prévues en fai)
En général j'utilise 14 ou 20 jours pour le court terme, et 50 jours pour le long terme.
<font color='#0000FF'>express E_Volat_Jour
//Eric Lefort pour MOGALEF
vars
input $Periode_courte(2,40,20),$Periode_longue(40,150,50);
series Volat,MMC,MML;
calculation
// Le programme s'exécute à la clôture de chaque barre et non à chaque tick
if IsFirstBar() then
begin
CalculateAtEveryTick(false);
end
// Plot (Volat... chercher histogramme dans le pg macd histo)
Plot (MMC,"red",1);
Plot (MML,"blue",2);</font>
</blockquote><hr />
@Eric_Lefort
Merci pour le code force relative <img src='http://www.pro-at.com/style/images/icones/Super11.gif' border='0' alt='' title='' align='middle' />
Celui que tu m'avais envoyé était crypté.
Pour la volatilité, j'ai presque le même, ça me rassure <img src='http://www.pro-at.com/style/images/icones/icon_smile_big.gif' border='0' alt='' title='' align='middle' /> mais je l'ai appelé S_TrDma puisque c'est le TrDma de @Bpratsdesclaux <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />
<center><img src='http://www.pro-at.com/forums-bourse/1012/1638_111334.png' alt='' /></center>
Je me demande tout de même si on ne peut pas optimiser le code vu que j'ai un message en ce sens dans le rapport d'analyse de code.
Il me semblait pourtant optimisé. <img src='http://www.pro-at.com/style/images/icones/icon_smile_question.gif' border='0' alt='' title='' align='middle' />
Voici le message pour ton code E_Volat_Jour
Ce qui suit devrait apporter une réponse
Je n'ai pas comparé les courbes à vérifier
Sinon on peut aussi employer une autre formule de calcul des moyennes qui est moins gourmande en calculs que celle intégrée dans NanoTrader mais ça ajoute des lignes aux programmes, je le fais quand il y a beaucoup de moyennes à calculer!
express E_Volat_Jour
//Eric Lefort pour MOGALEF
vars
input $Periode_courte(2,40,20),$Periode_longue(40,150,50);
series Volat,MMC,MML;
calculation
// Le programme s'exécute à la clôture de chaque barre et non à chaque tick
CalculateAtEveryTick(false);
Volat=h-l;
if IsFirstBar() then
begin
MovingAverage(Volat,MMC,$Periode_courte);
MovingAverage(Volat,MML,$Periode_longue);
end
Interpretation
begin
end
// Plot (Volat... chercher histogramme dans le pg macd histo)
Plot (MMC,"red",1);
Plot (MML,"blue",2);
Bonjour Bernard
Quelque chose me disait que la réponse viendrait de toi. <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />
J'avais essayé aussi de modifier l'ordre du CalculateAtEveryTick(false) comme dans ta formule
mais dans ce cas là, ça ne fonctionne plus. <img src='http://www.pro-at.com/style/images/icones/icon_smile_blackeye.gif' border='0' alt='' title='' align='middle' />
<blockquote><strong>Citation de : StarGate1</strong> <em>(au 11-10-2012 15:38:11)</em>
Sinon on peut aussi employer <strong>une autre formule de calcul des moyennes</strong> qui est moins gourmande en calculs que celle intégrée dans NanoTrader mais ça ajoute des lignes aux programmes, je le fais quand il y a beaucoup de moyennes à calculer!
</blockquote><hr />
@StarGate1
J'ai quelques express avec pas mal de moyennes. A l'occasion, je veux bien cette formule afin de l'essayer sur mes codes.
Merci d'avance <img src='http://www.pro-at.com/style/images/icones/icon_smile_wink.gif' border='0' alt='' title='' align='middle' />
Merci pour cette amélioration, car meêm si on n'a le calcul qu'une fois par jour il est toujours utile de noter les "petits" détails qui font gagner du temps machine.
En explicitant ce que sont censés faire
if Isfirstbar() et if isfinalbar()
Pour n'avoir à calculer qu'une addition, une soustraction et une division au lieu de $span additions, une soustraction et une division !
cela donne :
----------------------------------------------------
//Test 12-10-2012
Express Moyenne_Mobile
Vars
input $Span(1,200,10);
series mean, somme, moy;
Calculation
somme = sum(c,$Span);
if somme[1] = void then
mean = close;
mean = ((somme[1] + c)-c[$span])/$Span;
MovingAverage(c,Moy,$Span);
// calcul de la moyenne intégrée sur la plateforme pour //vérification de résultat identique, //CalculateAtEverytick(false)non utilisé
Interpretation
begin
end
plot (mean,"Blue",1);
plot (moy,"red",1);
-----------------------------------------------------------
Comparer les deux courbes pour vérifier que le résultat est identique.
La moyenne mobile exponentielle ou toute autre moyenne peuvent également avoir des calculs similaires
Ex moyenne exponentielle
--------------------------------------------
//(c) Fipertec
Express EMA
Vars
input $span (1, 200, 10);
numeric factor (0);
series ema;
Calculation
factor = 2 / ($span + 1);
if close[1] = void then //we need one lookback entry
ema = close;
else
ema = factor * close + (1 - factor) * ema[1];
Nonotrader ne possède pas de fonction "Median" permettant de sélectionner la valeur médiane dans une liste (et non pas la moyenne, ne pas confondre!)
J'ai donc écrit un petit programme de calcul "rapide" du médian ne nécessitant pas de tri que je vous fourni à titre d'information.
Ce bout de programme est à inclure par exemple dans les programmes qui permettent de rendre "adaptatif" à la période immédiate toute moyenne et même tout indicateur.
////////////////////////////////////////////////////////////
//
// CACUL DE LA VALEUR MEDIANE DE DELTAPHASE SUR 5 PERIODES
//
// Utilisé dans un programme permettant de rendre ADAPTATIF
// tout indicateur en fonction de la période immédiate des // cours
//
// Express n'a pas de fonction de calcul du médian,
//
// Algorithme basé sur la méthode du pivot, rapide ne
// nécessitant pas de tri.
// Version uniquement pour un nombre d'éléments impairs (5 // éléments en dur dans le programme),
// facilement adaptable pour un nombre d'éléments pairs ou // variable
////////////////////////////////////////////////////////////
for i = 0 to 4 // Nb d'éléments - 1 pour la première boucle //i
begin
M = DeltaPhase<em>; //la série dont on veut trouver la //médiane
SousPivot = 0; // sous le pivot
SurPivot = 0; // au dessus du pivot
end
for j = 0 to 4 // Deuxième boucle j
begin
if DeltaPhase[j] < M then
SousPivot = SousPivot + 1; // si élément inférieur à M //classement dans souspivot
else if DeltaPhase[j] > M then
SurPivot = SurPivot + 1; // si élément supérieur à M //classement dans surpivot
end
if SurPivot = SousPivot and j = 4 then
MedianDelta = M; // Lorsque tous les //éléments sont classées M représente la valeur médiane
Commentaire