Bonjour a tous,
Débutant dans le trading je pense me tourner vers le trading automatique,
Toutefois je m’essaye a coder mais voila cela ne fonctionne pas ( aucun achat ni vente ne s’effectue…)
je met en pièce jointe ce que j’ai fais (tout simple pour essayer)
Si quelqu’un peut m’éclairer je vous remercie
Bonne journée
Defparam CumulateOrders=False
IF Close > Average[20] THEN
BUY 2 SHARE AT MARKET
ENDIF
If LongOnMarket THEN
SET STOP TRAILING 5
ENDIF
If Close < Average[20] THEN
SELL 2 SHARE AT MARKET
ENDIF
IF ShortOnMarket THEN
SET STOP TRAILING 5
ENDIF
Je ne suis pas un spécialiste mais l’algo fonctionne comme ca, attention tout de même aux résultats véritables de l’algo car le stop suiveur est particulièrement proche (tester en tick par tick).
Tu peux suivre gratuitement des cours pour dev un algo : https://www.prorealcode.com/programming-with-prorealtime/
Bon courage à toi et bonne découverte du trading algo !
Super un grand merci pour l’efficacité et la rapidité!
J’ai modifié le titre du sujet (“aide au codage” n’est pas un titre significatif.)
Merci de respecter les règles du forum énoncées dans chaque encart jaune dans chacune des pages du forum.
Bonjour,
Alors voila j’ai de nouveaux quelques souci de logique (pourtant j’ai suivi les cours du site) :
je ne comprend pas pourquoi il me retourne 1 comme résultat alors que je lui demande de retourner uniquement si la fermeture de la bougie d’avant est strictement supérieure a la moyenne mobile et au Supertrend….
Pouvez vous m’éclairer?
Bonne journée
Je vois potentiellement 2 problèmes:
- tu testes le Close antérieure mais avec les valeurs de MM et ST actuel (je ne sais pas si c’est volontaire)
- tu imbriques tes conditions avec un ELSIF, donc la logique ET n’est pas respectée, si tu veux tester 2 conditions dans un même IF, il faut les lier avec un AND
exemple:
IF CLOSE[1] > MM AND CLOSE[1]>ST
Bonjour, merci de votre aide,
- oui je teste le CLOSE antérieur car je ne pensai pas qu’on pouvait tester l’actuel car par la suite je voudrai que l’achat se fasse sur l’ouverture de l’actuel (si c’est possible) par contre j’ai vu que je peux mettre la Moyenne Mobile antérieur (1) mais cela ne fonctionne pas sur le Supertrend?
- J’ai réécris avec le AND merci, toutefois le résultat que cela me donne est comme si jamais mis un OU a savoir il me met sur 1 qu ce soit au dessus de la moyenne mobile ou le supertrend alors que e voudrais que ce soit uniquement quand c’est au dessus de deux?
Merci
1/ le close actuel c’est CLOSE[0] ou CLOSE tout simplement, on peut bien entendu l’utiliser. Pour le supertrend, tu as l’as déclaré dans la variable ST, donc tu peux te référer à sa valeur n-1 avec ST[1]
2/
result = 0
IF CLOSE > MM AND CLOSE>ST THEN
result=1
endif
RETURN RESULT
tu obtiendras 1 quand la clôture actuel est bien au dessus à la fois de MM et ST, sinon 0.
Bonjour,
Encore merci de votre aide cela me permet d’avancer…
Maintenant je me heurte a une autre problématique, je voudrais que le résultat=1 ne se fasse qu’une fois en attendant que la condition ( passage au dessus des 2 Moyenne mobile et Supertrend) ne se représente j’ai essayé en mettant ONCE Result=1 mais du coup il ne le fais qu’une fois et ne recommence jamais…
Merci
Bonjour,
J’ai également une problématique que je ne comprend pas, voici le code Pro builder que j’ai écris, toutefois le système ne fait que des achats( a la hausse) mais ne passe aucun ordre de vente a découvert je ne comprend pas pourquoi?
Merci
Bjr,
Les extraits de code s’affichent de préférence dans le corps du message (avec bouton “insert PRT code” s’il apparait directement dans la barre de menu du message, ou en faisant CTRL+F5 pour le faire réapparaitre).
Ton code ne passe pas d’ordre de vente à découvert parce que tu ne le lui as pas demandé. Sell ne sert qu’à vendre une position existante, mais ne s’utilise pas pour les ventes à découvert. Il te faut l’instruction sellshort.
Bonjour
Ok pour le code je ferais insi désormais merci,
Du coup merci pour le SELLSHORT c’ets ce qui manquait effectivement…
Maintenant je me heurte a une autre problématique, je voudrais que le résultat=1 ne se fasse qu’une fois en attendant que la condition ( passage au dessus des 2 Moyenne mobile et Supertrend) ne se représente j’ai essayé en mettant ONCE Result=1 mais du coup il ne le fais qu’une fois et ne recommence jamais…
Bonsoir, suis revenu sur le post quelques fois quand j’avais un petit créneau, mais je pense que je ne comprends pas ton “avoir le résultat=1 qu’une fois”. D’une part je ne trouve que la mm20 donc je ne vois pas l’histoire des “2 moyennes mobiles”, je l’ai probablement ratée dnas un des attachements mais je ne la vois pas. D’autre part, si ton résultat est issu d’une condition sur mm20 et ST, tu l’as quand tu l’as, tu ne peux pas choisir que les cours ne te donnent qu’une fois la condition. Eventuellement (mais ce serait formulé autrement) tu veux te souvenir que le résultat a eu lieu au moins une fois et que la variable résultat reste scotchée sur 1 si c’est le cas? Enfin, pour once, sans forcément avoir compris la question sur résultat=1, pour info c’est normal qu’il ne te serve pas dans un tel cas, car once ne sert qu’à donner une valeur une seule fois au tout début de l’histprique, puis ne sert plus.
Bonsoir, désolé je n’ai pas été très clair effectivement,
en Fait il n’y a que deux courbes a savoir une moyenne mobile [20] et le Supertrend [3,20] , En fait je veux déclencher un achat a chaque fois que le prix passe au dessus des deux moyennes mobiles ( la deuxième bougie haussière suite a cette condition) mais une seule fois tant que le prix n’est pas repassé au dessous de la moyenne mobile [20] et le Supertrend [3,20], et bien sur faire la même chose dan l’autre Sens (vente a découvert suite a passge en dessous de la moyenne mobile [20] et le Supertrend [3,20]) je met une photo en pièces jointes pour illustrer merci beaucoup
Bonjour,
Je remet le code utilisé, j’ai également fais des essais en utilisant CROSSES OVER ou CROSSES UNDER mais il semble que celui ne fonctionne que pour 2 courbe …
Defparam Flatbefore = 080000
Defparam Flatafter = 173000
Defparam CumulateOrders=False
HEURELIMITE = 170000
MM = Average[20]
ST = Supertrend[3,20]
// Conditions pour ouvrir une position acheteuse
IF CLOSE > MM and CLOSE > ST and CLOSE[1]> OPEN [1] and CLOSE > OPEN THEN
BUY 1 SHARE AT MARKET
ENDIF
// Conditins pour fermer une position acheteuse
If LongOnMarket THEN
SET STOP TRAILING 0.08
ENDIF
// Conditions pour ouvrir une position en vente à découvert
IF CLOSE < MM and CLOSE < ST and CLOSE[1]< OPEN [1] and CLOSE < OPEN THEN
SELLSHORT 1 SHARE AT MARKET
ENDIF
// Conditions pour fermer une position en vente à découvert
IF LongOnMarket THEN
SET STOP TRAILING 0.08
ENDIF
// Stops et objectifs : entrez vos stops et vos objectifs ici
IF STRATEGYPROFIT < -500 THEN
QUIT
ENDIF