Trasformazione da Stop% a Stop in punti

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #84756 quote
    Alessio.Cornuti
    Participant
    Average

    Buonasera, vorrei se possibile un aiuto con questo codice.

    L’intento sarebbe quello di trasformare lo stop espresso in % nel suo valore equivalente in punti per poterlo inserire in una formula di money managment. Il problema è che non funzione nella versione short. Se lo si lascia solo per le posizioni long funziona e i valori sono corretti, mentre per la parte short il calcolo non restituisce alcun valore.

    Vi allego un codice di esempio che ho provato sul Fib a 15 min

    DEFPARAM CUMULATEORDERS=FALSE
    
    MM10=Average[10](close)
    MM100=Average[100](close)
    C1=(MM10 CROSSES OVER MM100)
    C2=(MM10 CROSSES UNDER MM100)
    
    
    
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket AND C1 THEN
    BUY SIZE CONTRACTS AT MARKET
    VALSTOP=(TRADEPRICE/100)*1
    
    //Money Management
    Capital = 10000
    equity = Capital + StrategyProfit
    Risk = 0.05
    maxrisk = (equity*Risk)
    Size = (maxrisk/(VALSTOP*POINTVALUE))
    SET STOP pLOSS VALSTOP
    ENDIF
    
    // Condizioni per uscire da posizioni long
    If LongOnMarket AND C2 THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket AND C2 THEN
    SELLSHORT SIZE CONTRACTS AT MARKET
    VALSTOP=(TRADEPRICE/100)*1
    
    //Money Management
    Capital = 10000
    equity = Capital + StrategyProfit
    Risk = 0.05
    maxrisk = (equity*Risk)
    Size = (maxrisk/(VALSTOP*POINTVALUE))
    SET STOP pLOSS VALSTOP
    ENDIF
    
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket AND C1 THEN
    EXITSHORT AT MARKET
    ENDIF
    GRAPH VALSTOP
    
    #84782 quote
    robertogozzi
    Moderator
    Master

    Su quale strumento e timeframe l’hai provato?

    #84783 quote
    Alessio.Cornuti
    Participant
    Average

    Ciao, su ita40 cash di IG. Time frame 15 min

    #84811 quote
    robertogozzi
    Moderator
    Master

    Tra la riga 11 e la 12 e tra la 30 e la 31 inserisci questa riga per fare in modo che SIZE sia almeno 1 (altrimenti è zero, arrotondato, come da foto):

    Size = min(1,Size)

    Alle righe 13 e 32, perché alla fine aggiungi *1, a cosa serve moltiplicare per uno?

    Alle righe 13 e 32 c i sono due cose dubbie:

    1. ProOrder ha bisogno di una barra per potere aggiornare TRADEPRICE (e tutto quel che concerne un’operazione), per cui il prezzo che ti restituisce subito dopo l’entrata a mercato è il prezzo dell’operazione precedente; se vuoi il prezzo corrente, essendo un’entrata a mercato, usa CLOSE al posto di Tradeprice, non sarà preciso al 100% perché quando entra a mercato (almeno in reale) c’è un minimo di slippage o gap e una differenza di qualche microsecondo che può influire sul reale prezzo di entrata
    2. dividi il prezzo di cui sopra per 100, a che proposito, per avere uno SL che sia l’1% del prezzo?

    Metti a posto queste cose e poi vedi come va.

    x-4.jpg x-4.jpg
    #84840 quote
    Alessio.Cornuti
    Participant
    Average

    Grazie per la risposta, il *1 è il valore di stop in percentuale che voglio ottenere ed è una variabile.

    Ho provato ieri sera inserendo CLOSE[0] come hai suggerito tu adesso e pur non essendo precisissimo funziona.

    Grazie

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

Trasformazione da Stop% a Stop in punti


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Alessio.Cornuti
7 years, 3 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/13/2018
Status: Active
Attachments: 1 files
Logo Logo
Loading...