stratégie Stochastique DAX 1 hour

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #17182 quote
    Master_Code
    Participant
    New

    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
    dax-sto-h-1480071399lc48p1.jpg dax-sto-h-1480071399lc48p1.jpg
    #17185 quote
    Nicolas
    Keymaster
    Master

    Bonjour Master_Code,

    Merci pour le partage dans la bibliothèque de code pour prorealtime du site. Comme tu peux le constater, j’ai volontairement déplacé ton post ici sur le forum pour en discuter.

    Malheureusement, je vois 2 gros problèmes liés à la stratégie et même si celle-ci semble avoir donné satisfaction en temps réel, le backtest parle de lui même. Plus de 80% des trades sont fermés en gains sur la barre sur laquelle ils se sont ouverts, naturellement si tu n’es pas encore au fait du comportement du moteur de backtest actuel de prorealtime, tu ne peux pas savoir que cela ne sera pas forcément le cas en temps réel et que le stoploss aurait pu être tapé avant le takeprofit (voir ma vidéo sur le nouveau moteur de backtest en tick par tick de prorealtime). En backtest, c’est le takeprofit qui est toujours testé en premier, dans la version actuelle de probacktest.

    Ensuite, il semble que tu es sur-évalué les périodes de la stochastique sur le passé, le 1er problème mis à part, cela tend à prouver que la stratégie est sur-optimisé (phénomène de ‘overfit’ ou ‘equity curve fitting’).

    Désolé si cela est contrariant vis à vis de ton travail que je respecte, encore une fois j’apprécie le partage! N’hésite pas si tu es des questions.

    #17253 quote
    Master_Code
    Participant
    New

    Bonjour Nicolas,

    Merci, pour ton analyse. Tes remarques ne sont pas désobligeantes. Au contraire, c’est une forme de challenge qui ne peut me faire que progresser. Je reste toutefois confiant dans mon script, car il est robuste au pas de temps, c’est à dire, si je change  un autre pas de temps, la stratégie continue d’être gagnante.

    Je pense que si 80% des trades sont fermés sur la première barre,  en raison du seuil posé sur les stop loss et take profit. C’est aussi le cas du script ALEX AutotradingBot Index. C’est une amélioration que j’ai mis récemment.

    Oui, je suis au courant des limites du backtest, c’est pourquoi j’attends avec impatience son implantation sur le site Prorealtime CFD. Mais j’ai appris sur le site de Prorealcode qu’il était possible de le tester. Je suis aller sur le site de Prorealtime, mais là je n’ai pas vu l’option “Simulation tick by tick”, sans doute en raison du pas journalier, en effet, je ne peux pas descendre en pas intraday, je n’ai pas pris d’abonnement. Est-ce bien cela ?

    Comment résoudre le problème que tu évoques de la sur-optimisation ? Comment désoptimiser ? En prenant des paramètres par défaut de l’indicateur ?

    Merci

    A bientôt.

    #17295 quote
    Master_Code
    Participant
    New

    Juste une précision, pour le changement de pas de temps, ne pas en tenir compte.

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

stratégie Stochastique DAX 1 hour


ProOrder : Trading Automatique & Backtests

New Reply
Author
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by Master_Code
9 years, 3 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 11/25/2016
Status: Active
Attachments: No files
Logo Logo
Loading...