Enregistrer une variable calculée pour la réutiliser

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #228912 quote
    Bodaris
    Participant
    New

    Bonjour,

    Mon code ne marche pas comme je le souhaite. Il n’aime pas les faux signaux apparemment. J’ai fait un screen explicatif de mon problème.

    J’ai essayé de mettre la condition comme quoi je n’étais pas en position, ça ne marche pas. J’ai essayé une ligne : $tab[1] = diff, ça ne marche pas non plus.

    Le code utilisé est le suivant :

    // Définition des paramètres du code
    DEFPARAM CumulateOrders = false // Cumul des positions désactivé
    
    mymm7=Average[7](close)
    mymm20=Average[20](close) 
    
    if not LONGONMARKET then
    pos=1
    ELSE
     pos =0
    ENDIF 
    
    if pos=1 and mymm7 crosses under mymm20 THEN
    plusbas = DLow(0)
    ENDIF
    if mymm7<mymm20 and Low[0] < plusbas THEN
    plusbas = low[0]
    ENDIF
    
    
    // Conditions pour ouvrir une position acheteuse
    
    c1 = mymm7 CROSSES OVER mymm20
    IF c1 THEN
    diff = close - plusbas
    monatr=AverageTrueRange[14](close)
    vol= 250/diff
    set stop loss 1*(diff)//+1*(monatr)
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    if POSITIONPERF >0 then
    sell 1 contract AT MARKET 
    ENDIF 
    
    // Stops et objectifs
    //SET TARGET PROFIT 0.5*(diff)

    merci d’avance pour vos réponses

    Capture-decran-26.png Capture-decran-26.png
    #228916 quote
    Iván González
    Moderator
    Master

    Bonjour, Vous avez le problème principal à la ligne 24 de votre code puisque vous ne précisez pas qu'il est hors marché. De cette façon, chaque fois que la condition C1 est remplie, le diff sera mis à jour. Voici le code qui fera ce que vous recherchez :

    DEFPARAM CumulateOrders = false // Cumul des positions désactivé
     
    mymm7=Average[7](close)
    mymm20=Average[20](close)
     
    if not LONGONMARKET then
    if mymm7 crosses under mymm20 THEN
    plusbas = DLow(0)
    elsif not longonmarket and mymm7 < mymm20 and Low[0] < plusbas THEN
    plusbas = low[0]
    else
    plusbas = plusbas
    endif
    endif
     
    // Conditions pour ouvrir une position acheteuse
     
    c1 = mymm7 CROSSES OVER mymm20
    
    IF not longonmarket and c1 THEN
    diff = close - plusbas
    set stop loss 1*(diff)//+1*(monatr)
    BUY 1 CONTRACT AT MARKET
    ENDIF
     
    if POSITIONPERF >0 then
    sell 1 contract AT MARKET
    ENDIF
    
    graph diff
    Bodaris thanked this post
    #228928 quote
    Bodaris
    Participant
    New

    Super ! J’ai compris mon erreur ^_^. Un grand MERCI pour votre aide !

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

Enregistrer une variable calculée pour la réutiliser


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
Bodaris @bodaris Participant
Summary

This topic contains 2 replies,
has 2 voices, and was last updated by Bodaris
2 years ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 02/28/2024
Status: Active
Attachments: 1 files
Logo Logo
Loading...