Utilizzo di “tradeprice” e “Positionprice”

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #214386 quote
    Ernesto68
    Participant
    New

    Buongiorno,

    sto cercando di creare una strategia (una sorta di martingala) che acquista man mano che il prezzo scende per poi chiudere raggiunto un certo profitto.

    La strategia deve acquistare ogni volta che il prezzo scende di “x” rispetto al prezzo di ingrezzo (per il quale ho usato tradeprice) della precedente operazione. La strategia deve chiudere tutte le posizioni quando vi è una chiusura superiore di y punti/pips rispetto al prezzo medio di carico (per il quale ho usato PositionPrice).

    Lanciando la strategia, di cui riporto stralcio, non fa nessuna operazione. Ciò che è strano è che la stessa strategia, con le opportune modifiche nelle formule, funziona in caso di short.

    Potete darmi una mano?

    Grazie

    //Condizioni di entrata
    miasize = 0.1*i+1
    IF i = 0 then
    c1 = close[1]-close > 0.7
    Elsif i<>0 then
    c1 = tradeprice-close > 1
    endif

    IF c1 AND timeEnterBefore AND timeEnterAfter AND NOT daysForbiddenEntry THEN
    Buy miasize contracts at market
    i = i+1
    endif

    //Condizioni di uscita
    mioprofit = 0.7
    c3 = close – PositionPrice > mioprofit
    IF c3 then
    Sell AT Market
    i = 0

    #214410 quote
    robertogozzi
    Moderator
    Master

    Perché quando non è a mercato PositionPrice è 0, quindi c3 è vera ed esegue SELL subito dopo BUY, quindi l’entrata viene annullata.

    #214417 quote
    Ernesto68
    Participant
    New

    Come andrebbe modificata?

    Grazie

    #214423 quote
    robertogozzi
    Moderator
    Master

    Prova così. Ma non ho idea di cosa sia 0.7, non possono essere pips, non è accettabile un valore così basso, cosa intendi con quel numero?

    #214431 quote
    Ernesto68
    Participant
    New

    Non ho capito come devo provare.

    Comunque sono pips, avevo tolto gli zeri per semplificare, quindi 0.7 è 0.0007;  1 è 0.001

    #214432 quote
    robertogozzi
    Moderator
    Master

    Scusami, mi è venuto prova, ma volevo scrivere provo.

    Su quale strumento l’utulizzi?

    Ad ogni modo occorre usare PIPSIZE per le conversioni, non moltiplicatori propri che non sono portabili tra uno strumento e l’altro.

    Te lo farò appena possibile.

    #214433 quote
    Ernesto68
    Participant
    New
    Lo sto realizzando su eur/usd con l’intenzione di estenderlo ad altre coppie con le opportune ritarature.

    Più tardi allego il TS short che funziona, a meno della prima operazione in cui mette size strane

    #214435 quote
    Ernesto68
    Participant
    New
    Ho allegato il TS.
    #214474 quote
    robertogozzi
    Moderator
    Master
    Il valore della prima entrata “sembra” strano, in realtà è corretto perché ProOrder carica 2000 barre precedenti alle unità che hai sul grafico. Se hai 1000 unità, ne carica 2000, quindi inizia a fare i calcoli molto prima di quello che pensi. Basta che metti, tra le righe iniziali (come prima o seconda riga è ininfluente), questa:
    DEFPARAM PreloadBars    = 0
    in modo da NON fargli PRE-caricare le 2000 barre (se vuoi puoi arrivare ad un massimo di 10000 barre precaricate). Inoltre ho usato * PIPSIZE per fare la conversione da pip a prezzo (o differenze tra prezzi), mentre per la conversione opposta, da prezzo (o differenze tra prezzi) a pip occorre dividere, cioè / PIPSIZE. Ho anche verificato che non esca se non lo è ancora. Ecco il codice funzionante, sia Long che Short:
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = true // Posizioni cumulate attivate
    DEFPARAM PreloadBars    = 0
    // Impedisce al sistema di creare nuovi ordini per entrare a mercato o aumentare la taglia della posizione prima dell'orario specificato
    noEntryBeforeTime = 010000
    timeEnterBefore = time >= noEntryBeforeTime
    
    // Impedisce al sistema di piazzare nuovi ordini per entrare a mercato o aumentare la taglia della posizione dopo l'orario indicato
    noEntryAfterTime = 220000
    timeEnterAfter = time < noEntryAfterTime
    
    // Impedisce al sistema di tradare in giorni specifici della settimana
    daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0  OR OpenDayOfWeek = 5 OR OpenDayOfWeek = 1
    
    
    //Condizioni di entrata SHORT
    miasize = 0.02*i+1
    IF i = 0 then
    c1 = close - close[1] > 5 * PipSize //0.0005
    Elsif i <>0 then
    c1 = close - tradeprice > 9 * PipSize//0.0009
    endif
    
    IF c1 AND timeEnterBefore AND timeEnterAfter AND NOT daysForbiddenEntry and ((not OnMarket) OR ShortOnMarket) THEN
    Sellshort miasize contracts at market
    i = i+1
    endif
    
    //Condizioni di uscita
    mioprofit = 6 * PipSize //0.0006
    c3 = PositionPrice-close > mioprofit
    IF c3 and ShortOnMarket then
    Exitshort AT Market
    i = 0
    endif
    
    
    
    // Stop e target
    SET STOP $LOSS 0
    SET TARGET pPROFIT 0
    
    //Condizioni di entrata LONG
    miasize = 0.1*i+1
    IF i = 0 then
    c1 = close[1]-close > 7 * PipSize //0.0007
    Elsif i<>0 then
    c1 = tradeprice-close > 10 * PipSize //0.001
    endif
    
    IF c1 AND timeEnterBefore AND timeEnterAfter AND NOT daysForbiddenEntry and ((not OnMarket) OR LongOnMarket) THEN
    Buy miasize contracts at market
    i = i+1
    endif
    
    //Condizioni di uscita
    mioprofit = 7 * PipSize //0.0007
    c3 = close - PositionPrice > mioprofit
    IF c3 and LongOnmarket then
    Sell AT Market
    i = 0
    endif
    //
    //graph miasize
    //graph i
    #214476 quote
    Ernesto68
    Participant
    New
    Grazie mille. Davvero non so come ringraziarti, mi ero impantanato. Ora però temo per te che ti chiederò supporto spesso. Intanto spero ora di essere in grado di creare il TS opposto, ossia incrementare lo short man mano che il prezzo scende ed incrementare il long quando il prezzo sale. Ancora grazie
    #214485 quote
    robertogozzi
    Moderator
    Master
    Bene, se si tratta di questioni diverse da queste (anche di poco), è preferibile che tu apra un nuovo argomento con un titolo diverso. Grazie 🙂
Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.

Utilizzo di “tradeprice” e “Positionprice”


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Ernesto68 @ernesto68 Participant
Summary

This topic contains 10 replies,
has 2 voices, and was last updated by robertogozzi
2 years, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 05/09/2023
Status: Active
Attachments: 1 files
Logo Logo
Loading...