CFD : DAX mini 1€ ou 5€ (dans une 2ème étape), pas horaire.
Ma méthode et ma philosophie :
Réaliser un algorithme réactif aux mouvements de marché, robustes aux cracks boursiers, et se protégeant contre les faux signaux, tout en favorisant le nombre de gains, plutôt que la performance pure. En effet, dans un investissement à fort effet de levier, il vaut mieux avoir des petits gains réguliers plutôt que des gros gains de temps en temps, car une perte inhabituelle non prévue par le backtest peut vous faire perdre beaucoup d’argent. Et de plus c’est très mauvais pour le moral !
Le rapport nb gain/nb perte = 2.23. Sur 3 trades, on gagne 2 fois et on perd 1 fois.
La performance est tout de même de 1520% sur 11 mois.
Ainsi, pour un investissement de 1000€, au premier janvier 2016, aurait rapporté 15 203€ en 24 novembre 2016.
En conditions réelles, je le teste que depuis 1 mois. J’ai eu un gain de quelques centaines d’euros, car la mise au point de ce code est constituée d’améliorations successives depuis février 2016, dont je présente ici la version la plus aboutie.
Merci de vos retours et suggestions d’améliorations.
//-------------------------------------------------------------------------
// Code principal : 7_STO_H1_4_3_9
// Le cœur du programme est basé sur le STOCHASTIQUE qui
// est très réactif aux mouvements de marché, notamment aux crack boursier
// Les autres lignes de code corrigent les faux signaux.
//-------------------------------------------------------------------------
DEFPARAM CumulateOrders=False
// STOCHASTIC LISSE System
MONTANT=1
//DEFINITION MACD
indMACD0 = MACD[12,26,9](close[0])
//PIVOT
PIVOT = ( DHigh(1) + DLow(1) +DClose(1) ) /3
RE2 = PIVOT + ( DHigh(1) - DLow(1))
//DEFINITION MOYENNE MOBILE
n=42
AVGn = ExponentialAverage[n](Close)
//DEFINITION SuperTrend
STC =SuperTrend[1,4]
//Definition STOCHASTIQUE
a=17
b=16
c=5
Indicator1 =SmoothedStochastic[a,b](MedianPrice) //%K STOCHASTIQUE
Indicator2 =ExponentialAverage[c](Indicator1) //%D MOYENNE SUR LE STOCHASTIQUE
//CONDITIONS
condAchatSTO = (Indicator1 CROSSES OVER Indicator2) OR (Indicator1 CROSSES OVER 20)
condVenteSTO = (Indicator1 CROSSES UNDER Indicator2) OR (Indicator1 CROSSES UNDER 80)
//ENTRÉE POSITION LONGUE
IF NOT LONGONMARKET AND condAchatSTO AND indMACD0>0 AND Close > STC THEN
BUY MONTANT LOT AT MARKET
ENDIF
// SORTIE POSITION LONGUE
IF LONGONMARKET AND (Close < STC OR indMACD0<0) THEN
SELL AT RE2 LIMIT
ELSIF Open = STC AND Close > STC THEN
SELL AT STC LIMIT
ELSIF condVenteSTO THEN
SELL AT MARKET
ENDIF
//ENTREE POSITION COURTE
IF NOT SHORTONMARKET AND (Open < AVGn AND indMACD0<0) THEN
SELL AT MAX(RE2,AVGn) LIMIT
ELSIF Close < AVGn THEN
SELLSHORT AT MIN(RE2,AVGn) LIMIT
ELSIF condVenteSTO THEN
SELLSHORT AT MARKET
ENDIF
//ENTRY 2 POSITION SHORT
IF condVenteSTO THEN
SELLSHORT MONTANT LOT AT MARKET
ENDIF
//SORTIE SI BAISSE SOUS LA MM
IF SHORTONMARKET AND low crosses under STC THEN
exitshort AT MARKET
ENDIF
//AMELIORATION DANS LA V9
IF SHORTONMARKET AND low crosses over STC THEN
exitshort AT MARKET
ENDIF
//AMELIORATION DANS LA V9
IF LONGONMARKET AND close crosses under STC THEN
SELL AT MARKET
ENDIF
//SORTIE POSITION COURTE
IF SHORTONMARKET AND (condAchatSTO) THEN
BUY AT MARKET
ENDIF
// SORTIE D'URGENCE
// 1- EXITLONG Si CONTRESENS
y=0.07
IF Close < ((0.9+y)*TradePrice(1)) THEN
SELL AT MARKET
ENDIF
//2- EXITSHORT Si CONTRESENS
x=0.011
IF ShortonMarket AND (Close > (1+x)*Tradeprice(1)) THEN
Exitshort AT LOW LIMIT
ENDIF
SET STOP PLOSS 13
SET TARGET PPROFIT 13