Breakout dei primi 10 minuti

Viewing 15 posts - 1 through 15 (of 33 total)
  • Author
    Posts
  • #46057 quote
    R05
    Participant
    Veteran

    Salve a tutti, vi chiedo, gentilmente, aiuto, per il trading system seguente: in pratica si entra al breakout della candela dei primi 10 minuti sul massimo o sul minimo se il supertrend è concorde con la direzione; sono riuscito a mettere il codice però avrei bisogno di:

    1. il sistema entra in posizione solo alle 8:10 ; il problema è che quando il breakout concorde col supertrend avviene dopo tale orario il sistema non interviene
    2. dovrei impostare uno stop and reverse nel caso mi vada in stop settato quando il supertrend cambia colore: per meglio spiegarmi lo stop iniziale è quando il supertrend cambia colore e nello stesso tempo in cui prende lo stop mi entra con un’operazione contraria

    Vi ringrazio

     

    Defparam cumulateorders = true
    Defparam flatafter = 093000
    
    n = 1
    
    if intradaybarindex=0 then
    traded = 0
    endif
    
    IF Time = 081000 THEN
    haut = highest[1](high)
    bas = lowest[1](low)
    
    ENDIF
    indicator1 = SuperTrend[3,10]
    c1 = (close > indicator1)
    c2 = (close < indicator1)
    c3 = (close crosses over indicator1)
    c4 = (close crosses under indicator1)
    if Time > 080000 AND Time <= 093000 THEN
    
    
    
    if traded=0 then
    
    // condizioni per entrare long
    IF not longonmarket  THEN
    if c1 then
    buy n share at haut stop
    traded=1
    ENDIF
     
    if LongOnMarket and c3 then
    sell at market
    endif
    
    // condizioni per entrare short
    IF not shortonmarket THEN
    if c2 then
    sellshort n share at bas stop
    traded=1
    ENDIF
     
    if shortOnMarket and c4 then
    exitshort at market
    endif
    
    ENDIF
    
    set target pprofit 9
    endif
    endif
    endif
    
    #46208 quote
    R05
    Participant
    Veteran

    Buongiorno a tutti, rivedendo meglio la strategia che ho postato sopra, avendo impostato un solo ordine al giorno, lo stop loss quando il supertrend cambia colore non me lo prende ma la chiusura avviene sempre alle 9:30 orario in cui il sistema si interrompe, oltre al fatto che apre la posizione solo alla candela delle 8:10 se si verifica il breakout (se il breakout si verifica alle 8:40 non mi apre nessuna posizione).

    Il fatto è che se tolgo la condizione di fare un solo ordine al giorno, mi apre più trade al giorno ogni volta che la condizione di breakout si verifica.

    Inoltre, quando prende lo stop, aprire una posizione contraria per cercare di recuperare non me la farebbe fare, dato che mi deve fare un solo ordine al giorno.

    Mi aiutereste a trovare una soluzione?

    #46232 quote
    R05
    Participant
    Veteran

    Ho modificato la strategia nel modo seguente, e sono riuscito a risolvere il problema dell’apertura nel senso che adesso mi apre la posizione anche dopo le 8:10 e solo una e anche la chiusura della stessa quando il supertrend cambia di colore.

    Solo che ora, non so perchè, ma in alcuni casi la prima operazione che soddisfa le condizioni non me la apre ma mi apre il trade quando si ripresentano le condizioni la seconda volta.

    Nell’esempio allegato devrebbe aprire il trade alle 8:10 dove c’è il cursore ma invece la apre successivamente e questo capita più di una volta.

    Quale potrebbe essere, gentilmente, il problema?

    DEFPARAM FLATAFTER=215500 // replace closetime condition
    
    BegTime=081000
    EndTime=095500
    
    MyContracts=1
    
    indicator1 = SuperTrend[3,10]
    c1 = (close > indicator1)
    c2 = (close < indicator1)
    c3 = (close crosses over indicator1)
    c4 = (close crosses under indicator1)
    
    SkipDay=dayofweek<>5
    if intradaybarindex=0 then
    maxSetup = 0
    minSetup = 0
    tradethisday=0
    else
    if barindex=tradeindex then
    tradethisday=1
    endif
    endif
    
    //individuo maz e minimo prima ora
    if time = 082000 then
    max10minuti=High
    min10minuti=Low
    endif
    if time > 080000 and time <= 081000 then
    if High > max10minuti then
    max10minuti = High
    endif
    if Low < min10minuti then
    min10minuti = Low
    endif
    endif
    
    
    If Time >= BegTime and Time <= EndTime and SkipDay and tradethisday=0 and c1 then
    if maxSetup=0 then
    maxSetup = max10minuti
    endif
    Buy mycontracts contract at maxSetup stop
    endif
    
    If Time >= BegTime and Time <= EndTime and SkipDay and tradethisday=0 and c2 then
    if minsetup=0 then
    minSetup = min10minuti
    endif
    SellShort mycontracts  contract at minSetup stop
    endif
    
    If LongOnMarket and c4 then
    Sell at market
    elsif ShortOnMarket and c3 then
    ExitShort at market
    endif
    
    set target pprofit 9
    
    #46269 quote
    robertogozzi
    Moderator
    Master

    Alle righe 26-29 (ore 08:20)  sovrascrivi SEMPRE eventuali valori rilevati precedentemente (08:00-08:10)  alle righe 30-37, è corretto che faccia così?

    #46274 quote
    R05
    Participant
    Veteran

    Gentilissimo Roberto ti ringrazio della risposta. Le righe 26-29 in effetti ho sbagliato: mettendo 8:10 va bene, mi fa aprire correttamente.

    Riguardo invece alle righe 30-37 onestamente non saprei di preciso cosa dicono; io ho cercato e ho trovato un altro codice di breakout e su quello poi ho cercato di costruirmi il codice della mia strategia.

    Comunque avendo modificato 8:10 va bene e mi fa chiudere la posizione anche quando il supertrend cambia colore.

    Sembra tutto risolto.

    Però per concludere questo sistema, se posso chiederti, sarebbe opportuno esserci la possibilità che quando prende lo stop di andare a ribasso quando si verifica un’ulteriore condizione, una delle quali è quando il supertrend cambia colore ed è concorde con la regressione lineare a 34 e 89 periodi.

    Mi aiuteresti, gentilmente, a capire come aprire una posizione quando prende uno stop?

    #46281 quote
    R05
    Participant
    Veteran

    Ultima cosa; rivedendo meglio il backtest ho dovuto togliere “SkipDay=dayofweek<>5″ perchè non mi faceva entrare il venerdì.

    #46282 quote
    robertogozzi
    Moderator
    Master

    Però per quanto riguarda le righe 30-37 toglile, non servono a niente, potrebbero andare bene per un TF piccolo, ad esempio 1 minuto, ma ci sarebbe un sistema molto più semplice per farlo:

    min10minuti = lowest[10](low)
    max10minuti = highest[10](high)

    ma, ripeto, non serve sul TF a 10 minuti, perché devi verificare il Min/Max di una sola candela e vanno bene le righe che hai già cambiato con 081000.

    Per lo stop vedo appena ho un pò di tempo e ti farò sapere.

    #46283 quote
    R05
    Participant
    Veteran

    Ok grazie gentilissimo.

    #46299 quote
    robertogozzi
    Moderator
    Master

    Questo è modificato con lo Stop & Reverse, però devi aggiungere te le condizioni desiderate, dove ho indicato con un commento:

    DEFPARAM FLATAFTER=210000 // replace closetime condition
    
    ONCE PositionType = 0     //1=Long   2=Short (servce per vedere il tipo di trade precedente)
    BegTime=081000
    EndTime=095500
     
    MyContracts=1
     
    indicator1 = SuperTrend[3,10]
    c1 = (close > indicator1)
    c2 = (close < indicator1)
    c3 = (close crosses over indicator1)
    c4 = (close crosses under indicator1)
     
    if intradaybarindex=0 then
       maxSetup = 0
       minSetup = 0
       tradethisday=0
       PositionType = 0
    elsif barindex=tradeindex then
       tradethisday=1
    endif
    //---------------------------------------------------------------------------------------
    // questo è lo Stop & Reverse (preso da https://www.prorealcode.com/topic/stopreverse/)
    IF NOT ONMARKET THEN
       IF POSITIONPERF(1)<0 AND positiontype=2 THEN  //qui devi aggiungere le tue condizioni per LONG
          BUY MyContracts CONTRACTS AT MARKET
       ENDIF
       IF POSITIONPERF(1)<0 AND positiontype=1 THEN  //qui devi aggiungere le tue condizioni per SHORT
          SELLSHORT MyContracts CONTRACTS AT MARKET
       ENDIF
    ENDIF
    //---------------------------------------------------------------------------------------
    //individuo maz e minimo prima ora
    if time = 081000 then
       max10minuti=High
       min10minuti=Low
    endif
    
    If Time >= BegTime and Time <= EndTime and tradethisday=0 and c1 then
       if maxSetup=0 then
          maxSetup = max10minuti
       endif
       Buy mycontracts contract at maxSetup stop
       PositionType = 1
    endif
     
    If Time >= BegTime and Time <= EndTime and tradethisday=0 and c2 then
       if minsetup=0 then
          minSetup = min10minuti
       endif
       SellShort mycontracts  contract at minSetup stop
       PositionType = 2
    endif
     
    If LongOnMarket and c4 then
       Sell at market
    elsif ShortOnMarket and c3 then
       ExitShort at market
    endif
    set target pprofit 9

    Provalo.

    #46397 quote
    R05
    Participant
    Veteran

    Gent.mo Roberto ti ringrazio tantissimo. Ieri non ero in casa e non ho potuto fare nulla. Faccio tutte le prove e ti faccio sapere.

    #46398 quote
    R05
    Participant
    Veteran

    Ciao Roberto ho messo il codice però mi dà errore alla linea 3: mi dice di completare la sintassi di questa linea

    ONCE PositionType = 0

    #46403 quote
    R05
    Participant
    Veteran

    Scusami ma ora non mi da più errore, non so per quale motivo. Può essere che avevo sbagliato a fare il copia e incolla.

    #46404 quote
    robertogozzi
    Moderator
    Master

    Forse hai fatto qualche errore di scrittura, verificala ed eventualmente posta solo quella riga.

    Così com’è non vedo errori.

    #46409 quote
    R05
    Participant
    Veteran

    Ciao Roberto si scusa avevo sicuramente fatto io qualche errore. Il tuo codice funziona benissimo.

    Solo due cose:

    1. lasciando il tuo codice senza aggiungere o modificare nulla, ma fa fare lo stop and reverse solo che l’entrata in posizione avviene alla candela successiva e non subito al prezzo in cui ho preso lo stop.
    2. se aggiungo le mie condizioni si sfasa un pò tutto (ti allego il codice con le mie aggiunte per vedere se ho sbagliato qualcosa.
      DEFPARAM FLATAFTER=210000 // replace closetime condition
       
      ONCE PositionType = 0     //1=Long   2=Short (servce per vedere il tipo di trade precedente)
      BegTime=081000
      EndTime=095500
       
      MyContracts=1
       
      indicator1 = SuperTrend[3,10]
      c1 = (close > indicator1)
      c2 = (close < indicator1)
      c3 = (close crosses over indicator1)
      c4 = (close crosses under indicator1)
      indicator1 = LinearRegression[34](close)
      indicator2 = LinearRegression[89](close)
      c5 = (indicator1 > indicator2)
      c6 = (indicator1 < indicator2)
      
      if intradaybarindex=0 then
      maxSetup = 0
      minSetup = 0
      tradethisday=0
      PositionType = 0
      elsif barindex=tradeindex then
      tradethisday=1
      endif
      //---------------------------------------------------------------------------------------
      // questo è lo Stop & Reverse (preso da https://www.prorealcode.com/topic/stopreverse/)
      IF NOT ONMARKET THEN
      IF POSITIONPERF(1)<0 AND positiontype=2 and c3 and c5 THEN //qui devi aggiungere le tue condizioni per LONG
      BUY MyContracts CONTRACTS AT MARKET
      ENDIF
      IF POSITIONPERF(1)<0 AND positiontype=1 and c4 and c6 then //qui devi aggiungere le tue condizioni per SHORT
      SELLSHORT MyContracts CONTRACTS AT MARKET
      ENDIF
      ENDIF
      //---------------------------------------------------------------------------------------
      //individuo maz e minimo prima ora
      if time = 081000 then
      max10minuti=High
      min10minuti=Low
      endif
       
      If Time >= BegTime and Time <= EndTime and tradethisday=0 and c1 then
      if maxSetup=0 then
      maxSetup = max10minuti
      endif
      Buy mycontracts contract at maxSetup stop
      PositionType = 1
      endif
       
      If Time >= BegTime and Time <= EndTime and tradethisday=0 and c2 then
      if minsetup=0 then
      minSetup = min10minuti
      endif
      SellShort mycontracts  contract at minSetup stop
      PositionType = 2
      endif
       
      If LongOnMarket and c4 then
      Sell at market
      elsif ShortOnMarket and c3 then
      ExitShort at market
      endif
      set target pprofit 9
      

       

    #46412 quote
    R05
    Participant
    Veteran

    Pensandoci bene può essere che lo stop and reverse non si possa fare sulla stessa candela? Quindi, at market si intende alla candela successiva?

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

Breakout dei primi 10 minuti


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
R05 @r05 Participant
Summary

This topic contains 32 replies,
has 3 voices, and was last updated by R05
8 years, 4 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 09/12/2017
Status: Active
Attachments: 5 files
Logo Logo
Loading...