difficoltà codice progressione posizioni

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #13475 quote
    nanniarc
    Participant
    Average

    Buongiorno a tutti, sono nuovo ed ho subito da sottoporre un problema:
    nel codice che segue fatto girare su PRT in backtest non risponde ai comandi che intendo io.
    Semplicemente vorrei che se l’ultima posizione ha perso più dello 0,5 mi aggiungesse un contratto
    e che se la strategia nel suo complesso sta perdendo più dell’ 1% all’ultima posizione mi raddoppiasse i contratti.
    Qualcuno sa come uscirne?
    Grazie 1000

    defparam cumulateorders = true
    ONCE OrderSize = 1
    ONCE ExitIndex = -2
    ExitIndex=BarIndex
    
    Mie condizioni
    
    if c1 then
    BUY 1 contracts AT MARKET
    ExitIndex=BarIndex
    
    
    endif
    
    if c2 then
    SELLSHORT 1 contracts AT MARKET
    
    ExitIndex=BarIndex
    endif
    IF Barindex=ExitIndex+1 THEN
    ExitIndex=0
    REM Se l’ultima posizione chiusa ha perso + dello 0,5% aggiungere un contratto
    IF positionperf < 0.5 THEN
    OrderSize = OrderSize +1
    REM Se la strategia sta perdendo più dell'1%, allora raddoppiamo la grandezza della posizione
    ELSIF positionperf(1) > 0 THEN
    OrderSize = 1
    elsif strategyprofit(1) < 1 then
    ordersize = ordersize *2
    REM Se la strategia guadagna,allora ritorniamo ad una posizione di grandezza 1
    ENDIF
    ENDIF
    #13487 quote
    Nicolas
    Keymaster
    Master
    È necessario sostituire le linee 9 e 16 con la PositionSize si è precedentemente calcolato per lanciare correttamente la quantità desiderata di contratti sul mercato:
    //line 9
    BUY OrderSize contracts AT MARKET
    //line 16
    SELLSHORT OrderSize contracts AT MARKET 

    #13502 quote
    nanniarc
    Participant
    Average
    grazie mille Nicolas per la tempestività; il codice definitivo è quello che segue tuttavia quando una posizione chiude in perdita, quella successiva rimane sempre con la stessa quantità. Non so proprio cosa fare…
    defparam cumulateorders = true
    ONCE OrderSize = 1
    ONCE ExitIndex = -2
    
    ExitIndex=BarIndex
    
    mie condizioni
    
    if c1 then
    BUY ordersize contracts AT MARKET
    ExitIndex=BarIndex
    endif
    
    if c2 then
    SELLSHORT ordersize contracts AT MARKET
    
    ExitIndex=BarIndex
    endif
    IF Barindex=ExitIndex+1 THEN
    ExitIndex=0
    
    IF positionperf(1) < 0 THEN
    OrderSize = OrderSize +1
    
    ELSIF positionperf(1) > 0 THEN
    OrderSize = 1
    
    ENDIF
    ENDIF
    #15337 quote
    nanniarc
    Participant
    Average
    buongiorno a tutti, non ho più avuto nessun commento nè suggerimenti per risolvere il mio problema… qualcuno saprebbe come aiutarmi per favore? grazie
    #15434 quote
    ALE
    Moderator
    Master
    Ciao  Nanniarc a breve Nicolas ti darà la risposta. Grazie Ale
    #15437 quote
    Nicolas
    Keymaster
    Master
    Il codice non è completa nel tuo messaggio. Piuttosto difficile da aiuterà molto. Cosa succederà quando la rappresentazione grafica si positionperf? Si dovrebbe essere in grado di vedere ciò che è l’ultimo positionperf è inferiore a 0 o meno. Inoltre, positionperf bisogno di almeno 1 candelabro per aggiornare il suo calcolo. Quindi se 2 commerci si è verificato nello stesso bar, ci dovrebbe essere un problema.
    GRAPH positionperf(1)
    #151273 quote
    gianpiero75
    Participant
    Average
    ciao ragazzi avete risolto per caso? perhè io pure ho lo stesso problema, non riesco porprio a trovare la quadra
    #151285 quote
    robertogozzi
    Moderator
    Master
    Puoi spiegare esattamente qual’è il problema che stai avendo?
    #151298 quote
    gianpiero75
    Participant
    Average
    certo grazie…vorrei semplicemente aumentare la posione di 0.1 dopo ogni trade in gain. e fermare l’incremento quando la size raggiunge un certo valore e farla ricominciare da capo (ma questo non ho nemmeno provato a scriverlo) premetto che inizialmente avevo copiato il codice che c’è nel manuale di pro real time alla lettera, che poi è il codice postato dall’utente nel suo post, ma non funziona. cmq nel mio codice il problema è che esegue l’istruzione sopo un trade vincente, ma poi non incrementa più e si ferma a 0.4, perchè ovviamente il codice viene riletto da capo e rilegge lo 0.3 iniziale. sono molto neofita ovviamente.
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    //z_normal_tool
    //sistema solo long
    // Normal_z = normalizzazione della differenza di periodo 1 di una media modbile triangolare
    //codice dell'indicatore
    //(Tma [1] - Tma [0])/ Dev.standard
    //parametri del sistema Tma[20] Dev Std [100]
    
    // Condizioni per entrare su posizioni long
    indicator1 = CALL "Normal z"[20, 100]
    //a=20
    //b=100
    
    c1 = (indicator1 CROSSES OVER 0)
    c2 = (indicator1 CROSSES UNDER 0)
    
    //mylot default
    mylot=0.3
    
    if positionperf(1)>0 then
    mylot=mylot+0.1
    endif
    
    IF c1 THEN
    BUY mylot CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    IF c2 THEN
    SELL AT MARKET
    ENDIF
    
Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

difficoltà codice progressione posizioni


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
nanniarc @nanniarc Participant
Summary

This topic contains 8 replies,
has 5 voices, and was last updated by gianpiero75
5 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 09/21/2016
Status: Active
Attachments: No files
Logo Logo
Loading...