Strategia piramide rovesciata

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
    Posts
  • #207217 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Tempo fa mi sono imbattuto nella descrizione di una strategia che mi ha incuriosito. Provo a descriverla e speriamo che  venga codificata. Sottostante EURUSD TF 15 minuti, in uno scenario rialzista, si entra long a una determinata condizione e SL a 50 Euro, se il gain diventa 50 E si compra un altro contratto e si  alza lo SL a 0 (praticante a paraggio), se l’incremento cresce ancora  es 100 si compra una altro contratto e si sposta ancora lo SL a 50 e cosi ad andare. Quando vi è un rintracciamento le posizioni si chiudono con diverse possibilità , per esempio da un minimo di – 50 , ad un pareggio, ed una vincita. La stessa cosa ma a rovescio per un mercato ribassista.

    Grazie

    #207793 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Prova questa:

    DEFPARAM CumulateOrders = True
    ONCE SL     = 50
    ONCE TP     = SL
    ONCE Uscita = 0
    ONCE myTP   = TP
    Sma200  = average[20,0](close)
    Rialzo  = close > Sma200
    Ribasso = close < Sma200
    L1      = Rsi[14](close) CROSSES OVER  50
    S1      = Rsi[14](close) CROSSES UNDER 50
    CondizioniLong  = L1 AND Not OnMarket
    CondizioniShort = S1 AND Not OnMarket
    IF CondizioniLong  THEN
    BUY 1 Contract at Market
    Prezzo = close
    myTP   = TP
    Uscita = Prezzo - SL * PipSize
    SET STOP Price Uscita
    ENDIF
    IF CondizioniShort THEN
    SELLSHORT 1 Contract at Market
    Prezzo = close
    myTP   = TP
    Uscita = Prezzo + SL * PipSize
    SET STOP Price Uscita
    ENDIF
    Profitto = PositionPrice * PositionPerf / PipSize / PipValue
    IF Profitto >= myTP THEN
    IF LongOnMarket THEN
    BUY 1 Contract at Market
    IF myTP = TP THEN
    Uscita = Prezzo
    ELSE
    Uscita = Prezzo + (TP * PipSize)
    ENDIF
    Prezzo = close
    myTP   = myTP + TP
    SET STOP Price Uscita
    ENDIF
    ELSIF ShortOnMarket THEN
    SELLSHORT 1 Contract at Market
    IF myTP = TP THEN
    Uscita = Prezzo
    Prezzo = close
    ELSE
    Uscita = Prezzo - (TP * PipSize)
    Prezzo = close
    myTP   = myTP + TP
    ENDIF
    SET STOP Price Uscita
    ENDIF
    graphonprice Uscita
    graphonprice Prezzo coloured("Blue")

    non sono sicuro di avere interpretato bene la tua richiesta.

    Piramide-Rovesciata.itf
    #207802 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Grazie, sempre molto gentile, lo proverò.

    #207844 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Sembra che funzioni, ma non da gran risultati. Forse bisogna ottimizzare i valori della mm e del rsi. Tu lo hai provato?

    Grazie

    #208059 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    L’ho provata solo per fare i test di funzionamento. Ho notato che non da buoni risultati.

    Prova ad ottimizzarla.

    #208086 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Che cosa devo ottimizzare?

    #208093 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Più che altro devi inserirci le tue condizioni, si per individuare il trend che per entrare a mercato.

    Per il trend ho utilizzato una media a 20 periodi (in realtà volevo scrivere 200), per l’entrata l’RSI quando passa sopra o sotto il valore 50.

    E’ solo un esempio.

    #208094 quote
    phoentzsphoentzs
    Participant
    Master

    Dovresti leggere il manuale per sapere cosa stai effettivamente facendo qui.

    #208141 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Roberto, io di sicuro non so programmare, ma rileggendo il tuo codice per cercare di capire, ho visto le righe  7 e 8 e  non vedo come lavorano.

    Grazie

    #208146 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Stabiliscono il trend a seconda che il prezzo sia sopra o sotto la media mobile semplice a 20 periodi (anche se volevo scrivere 200).

    #208152 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    OK ma non vedo collegamenti con altre istruzioni.

    #208157 quote
    GraHalGraHal
    Participant
    Master
    #208177 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Solo adesso mi sono reso conto! Scusami è stata una svista.

    Vanno modificate le linee 11 e 12 così:

    CondizioniLong  = L1 AND Not OnMarket AND Rialzo
    CondizioniShort = S1 AND Not OnMarket AND Ribasso
    #208309 quote
    Ciccarelli FrancoCiccarelli Franco
    Participant
    Senior

    Roberto buongiorno,

    Ho provato con la modifica e sembra andare meglio, ma fa tanti trade short di poca entità e non capisco il motivo. Comunque ho apportato delle modifiche e sembra andare meglio, è più regolare,  anche se il gain è più o meno equivalente .

    Ho tolto la media mobile perchè ritengo possa interferire e per gli ingressi ho usato l’indicatore “RSI e regressione lineare” di Nicolas.

    Se hai tempo dagli un occhiata , lo allego.

     

    Grazie

    piramide.itf
    #208557 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    1)  la riga 14 non serve e rischia di fare confusione, oltre a rallentare l’esecuzione. L’indicatore è già stato richiamato con CALL precedentemente e non cambierà più fino alla prossima candela;

    2) quando fai la CALL utilizzi solo i primi due parametri, ma il secondo è la banda bassa e va bene per i LONG, mentre per gli SHORT devi usare la banda ALTA che è il quarto (ed ultimo)  parametro. Il terzo non viene effettivamente utilizzato (è la banda mediana).

    Ho fatto anche qualche piccola modifica nella logica, in modo particolare ho messo lo Stop & Reverse nella prima entrata (sia Long che Short).

    Ti allego il codice modificato:

    // Stop e target: Inserisci qui i tuoi stop di protezione e profit target
    DEFPARAM CumulateOrders = True
    ONCE SL     = v
    ONCE TP     = SL
    ONCE Uscita = 0
    ONCE myTP   = TP
    
    // Condizioni per entrare su posizioni long
    indicator1, indicator2, ignored, indicator4 = CALL "rsi e regressione lineare"
    
    L1 = (indicator1 CROSSES OVER  indicator2)
    S1 = (indicator1 CROSSES UNDER indicator4)
    CondizioniLong  = L1 AND Not LongOnMarket  //OnMarket
    CondizioniShort = S1 AND Not ShortOnMarket //OnMarket
    
    IF CondizioniLong  THEN
    BUY 1 Contract at Market
    Prezzo = close
    myTP   = TP
    Uscita = Prezzo - SL * PipSize
    SET STOP Price Uscita
    ENDIF
    IF CondizioniShort THEN
    SELLSHORT 1 Contract at Market
    Prezzo = close
    myTP   = TP
    Uscita = Prezzo + SL * PipSize
    SET STOP Price Uscita
    ENDIF
    Profitto = PositionPrice * PositionPerf / PipSize / PipValue
    IF Profitto >= (myTP * PipSize) THEN
    IF LongOnMarket THEN
    BUY 1 Contract at Market
    IF myTP = TP THEN
    Uscita = PositionPrice
    Prezzo = TradePrice
    ELSE
    Uscita = TradePrice + (TP * PipSize)
    ENDIF
    Prezzo = close
    myTP   = myTP + TP
    SET STOP Price Uscita
    ENDIF
    ELSIF ShortOnMarket THEN
    SELLSHORT 1 Contract at Market
    IF myTP = TP THEN
    Uscita = PositionPrice
    Prezzo = TradePrice
    ELSE
    Uscita = TradePrice - (TP * PipSize)
    Prezzo = close
    myTP   = myTP + TP
    ENDIF
    SET STOP Price Uscita
    ENDIF
    graphonprice Uscita
    graphonprice Prezzo                    coloured("Blue")
    graphonprice Uscita + (myTP * PipSize) coloured("Green")
    //graph L1 coloured("Green")
    //graph S1 coloured("Red")
    //graph myTP
    GraHal thanked this post
    piramide-v2.itf
Viewing 15 posts - 1 through 15 (of 19 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Strategia piramide rovesciata


ProOrder: Trading Automatico & Backtesting

New Reply
Summary

This topic contains 18 replies,
has 4 voices, and was last updated by Ciccarelli FrancoCiccarelli Franco
3 years, 7 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/11/2023
Status: Active
Attachments: 4 files
ProRealCode ProRealCode
Loading...