Strategyprofit MaxDailyLoss

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #160321 quote
    MauroPro
    Participant
    Veteran

    Buongiorno, vorrei sapere se questo snippet code (vd sotto) che ho trovato nel forum per bloccare le operazioni di un TS in intraday dopo una determinata perdita complessiva può essere migliorato dato che ho notato, dalle prime prove, un inconveniente:

    – non vengono aperte nuove operazioni, ma la posizione attuale che eccede il maxDailyLoss continua chiaramente fino alla chiusura dell’operazione. Si potrebbe aggiungere nel codice qualcosa per cui venga bloccata anche l’attuale posizione al termine della candela in corso o della prossima candela se la perdita è superiore al maxDailyLoss?

    Strategyprofit dovrebbe controllare il profitto alla chiusura della barra precedente (come è scritto nel manuale) per cui forse in qualche modo dovrebbe essere possibile, ma non so come aggiungere questa istruzione allo snippet code. Grazie

    maxDailyLoss = 200
    
    once tradeAllowed = 1
    
    if intradayBarIndex=0 then
    myProfit=strategyProfit
    tradeAllowed=1
    endif
    
    if strategyProfit <= (myProfit-maxDailyLoss) then
    tradeAllowed=0
    endif
    #160340 quote
    robertogozzi
    Moderator
    Master

    STRATEGYPROFIT si aggiorna solo alla chiusura della candela.

    Puoi usare POSITIONPERF per stabilire il valore (in valuta) del profitto/perdita.

    Questo codice te lo restituisce (negativo se in perdita), per cui puoi sommare ImportoProfittoInCorso a STRATEGYPROFIT per fare la verifica in corso (ovviamente varia di barra in barra):

    ImportoProfittoInCorso = positionperf*positionprice/pipsize*pipvalue
    #160346 quote
    MauroPro
    Participant
    Veteran

    Grazie Roberto, ho provato (mettendo solo point al posto di pip, ma mi avevi già detto che sono equivalenti).

    Funziona e si migliora la performance. Raggiunta la massima perdita giornaliera consentita è inutile aspettare la chiusura del trade rischiando di aumentare significativamente la massima perdita stabilita in caso di un ultimo stop loss giornaliero.

    Ecco la formula utilizzata a chi interessa (aggiungere chiaramente nelle condizioni di entrata : tradeAllowed=1)

    maxDailyLoss = 200                                                                       // Max Loss Intraday
    realPosition=positionPerf*positionPrice/pointSize*pointValue
    
    once tradeAllowed = 1
    if intradayBarIndex=0 then
    myProfit=strategyProfit
    tradeAllowed=1
    endif
    
    if (strategyProfit+realPosition) <= (myProfit-maxDailyLoss) then
    tradeAllowed=0
    endif
    robertogozzi thanked this post
    #161129 quote
    MauroPro
    Participant
    Veteran

    Ciao Roberto, la formula sotto riportata blocco l’avvio di nuove operazioni, ma non fa uscire il TS , come dovrebbe, al raggiungimento del maxDailyLoss. Si vede dal Graph linea nera dopo le 18 circa, ora in cui il TS dovrebbe uscire invece non esce (vedi le righe blu del long)

    Puoi controllare la formula sotto riportata? Grazie

    maxDailyLoss = 160                                                                       // Max Loss Intraday
    realPosition=positionPerf*positionPrice/pointSize*pointValue
    once tradeAllowed = 1
    if intradayBarIndex=0 then
    myProfit=strategyProfit
    tradeAllowed=1
    endif
    if (strategyProfit+realPosition) <= (myProfit-maxDailyLoss) then
    tradeAllowed=0
    endif

     

    Grazie

    Image-001-1.jpg Image-001-1.jpg
    #161149 quote
    Nicolas
    Keymaster
    Master

    Non ci sono istruzioni per chiudere le posizioni in questo codice, quindi ha senso! Per chiudere le posizioni latenti è necessario modificare il codice in questo modo:

    maxDailyLoss = 160                                                                       // Max Loss Intraday
    realPosition=positionPerf*positionPrice/pointSize*pointValue
    once tradeAllowed = 1
    if intradayBarIndex=0 then
    myProfit=strategyProfit
    tradeAllowed=1
    endif
    if (strategyProfit+realPosition) <= (myProfit-maxDailyLoss) then
    tradeAllowed=0
    if onmarket then 
     sell at market 
     exitshort at market 
    endif
    endif
    MauroPro thanked this post
    #161152 quote
    MauroPro
    Participant
    Veteran

    Grazie Nicolas, lo provo.

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

Strategyprofit MaxDailyLoss


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
MauroPro @mauropro Participant
Summary

This topic contains 5 replies,
has 3 voices, and was last updated by MauroPro
5 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 02/04/2021
Status: Active
Attachments: 1 files
Logo Logo
Loading...