top of page
"There's no certitude, only opportunities."   

Aide à la programmation

Public·1 membre

Pourquoi "If IsFirstBar"

Lors de l'écriture d'un indicateur on recommande de commencer la partie CALCULATION par :


if isfirstbar() then begin

CalculateAtEveryTick(false) ;

SetYscaleFormat(GetPriceFormat());

end


L'instruction CalculateAtEveryTick(false) permet d'éviter que le calcul de l'indicateur se fasse à chaque tick ce qui peut représenter plusieurs dizaines de calculs par seconde, de quoi faire "exploser" les capacités de votre ordinateur.


25 vues
philippe
29. Sept. 2022

Il existe une troisième solution c'est d'utiliser une méthode de calcul différente de la moyenne mobile qui est plus rapide.


If isfirstbar() then

Begin

CalculateAtEveryTick(false);

SetYscaleFormat(GetPriceFormat());

end


CM = (Close+H+L) /3;

if CurrentBarIndex() <= 10 then MMobile = CM;

if CurrentBarIndex() > 10 then

begin

MMobile = MMobile[1] + (CM - MMobile[1]) /10;

End




Comment utiliser le croisement de 2 lignes pour un stop ou un target ?

On trouve des exemples dans le sytème de trading pour entrer sur la marché mais pas pour en sortir,

50 vues
Eric
Eric
28. Sept. 2022

DE PLUS


Tu utilises l'instruction : MovingAverage(G,Gx3,-3);


Le moins 3 signifie que tu regardes l'avenir, c'est à dire la position de la moyenne mobile 3 bougies plus loin.

Il est évident que si l'on connait l'avenir l'indicateur sera très efficace ! 😏

Suivi des cours

Peux-tu m’indiquer comment, dans un graphique, programmer pour avoir le suivi non pas en fin de période mais en permanence,

Quelle que soit la moyenne utilisée, on aura Open au départ et Close en fin de période, mais comment pouvoir suivre la valeur du cours entre open et close,

Ce peut-être, par exemple, le déplacement des cours, d’une moyenne ou de H et L entre début et fin de la période, et non à la fin de chaque période,

Sur la plateforme , la colonne de droite indique de haut vers le bas : taille de position, position, P/L, dernier, comment peut-on dans un essai d’automatisation appeler ce dernier qui bouge sans arrêt,

Ce qui est possible pour le Repulse doit pouvoir être possible pour les cours ou autres indicateurs,


Autre sujet : Comment ajouter les volumes en bas d’un graphique ?


25 vues
philippe
26. Aug. 2022

Comme le dit Eric attention a l'instruction CalculateAtEveryTick(True) si tu as beaucoup de calcul non optimise dans ta strategie alors ton ordinateur n'arrivera pas a suivre pendant les periodes actives du marche avec beaucoup de ticks.

Ci-dessous un petit programme qui permet d'afficher le cours au dessus de la bougie en temps reel pour montrer comment fonctionne l'instruction CalculateAtEveryTick(True).


Express Afficher_Close


Vars


Calculation

if IsFirstBar() then

begin

CalculateAtEveryTick(true);

SetYscaleFormat(GetPriceFormat());

end

if IsFinalBar() then

Begin

Highlight("textabove:"

+"-------------------"

+"\n"

+"Cours "

+ NumericToString(c,"")

+"\n"

+"-------------------"

,"blue");

End

Interpretation

Begin

End



Anomalie non expliquée

Malheureusement, je n'arrive toujours pas à t"envoyer la capture d'écran,

en attendant voici le reste,

Ci-joint une capture d’écran où il y a un trade (paper) sur FDax visible le vendredi 7/07/2022 de 11h37 à 11h39,

mais d’après le graphique qui est montant on devrait avoir un achat,

ce qui d’ailleurs est confirmé par le relevé visible de ShowTip, DifGex71= 4,49

DifGex7 =4.04


31 vues
philippe
16. Juli 2022

En regardant le programme je vois déjà un problème d’optimisation dans le code. Si tu mets ce programme sur un graphique cela doit prendre plusieurs minutes pour 60 jours de données en 1-5 ou 10 mn.

La premiere partie est bonne lorsque tu calcules sur la premiere barre et sinon le calcul se fait sur les autres barres car une serie se reffere a une valeur precedente [1].

La boucle de calcul for i=CurrentBarIndex() downto 0 effectue a chaque nouvelle barre un calcul en arriere sur toutes les barres de ce qui est entre begin et end. Il faut utiliser cette boucle seulement pour un calcul qui a besoin de se faire sur les barres precedentes.

Tu as mis dans cette boucle le calcul de toutes les moyennes mobiles ce qui consomment beaucoup de CPU et cette boucle fait qu'a chaque nouvelle barre nous recalculons pour toutes les moyennes mobiles. Ce n'est pas necessaire, la seule partie qui a besoin d'une boucle pour le calcul en arriere est:

Gha=(haHgh+haLow+haClo)/3; // cours de base a cause de haHgh.

Tout le reste peut etre sortie de la boucle et place en dessous dans le programme, tu verras la vitesse d'execution multipliee par 1000.


Pour le probleme du trade le 7-7-2022 il faut dans le parametrage du trading cocher la case display backtest controls. Ensuite clicquez sur le troisieme bouton avec les deux fleches vers l'exterieur. Cela permet de prendre en compte tout l'historique pour le calcul de simulation. Tu as maintenant des millier de trades. Il faut changer les valeurs de stop et target qui sont trop pres.


L'autre probleme est que sentiment est toujours a zero trade short, il n'y a pas de 50 ou 100 trade long. La declaration de la variable senti doit toujours se faire avec une valeur par defaut a 50.




Eric Lefort trader français

© 2010 - 2025 Eric Lefort    MOGALEF is a registered trademark

Eric s'est retiré.
Il n'y aura plus de newsletter.

CONNECT WITH US

  • YouTube Basic Black
bottom of page