Bonjour,
Quelle variable dois-je ajouter à mon code ci-dessous afin que le système ne me prenne qu’une seule position par jour, qu’elle soit gagnante ou perdante?
Merci d’avance,
// Conditions : Gap ouverture
Defparam CumulateOrders = false
if DOpen(0)> DClose(1) THEN
BUY 1 CONTRACTS AT MARKET
ELSIF DOpen(0)< DClose(1) THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
// Stops et objectifs :
Set stop loss 20
Set target profit 20
Phil4910
Merci Nicolas, je vais consulter tes liens.
Phil4910
Nicolas,
Après consultati0n des deux derniers liens, le programme modifié (ci-joint) ne fonctionne toujours pas.
L’image jointe te montre que, malgré le gap baissier ce jour (élipse jaune en haut à droite), le programme me prend un achat(???) à 08h00 au prix du marché alors que cela aurait du être une vente.
En outre, dans le tableau, il me prend plusieurs positions les 11 et 20 septembre alors que je ne souhaite qu’une position par jour à partir de 08h00 -> ???
PS : Pour info, les deux premiers liens fournis ne fonctionnent pas.
Merci de ton aide,
Phil4910
// Conditions : Gap ouverture
defparam cumulateorders=false
defparam flatbefore=080000
defparam flatafter=113000
maxorders = 1 //max orders per day
//reset the count of orders each day
if intradaybarindex=0 then
count = 0
endif
If DOpen(0)> DClose(1) and count<maxorders THEN
BUY 1 CONTRACTS AT MARKET
ELSIF DOpen(0)< DClose(1) and count<maxorders THEN
SELLSHORT 1 CONTRACTS AT MARKET
ENDIF
//counting orders
if onmarket and lastindex<>tradeindex then
count=count+1
lastindex=tradeindex
endif
// Stops et objectifs :
Set stop loss 10
Set target profit 10
Je rappel que pour débugger on peut utiliser l’instruction GRAPH. Pourquoi ProBacktest agit-il ainsi ? Allons voir nos conditions !
GRAPH DOpen(0)> DClose(1)
GRAPH DOpen(0)< DClose(1)
Tu pourras aussi vérifier si ton incrément d’ordres déjà vu par le code est correct:
GRAPH count
Nicolas,
J’ai essayé mais je suis une bille en langage informatique…
Je ne comprend toujours pas pourquoi il me prend 2 positions, parfois à une minute d’intervalle et opposées (cfr 20/09), ni le sens par rapport au sens demandé.
Je suis bien conscient que l’erreur vient du programmeur mais là, je suis bloqué.
Si tu pouvais m’aider, ce serait sympa.
Phil4910
Pour les 2 positions, c’est le genre de problème qui peut se produire lorsque le premier trade a fermé durant la même barre que celle de son ouverture. Le code n’a ainsi pas le temps d’incrémenter son compteur. En baissant dans les timeframes, le phénomène disparaît, car le code est donc lu plus souvent. Je viens d’essayer en timeframe 10 secondes et ça résout ton problème d’ordres multiples durant la même journée.
Okay, un problème résolu 😉
Et concernant le sens? (quand tu as le temps of course!)
Phil4910
Bonjour,
Quelle variable dois-je ajouter à mon code afin que le système ne prenne plus de position quand elle est perdante et reprenne le lendemain
Merci d’avance,