Code journalier simple mais sans resultat

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #144646 quote
    Vivien René
    Participant
    Average

    Bonjour

    Je me mets a faire des backtests pour verifier une strategie vraiment toute simple : acheter a 96/100 de l ouverture et vendre au point de fermeture.

    Rien de plus easy a faire en daily a priori… et pourtant… mon backtest ne fonctionne absolument pas et ne me retourne aucun resultat.

    Bon je debute donc il y a sans doute une chose que je n ai pas du comprendre (je teste cela sur DroneVolt depuis le 24 aout)

    (Et pardon pour le titre mais je ne savais pas vraiment quoi mettre pour le coup)

    En vous remerciant

     

    // Conditions pour ouvrir une position acheteuse
    IF (close = 96/100*DOpen(0)) THEN
    BUY 2500 CASH AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    IF (close = DClose(0)) THEN
    SELL AT MARKET
    ENDIF
    #144650 quote
    robertogozzi
    Moderator
    Master

    Cela est dû au fait qu’il est presque impossible qu’un prix soit exactement égal, comme vous l’avez écrit, au prix retourné par votre formule à la ligne 2.

    Essayez d’utiliser > = ou <= (également à la ligne 7).

    #144653 quote
    Nicolas
    Keymaster
    Master

    Il y a plusieurs problèmes dans ta façon de faire.

    1. Pour mémoire, le code n’est lu qu’une seule fois en fin de bougie et les ordres lancés à l’open suivant. Il faut donc descendre en unité de temps en utilisant les données OHLC de la bougie daily.
    2. tu compares des valeurs strictes. Il y a très peu de chance que le close d’une bougie soit strictement égale à 96% de l’open daily, dans ce cas il vaut mieux utiliser un comparatif de type > ou = (>=)

    Les constantes OHLC des bougies daily s’obtiennent avec les instructions Dopen(0), Dhigh(0), Dlow(0), Dclose(0)

    #144654 quote
    Vivien René
    Participant
    Average

    Pas mieux

    Meme en changeant. Cependant je suis etonne car… la valeur de fermeture est necessairement celle du prix, donc on ne devrait pas avoir a faire une fourchette

    M enfin, meme en mettant une fourchette cela ne fonctionne pas

    c1 = (close <= 96/100*DOpen(0))
    
    IF c1 THEN
    BUY 2500 CASH AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    c2 = (close >= 99/100*DClose(0) and close <= 101/100*DClose(0))
    
    IF c2 THEN
    SELL AT MARKET
    ENDIF
    #144655 quote
    Vivien René
    Participant
    Average

    J ai essaye de changer en mettant sur le graphe a la demie heure, heure, minute, mais sans succes egalement

    #144660 quote
    Vivien René
    Participant
    Average

    Bon j ai trouve une solution

    Pas ideal mais toujours ca

    DEFPARAM CumulateOrders = False
    // Conditions pour ouvrir une position acheteuse
    c1 = close <= 96/100*DOpen(0)
    
    IF c1 THEN
    BUY 2500 CASH AT MARKET
    ENDIF
    
    // Conditions pour fermer une position acheteuse
    c2 = Time >= 170000
    
    IF c2 THEN
    SELL AT MARKET
    ENDIF
Viewing 6 posts - 1 through 6 (of 6 total)
  • You must be logged in to reply to this topic.

Code journalier simple mais sans resultat


ProOrder : Trading Automatique & Backtests

New Reply
Author
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by Vivien René
5 years, 5 months ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 09/18/2020
Status: Active
Attachments: No files
Logo Logo
Loading...