Trailing stop con stop prefissato

Viewing 13 posts - 1 through 13 (of 13 total)
  • Author
    Posts
  • #217579 quote
    EdisoneEdisone
    Participant
    Average

    Salve,

    Time frame 3 ore. Condizione d’uscita: quando High incrocia al rialzo un prezzo pre impostato es. 15000. Una volta verificata la condizione è possibile impostare un Trailing stop con stop prefissato a 15000 (senza attendere la chiusura della candela) ?

    #217595 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Si, scrivi (Long):

    Set Stop Price 15000
    #217599 quote
    EdisoneEdisone
    Participant
    Average

    Scusami gentilmente potresti modificarmi il codice (che fa riferimento ad un mio indicatore) con l’istruzione “Set Stop Price DSPIU1″ ?

    e se possibile un’alternativa conuscita  al tocco del prezzo DSPIU1 senza aspettare la chiusura della candela.

    allego il codice

    Grazie mille

    DEFPARAM CumulateOrders = TRUE
    
    // Condizioni per entrare su posizioni long
    DS1M, ignored, DS2M, ignored, ignored, ignored, ignored, ignored, ignored = CALL "DS-NQ"[0, 0, 0, 255, 105, 89, 205, 0, 0, 0, 0, 0]
    DS1 = (low CROSSES UNDER DS1M)
    DS2 = (low CROSSES UNDER DS2M)
    
    IF DS2 THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    IF DS1 AND NOT DS2 AND NOT ONMARKET  THEN
    BUY 1 SHARES AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    ignored, DSPIU1, ignored, ignored, ignored, ignored, ignored, ignored, ignored = CALL "DS-NQ"[0, 0, 0, 255, 105, 89, 205, 0, 0, 0, 0, 0]
    c2 = (high CROSSES OVER DSPIU1)
    
    IF LONGONMARKET and c2 THEN
    SELL AT MARKET
    ENDIF
    
    #217615 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Eccolo:

    DEFPARAM CumulateOrders = TRUE
    
    // Condizioni per entrare su posizioni long
    DS1M, ignored, DS2M, ignored, ignored, ignored, ignored, ignored, ignored = CALL "DS-NQ"[0, 0, 0, 255, 105, 89, 205, 0, 0, 0, 0, 0]
    DS1 = (low CROSSES UNDER DS1M)
    DS2 = (low CROSSES UNDER DS2M)
    
    // Condizioni per uscire da posizioni long
    ignored, DSPIU1, ignored, ignored, ignored, ignored, ignored, ignored, ignored = CALL "DS-NQ"[0, 0, 0, 255, 105, 89, 205, 0, 0, 0, 0, 0]
    c2 = (high CROSSES OVER DSPIU1)
    
    // entrate Long
    IF DS2 THEN
       BUY 1 SHARES AT MARKET
       Set Stop Price DSPIU1
    ENDIF
    
    IF DS1 AND NOT DS2 AND NOT ONMARKET  THEN
       BUY 1 SHARES AT MARKET
       Set Stop Price DSPIU1
    ENDIF
    
    // uscita Long
    IF LONGONMARKET and c2 THEN
       SELL AT MARKET
    ENDIF
    #217617 quote
    EdisoneEdisone
    Participant
    Average

    grazie  ma non funziona, al verificarsi della condizone entra e subito chiude l’operazione…

    #217620 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Il livello devi deciderlo tu o l’indicatore (io non posso saperlo), dove c’è STOP PRICE prezzo, sostituisci prezzo con il valore desiderato, o la variabile desiderata. Io ho messo DSPIU1 come mi hai indicato tu.

    #217629 quote
    EdisoneEdisone
    Participant
    Average

    Si si , fatto ma il problema è  che non c’è trade, l’operazione viene aperta e chiusa immediatamente. Supponiamo che la condizione di apertura sia quando il prezzo tocca 14000 e la chiusura a 15000, a 14000 compra 1 contratto e lo vende immediatamente sempre a 14000.

    #217635 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Certo, se la condizione di apertura è quando tocca 14000, entra a 14000, ma se metti lo stop a 14000 esce immediatamente.
    Lo stop deve essere < prezzo d’entrata (caso Long).

    #217653 quote
    EdisoneEdisone
    Participant
    Average

    Entrare a 14000 ed uscire quando il prezzo tocca i 15000 senza aspettare la chisura della candela è possibile ?

    #217716 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Si, con due ordini pendenti (uno per l’entrata e l’altro per l’uscita, quello per l’uscita ripetuto ad ogni candela quando è a mercato):

    IF not OnMarket AND close < 15000 THEN
       IF close < 14000 THEN
          BUY 1 Contract AT 14000 STOP
          SELL AT 15000 LIMIT
       ELSIF close > 14000 THEN
          BUY 1 Contract AT 14000 LIMIT
          SELL AT 15000 LIMIT
       ENDIF
    ENDIF
    IF OnMarket THEN
       SELL AT 15000 LIMIT
    ENDIF
    Edisone thanked this post
    #217733 quote
    EdisoneEdisone
    Participant
    Average

    Perfetto Grazie funziona.

    Posso chiederti gentilmente se mi sistemi il codice, non riesco ad impostare correttamente le condizione di entrata/uscita:

    i livelli prezzo di entrata sono 2, chiamati DS1M e DS2M nota che DS2M è sempre un valore più basso di DS1M

    1 condizione di entrata: buy all’incrocio del livello DS2M alla chiusura della candela

    2 condiziona di entrata : buy all’incrocio del livello DS1M solo se il prezzo non ha toccato DS2M, sempre alla chiusura della candela

    3 uscita come sopra cioè quando il prezzo tocca DSPIU1 senza aspettare la chisura della candela

    4 uscita quando il prezzo tocca MAXX senza aspettare la chisura della candela

    GRAZIE

     

     

    DEFPARAM CumulateOrders = TRUE //False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    DS1M, DSPIU1, DS2M, ignored, ignored, MAXX, ignored, ignored, ignored = CALL "MIO INDICATORE"[0, 0, 0, 255, 105, 89, 205, 0, 0, 0, 0, 0]
    DS1 = (low CROSSES UNDER DS1M)
    DS2 = (low CROSSES UNDER DS2M)
    
    IF DS2 THEN // Buy sempre se tocca prezzo DS2M
    BUY 1 SHARES AT MARKET
    ENDIF
    
    IF not OnMarket AND close < DSPIU1 THEN // Buy solo se il prezzo non ha toccato DS2M
     IF DS1 THEN
    BUY 1 Contract AT DS1M STOP
    SELL AT DSPIU1 LIMIT
    ELSIF close > DS1M THEN
    BUY 1 Contract AT DS1M LIMIT
    SELL AT DSPIU1 LIMIT
    ENDIF
    ENDIF
    
    c4 = (high CROSSES OVER MAXX) // 2° condzione Sell se il prezzo tocca MAXX
    
    IF OnMarket THEN
    SELL AT DSPIU1 LIMIT
    ENDIF
    #217734 quote
    EdisoneEdisone
    Participant
    Average
    Scusami ho modificato la 1 condizione, Sorry

    Perfetto Grazie funziona.

    Posso chiederti gentilmente se mi sistemi il codice, non riesco ad impostare correttamente le condizione di entrata/uscita:

    i livelli prezzo di entrata sono 2, chiamati DS1M e DS2M nota che DS2M è sempre un valore più basso di DS1M

    1 condizione di entrata: buy all’incrocio del livello DS2M quando il prezzo tocca DS2M

    2 condiziona di entrata : buy all’incrocio del livello DS1M solo se il prezzo non ha toccato DS2M, sempre alla chiusura della candela

    3 uscita come sopra cioè quando il prezzo tocca DSPIU1 senza aspettare la chisura della candela

    4 uscita quando il prezzo tocca MAXX senza aspettare la chisura della candela

    GRAZIE

    #218951 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    che cos’è DS1?

Viewing 13 posts - 1 through 13 (of 13 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

Trailing stop con stop prefissato


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Edisone @edisone Participant
Summary

This topic contains 12 replies,
has 2 voices, and was last updated by robertogozzirobertogozzi
3 years, 1 month ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 07/12/2023
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...