entrare subito rottura max candela precedente

Viewing 15 posts - 1 through 15 (of 16 total)
  • Author
    Posts
  • #173098 quote
    Steven11
    Participant
    Average

     

    Buonasera Roberto, vorrei autorizzare il sistema ad entrare in Buy quando il prezzo supera di 5 pips  il massimo della candela precedente (subito) senza aspettare la chiusura della candela in formazione è possibile farlo?

    ti invio uno screen con 2 esempi di ingressi in Buy ci sono 2 freccette verdi ed una linea verde a livello degli ingressi inoltre le aree sono evidenziate con un rettangolo ed un triangolo.

    se puoi dirmi la formulazione del codice per ottenere questo, ho provato a farlo ma non funziona. Grazie in anticipo. Ciao

    NASDAQ-4-ore.png NASDAQ-4-ore.png
    #173100 quote
    robertogozzi
    Moderator
    Master

    Basta piazzare un ordine pendente:

    BUY 1 CONTRACT AT high + 5*pipsize STOP

    Questo è un esempio semplicistico, in realtà occorre, in reale (in backtest funziona sempre), verificare che il punto d’entrata sia almeno alla distanza minima richiesta del broker (assumiamo siano 6 punti):

    Distanza = 6
    Entrata  = high + 5*PipSize
    IF (close + Distanza) < Entrata THEN
       BUY 1 CONTRACT AT Entrata STOP
    ENDIF
    #173106 quote
    Steven11
    Participant
    Average

    Roberto in relazione all’ordine pendente di n pips  per autorizzare l’ingresso in Buy del sistema ho inserito nel codice la modifica che hai indicato con la lettera b1 (per motivi che a1 indicava il passo del backtest) , in pratica avevo dato la condizione di entrare se non dopo il superamento del massimo candela precedente 25 pip più in alto ma non la rispetta …..ti posto sia codice sia screen candela che è del 10 maggio 2021 delle ore 5:00.

    //-------------------------------------------------------------------------
    // Codice principale : SsNasdaq 15min
    //-------------------------------------------------------------------------
    
    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    t1 = (OpenDayOfWeek = 1) AND (Time >= 010000) AND (Time <= 210000)
    t2 = (OpenDayOfWeek = 2) AND (Time >= 010000) AND (Time <= 210000)
    t3 = (OpenDayOfWeek = 3) AND (Time >= 010000) AND (Time <= 210000)
    t4 = (OpenDayOfWeek = 4) AND (Time >= 010000) AND (Time <= 210000)
    t5 = (OpenDayOfWeek = 5) AND (Time >= 010000) AND (Time <= 170000)
    
    x1 = (OpenDayOfWeek = 1) AND (Time = 240000)
    x2 = (OpenDayOfWeek = 2) AND (Time = 240000)
    x3 = (OpenDayOfWeek = 3) AND (Time = 240000)
    x4 = (OpenDayOfWeek = 4) AND (Time = 240000)
    x5 = (OpenDayOfWeek = 5) AND (Time = 210000)
     //
    If OnMarket AND (x1 OR x2 OR x3 OR x4 OR x5) THEN
    SELL AT MARKET
    EXITSHORT AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni long
    L1 = t1 OR t2 OR t3 OR t4 OR t5
    L2 = Not OnMarket
    
    ONCE b1 = 25.0 * PipSize
    
    c1 = (high > high[1])
    indicator1 = EndPointAverage[20](close)
    indicator2 = EndPointAverage[200](close)
    c2 = (indicator1 CROSSES OVER indicator2)
    
    IF (c1 OR c2) OR (L1 AND L2) AND high > (high[1] + b1) then
    Buy 1 contract at Market      //entrata a Mercato
    Endif
    //
    Buy 1 contract at (high[1] + b1) STOP //entrata con ordine pendente STOP
    
    
    // Stop e target
    SET STOP LOSS 665
    SET TARGET PPROFIT 350 //395
    
    //
    //trailing stop function
    //************************************************************************
    //     trailing stop function
    trailingstart = 30   //10   trailing will start @trailinstart points profit
    trailingstep  = 30    //5    trailing step to move the "stoploss"
    //
    //reset the stoploss value
    IF NOT ONMARKET THEN
    newSL=0
    ENDIF
    //manage long positions
    IF LONGONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND HIGH-tradeprice(1)>=trailingstart*pipsize THEN                 //close --> HIGH
    newSL = tradeprice(1)+trailingstep*pipsize
    //  new coding
    IF newSL > close THEN                                                  //if current closing price is < new SL then exit IMMEDIATELY!
    SELL AT MARKET
    ENDIF
    //  end new coding
    ENDIF
    //next moves
    IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
    newSL = newSL+trailingstep*pipsize
    //  new coding
    IF newSL > close THEN                                                  //if current closing price is < new SL then exit IMMEDIATELY!
    SELL AT MARKET
    ENDIF
    //  end new coding
    ENDIF
    ENDIF
    //manage short positions
    IF SHORTONMARKET THEN
    //first move (breakeven)
    IF newSL=0 AND tradeprice(1)-LOW>=trailingstart*pipsize THEN                 //close --> LOW
    newSL = tradeprice(1)-trailingstep*pipsize
    //  new coding
    IF newSL < close THEN                                                     //if current closing price is > new SL then exit IMMEDIATELY!
    EXITSHORT AT newSL LIMIT
    
    ENDIF
    //  end new coding
    ENDIF
    //next moves
    IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
    newSL = newSL-trailingstep*pipsize
    //  new coding
    IF newSL < close THEN                                                    //if current closing price is > new SL then exit IMMEDIATELY!
    EXITSHORT AT newSL LIMIT
    ENDIF
    //  end new coding
    ENDIF
    ENDIF
    //stop order to exit the positions
    IF newSL>0 THEN
    SELL      AT newSL STOP
    EXITSHORT AT newSL STOP
    ENDIF
    //***************************************************************
    #173107 quote
    Steven11
    Participant
    Average

    ti posto anche screen candela 4 ore, mi ero dimenticato scusa.

    NASDAQ-4-ore-1.png NASDAQ-4-ore-1.png
    #173110 quote
    Steven11
    Participant
    Average

    l’ingresso sarebbe dovuto avvenire dove ho messo la freccetta verde ti mando screen ….. a non guardare la definizione in grigio del codice che ti ho postato prima , il backtest lo ho effettuato su timeframe H4.

    NASDAQ-4-ore-2.png NASDAQ-4-ore-2.png
    #173113 quote
    robertogozzi
    Moderator
    Master

    Per forza, se acquisti ad prezzo più basso devi mettere LIMIT, non STOP.

    #173114 quote
    Steven11
    Participant
    Average

    no Roberto quell’ingresso in Buy non sarebbe dovuto proprio entrare , ti spiego io sarei dovuto entrare 25 pips sopra il massimo della piccola candela verde precedente , quindi essendo il massimo della candela prima 13758, l’ingresso sarebbe dovuto avvenire a 13883 e  NON  a 13758 come è successo…..perchè?

    #173115 quote
    Steven11
    Participant
    Average

    ti posto screen

    NASDAQ-4-ore-3.png NASDAQ-4-ore-3.png
    #173117 quote
    Steven11
    Participant
    Average

    in pratica vorrei entrare in Buy  SOLO dopo i 25 pips sopra il massimo della candela precedente. e quell’ingresso non doveva essere fatto perchè non erano stati superati i 25 sopra il massimo della candela precedente. il sistema opera SOLO in Buy.

    #173119 quote
    Steven11
    Participant
    Average

    ti posto un altro screen, intendo dire che entri 25 pips sopra il massimo della spike precedente.

    NASDAQ-4-ore-4.png NASDAQ-4-ore-4.png
    #173121 quote
    Steven11
    Participant
    Average

    intendo dire 25 pips sopra massimo della spike precedente.

    #173123 quote
    robertogozzi
    Moderator
    Master

    Se piazzi un ordine sbagliato entra a mercato.

    #173163 quote
    Steven11
    Participant
    Average

    Roberto scrivendo open>high [1] + b1  entra  dopo,  dando la definizione ONCE b1 = 13.0*PipSize entra più in alto dopo il max della candela precedente.

    #173172 quote
    robertogozzi
    Moderator
    Master

    Scusa, non avevo visto bene le righe di entrata. Tu hai messo due entrate:

    • la prima AT MARKET  alla riga 36; questa riga eliminala (o mettici o commentala)
    • la seconda pendente STOP alla riga 39; questa mettila al posto della 36 (oppure sotto se l’hai lasciata come commento).

    in questo modo esegue l’entrata SOLO se le condizioni sono verificate e al prezzo desiderato. Con il tuo codice piazzava SEMPRE un ordine pendente, in quanto NON subordinato alla verifica delle condizioni, oppure entrava A MERCATO quando le condizioni erano verificate.

    #173174 quote
    robertogozzi
    Moderator
    Master

    Alla riga 43 aggiungi una P all’inizio di LOSS, come con PPROFIT. Con Nasdaq, DAX ed indici in generale, può non fare differenza, ma in altri casi si.

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

entrare subito rottura max candela precedente


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Steven11 @steven11 Participant
Summary

This topic contains 15 replies,
has 2 voices, and was last updated by Steven11
4 years, 8 months ago.

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