Bonjour
J’essaye de backterster en vue d’automatiser une stratégie de pullback suite à des retournements du supertrend
C’est une de mes premières programmation Probacktest et à l’évidence je ne maitrise pas tout. Pour l’instant je ne me suis focalisé que sur les Buy, je ferai les Sell une fois que la logique sera bonne sur les Buy. Je teste sur des paires FOREX
Quand je lance le backtest aucun ordre n’est lancé.
Dans la logique, suite à un retournement du supertrend à l’achat, je veux placer un ordre d’achat à cours limité sur le supertrend pour jouer le pullback. Mon TP est le plus haut depuis le retournement du ST, mon SL est le plus bas entre les retournements précédents du ST. J’ai mis des offset pour ajouter ou retrancher qq pips sur le SL et TP afin de regarder l’impact sur le résultat.
Pouvez vous me confirmer que les ordre à cours limité sont à repositionner à chaque bougie ?
J’ai aussi mis un facteur 100 pour gérer le YEN, mais je pense que je ne fais pas comme il faut, je suis sur qu’il y a bcp plus simple.
J’ai repris le money management en pourcentage du capital que Nicolas avait proposé sur le Forum, en rajoutant une notion de devise pour traiter des paires avec le bon taux de change.
Je gère différents facteurs pour savoir quand y aller : Le ratio, le gain minimum (valeur minimum du TP) et est ce qu’il y a un pullback en cours (sur cette variable notamment, je ne suis pas sur du tout de ce que j’ai fait et de comment ProRealTime la recalcule ou pas à chaque nouvelle bougie
Pour sortir de me positions, soit le TP est atteint, soit je sors au marché sur retournement du Supertrend à la baisse.
Enfin je pense que mon code est pas du tout optimisé, mais ça viendra dans un seconde temps
Je vous remercie par avance de l’aide que vous pourrez me donner
Wilfried
//Bactest Pullback
//Variable m , p, OffsetSL,OffsetTP, Ratio, GainMIN
M=2
p=10
OffsetSL=5 //pips
OffsetTP=2 //pips
Ratio=0.4
GainMIN=8
//Gestion du Yen : Fact =100 pour le Yen, sinon fact = 1
Fact=1
// Money Management
Capital = 10000
TxChange =1.6838
Risk = 0.005// = 0.5%
StopLoss = 100 // value of stoploss in pips/points
REM Calculate contracts
equity = Capital + StrategyProfit
maxrisk = round(equity*Risk)
st = Supertrend[m,p]
once PullbackHA=1
if close > st then
//calcul du nombre de bougie jusqu’au premier retounement et au précédent
i=0
WHILE (st[i+1] < close[i+1]) DO
i = i+1
WEND
j=i+1
WHILE (st[j+1] > close[j+1]) DO
j = j+1
WEND
//calcul des tailles de position
amplitudeSLPB=abs(close - lowest[j](low))
SLPB = (close - amplitudeSLPB)- OffsetSL/10000*fact
amplitudeTPPB = abs(close)-highest[i](close)
TPPB= (close + amplitudeTPPB)- OffsetTP/10000*fact
TPPBpips=abs(close-TPPB)*10000/fact
SLPBpips= abs(close-SLPB)*10000/fact
//taille de position
PositionSize = abs(round((maxrisk*TxChange/SLPBpips)/PointValue)*pipsize)
//conditions pour HA
//ratioPB = TPPBpips/SLPBpips > Ratio
//GainPB = TPPBpips>GainMIN
//ObjSTKO = highest[i](high) < TPPB
//
If PullbackHA then
BUY PositionSize LOT AT st LIMIT
SET STOP LOSS abs(close-SLPB)
SET TARGET PROFIT abs(close-TPPB)
pullbackHA=0
Endif
Endif
If close CROSSES UNDER ST and LongOnMarket then
Sell at market
PullbackHA=1
Endif