Acquisto sopra una condizione

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #182206 quote
    tatankayotanka
    Participant
    Senior

    Buongiorno volevo creare un sistema di trading da applicare a dei titoli estrapolati da uno screener, questo

    Timeframe(1 h)
    Inizio = 153000
    Fine   = 163000
    GAP    = Dopen(0)>1.15* Dclose(1)
    SCAMBI = VOLUME >1000000
    IF Time >= Inizio AND Time <= Fine THEN
    IF Time = Inizio THEN
    x  = 0
    HH = high
    LL = low
    ELSE
    HH = max(HH,high)
    LL = min(LL,low)
    IF Time = Fine THEN
    x = HH >= (LL * 1.20)
    ENDIF
    ENDIF
    ENDIF
    SCREENER[Gap and scambi and x]

    (Realizzato con l aiuto di Roberto Gozzi) dove acquisto il titolo quando il prezzo ha superato il max. +0.5% ( per “garanzia”) della 1 candela di un ora  e poi con uno SL -5%  TP 30% TS 5% e con chiusura forzata a 5′ prima della chiusura della borsa di riferimento e se possibile con un utilizzo per singolo trade di 1/3 del capitale a disposizione

    #182257 quote
    robertogozzi
    Moderator
    Master

    Questo è il codice c he ho provato sul DAX a 5 minuti (per potere uscire 5 minuti prima della chiusura), mentre lavora internamente sul 30 minuti (per potere utilizzare orari di mezz’ora). Ogni orario e parametro dovrai variarlo per adeguarlo al reale, in quanto io li ho indicati in modo casuale:

    DEFPARAM CumulateOrders = false
    Timeframe(Default)
    ONCE Inizio   = 083000
    ONCE Fine     = 093000
    ONCE Chiusura = 172500
    ONCE Capitale = 50000
    ONCE LottiMin = 0.2
    IF Not OnMarket THEN
    Lotti      = 1
    Rischio    = (Capitale + StrategyProfit) / 3
    SogliaTS   = 0
    ENDIF
    //
    Timeframe(30 minute,UpdateOnClose)
    GAP    = Dopen(0)>(1.0002* Dclose(1))
    SCAMBI = VOLUME >10000
    IF Time >= Inizio AND Time <= Fine THEN
    IF Time = Inizio THEN
    x  = 0
    HH = high
    LL = low
    ELSE
    HH = max(HH,high)
    LL = min(LL,low)
    IF Time = Fine THEN
    x = HH >= (LL * 1.002)
    ENDIF
    ENDIF
    ENDIF
    Cond = Gap and Scambi and x
    //
    Timeframe(Default)
    IF Cond AND Not OnMarket THEN
    Entrata  = close
    SL       = Entrata * 0.03         //2%  SL
    TP       = Entrata * 0.08         //6%  TP
    SogliaTS = TP      * 0.01         //10$ TS
    Uscita   = Entrata
    k        = SL / PipSize * PipValue
    IF k > Rischio THEN
    Temp  = Rischio / k
    y     = Lotti * Temp
    z     = round((y * 10) - 0.5)
    Lotti = max(LottiMin,z / 10)
    ENDIF
    BUY Lotti CONTRACT AT MARKET
    SET TARGET PROFIT TP
    SET STOP   LOSS   SL
    ENDIF
    IF OnMarket AND Time >= Chiusura THEN
    SELL AT Market
    ENDIF
    IF OnMarket THEN
    IF close >= Uscita + SogliaTS THEN
    Uscita = Uscita + SogliaTS
    ENDIF
    IF Uscita > Entrata THEN
    SELL AT Uscita STOP
    ENDIF
    ENDIF
    
    //graph Lotti
    //graph SL
    //graph TP
    //graph k
    //graphonprice Entrata
    //graphonprice Entrata - SL      coloured(255,0,0,255)
    //graphonprice Uscita + SogliaTS coloured(0,0,255,255)

    Per i parametri, anche per quanto riguarda lo screener, sono estremamente selettivi.
    Verifica che lde percentuali che mi hai detto siano quelle corrette, tenendo come esempio il DAX, che vale circa 16000. Il 30% sono 4800 pips, il 5% sono 800 pips, ecc…

    #182418 quote
    tatankayotanka
    Participant
    Senior
    DEFPARAM CumulateOrders = false
    Timeframe(Default)
    ONCE Inizio   = 093000
    ONCE Fine     = 100000
    ONCE Chiusura = 155500
    ONCE Capitale = 50000
    ONCE LottiMin = 0.2
    IF Not OnMarket THEN
    Lotti      = 250
    Rischio    = (Capitale + StrategyProfit) / 3
    SogliaTS   = 0
    ENDIF
    //
    Timeframe(30 minute,UpdateOnClose)
    GAP    = Dopen(0)>(1.0002* Dclose(1))
    SCAMBI = VOLUME >1000000
    IF Time >= Inizio AND Time <= Fine THEN
    IF Time = Inizio THEN
    x  = 0
    HH = high
    LL = low
    ELSE
    HH = max(HH,high)
    LL = min(LL,low)
    IF Time = Fine THEN
    x = HH >= (LL * 1.1)
    ENDIF
    ENDIF
    ENDIF
    Cond = Gap and Scambi and x
    //
    Timeframe(default)
    IF Cond AND Not OnMarket THEN
    Entrata  = close
    SL       = Entrata * 0.03         //2%  SL
    TP       = Entrata * 0.08         //6%  TP
    SogliaTS = TP      * 0.05         //10$ TS
    Uscita   = Entrata
    k        = SL / PipSize * PipValue
    IF k > Rischio THEN
    Temp  = Rischio / k
    y     = Lotti * Temp
    z     = round((y * 10) - 0.5)
    Lotti = max(LottiMin,z / 10)
    ENDIF
    BUY Lotti CONTRACT AT MARKET
    SET TARGET PROFIT TP
    SET STOP   LOSS   SL
    ENDIF
    IF OnMarket AND Time >= Chiusura THEN
    SELL AT Market
    ENDIF
    IF OnMarket THEN
    IF close >= Uscita + SogliaTS THEN
    Uscita = Uscita + SogliaTS
    ENDIF
    IF Uscita > Entrata THEN
    SELL AT Uscita STOP
    ENDIF
    ENDIF
     
    //graph Lotti
    //graph SL
    //graph TP
    //graph k
    //graphonprice Entrata
    //graphonprice Entrata - SL      coloured(255,0,0,255)
    //graphonprice Uscita + SogliaTS coloured(0,0,255,255)

    Ciao Roberto ho provato a far girare il tuo programma cambiando solo INIZIO FINE CHIUSURA VOLUME
    Alcune cose non mi tornano
    – Nel titolo deve entrare una sola volta e dopo le 15:55(per USA) non deve fare nessun trade, mentre qui entra ogni minuto e dopo le 15:55
    – Deve entrare se prezzo e maggiore del max della prima candela di mezz’ora quella delle 9:30/10:00 mentre qui entra più in basso
    – Volevo entrare con un terzo del capitale in ogni operazione , mentre qui entra in lotti/pezzi
    – L’ingresso deve avvenire al prezzo max della candela ½ ora +0.5% , non lo vedo

    My-trading-siste.docx Pic01.png Pic01.png Pic02.png Pic02.png
    #182423 quote
    robertogozzi
    Moderator
    Master

    Scrivi il testo nel post, non separatamnente.
    Per i documenti devi utilizzare solo tra questi tipi di file:
    – PDF per testi formattati
    – TXT per testi non formattati
    – JPG o PNG per le immagini.
    Grazie 🙂

    Ci darò un’occhiata appena possibile.

    #182425 quote
    tatankayotanka
    Participant
    Senior

    ok sorry

    #182491 quote
    robertogozzi
    Moderator
    Master

    L’entrata si può fare SOLO in lotti, ovviamente vanno rapportati al rischio desiderato.

    Ho aggiunto/modificato:

    • entrata DOPO l’orario di FINE ed entro l’orario di CHIUSURA
    • una sola entrata al giorno
    • ho corretto il calcolo dei lotti in base al rischio
    • il prezzo d’entrata adesso è sul MASSIMO + n%

    L’ho provato sul DAX, 30 minuti, 200K barre. Ho messo percentuali abbastanza diverse da quelle da te indicate altrimenti non avrebbe fatto nessuna operazione. Ho provato a cercare l’azione della tua immagine, ma non l’ho trovata, IG ha solo BIOFRONTERA AG (non INC.).

    Se vuoi usare solo UNA candela da 30 minuti indica INIZIO e FINE con la stessa ora.

    DEFPARAM CumulateOrders = false
    Timeframe(Default)
    ONCE TradeON  = 1
    ONCE Inizio   = 093000
    ONCE Fine     = 093000
    ONCE Chiusura = 155500
    ONCE Capitale = 50000
    ONCE LottiMin = 0.2
    IF Not OnMarket THEN
       Lotti      = 100  //100 per default, ma il calcolo sul rischio viene fatto all'entrata
       Rischio    = (Capitale + StrategyProfit) * 0.30   //30%  rischio (sul capitale + utili)
       SogliaTS   = 0
    ENDIF
    IF IntraDayBarIndex = 0 AND Not OnMarket THEN
       TradeON = 1
       x       = 0
    ENDIF
    //
    Timeframe(30 minute,UpdateOnClose)
    GAP    = Dopen(0)>(1.0001* Dclose(1))
    SCAMBI = VOLUME >10000
    IF OpenTime >= Inizio AND OpenTime <= Fine THEN
       IF OpenTime = Inizio THEN
          HH = high
       ENDIF
       IF OpenTime = Fine THEN
          HH = max(HH,high)
       ENDIF
    ENDIF
    //
    Timeframe(default)
    IF x = 0 THEN
       x = (close >= (HH * 1.01))       //Massimo + 0.1%
    ENDIF
    Cond = Gap and Scambi and x and OpenTime <= Chiusura and OpenTime >= Fine and TradeON
    IF Cond AND Not OnMarket THEN
       Entrata  = close
       SL       = Entrata * 0.04         //4%    SL
       TP       = Entrata * 0.15         //15%   TP
       SogliaTS = TP      * 0.015        //1.5%  TS
       Uscita   = Entrata
       k        = (SL / PipSize * PipValue) * Lotti
       IF k > Rischio THEN
          Temp  = Rischio / k
          y     = Lotti * Temp
          z     = round((y * 10) - 0.5)
          Lotti = max(LottiMin,z / 10)
       ENDIF
       BUY Lotti CONTRACT AT MARKET
       TradeON  = 0
       SET TARGET PROFIT TP
       SET STOP   LOSS   SL
    ENDIF
    IF OnMarket THEN
       IF close >= Uscita + SogliaTS THEN
          Uscita = Uscita + SogliaTS
       ENDIF
       IF Uscita > Entrata THEN
          SELL AT Uscita STOP
       ENDIF
    ENDIF
    //graph Lotti
    //graph SL
    //graph TP
    //graph k
    //graphonprice Entrata
    //graphonprice Entrata - SL      coloured(255,0,0,255)
    //graphonprice Uscita + SogliaTS coloured(0,0,255,255)
    Il-Mio-Sistema1.itf
    #182505 quote
    tatankayotanka
    Participant
    Senior

    Ok grazie domani provo, perchè l ingresso lo si può fare solo in lotti e non in cash?

    #182506 quote
    tatankayotanka
    Participant
    Senior
    DEFPARAM CumulateOrders = false
    Timeframe(Default)
    ONCE TradeON  = 1
    ONCE Inizio   = 093000
    ONCE Fine     = 093000
    ONCE Chiusura = 155500
    ONCE Capitale = 50000
    ONCE LottiMin = 0.2
    IF Not OnMarket THEN
    Lotti      = 700  //100 per default, ma il calcolo sul rischio viene fatto all'entrata
    Rischio    = (Capitale + StrategyProfit) * 0.30   //30%  rischio (sul capitale + utili)
    SogliaTS   = 0
    ENDIF
    IF IntraDayBarIndex = 0 AND Not OnMarket THEN
    TradeON = 1
    x       = 0
    ENDIF
    //
    Timeframe(30 minute,UpdateOnClose)
    GAP    = Dopen(0)>(1.15* Dclose(1))
    SCAMBI = VOLUME >10000
    IF OpenTime >= Inizio AND OpenTime <= Fine THEN
    IF OpenTime = Inizio THEN
    HH = high
    ENDIF
    IF OpenTime = Fine THEN
    HH = max(HH,high)
    ENDIF
    ENDIF
    //
    Timeframe(default) // qui deve essere con TF 1 MInuto
    IF x = 0 THEN
    x = (close >= (HH * 1.05))       //Massimo + 0.5%
    ENDIF
    Cond = Gap and Scambi and x and OpenTime <= Chiusura and OpenTime >= Fine and TradeON
    IF Cond AND Not OnMarket THEN
    Entrata  = close
    SL       = Entrata * 0.04         //4%    SL
    TP       = Entrata * 0.15         //15%   TP
    SogliaTS = TP      * 0.015        //1.5%  TS
    Uscita   = Entrata
    k        = (SL / PipSize * PipValue) * Lotti
    IF k > Rischio THEN
    Temp  = Rischio / k
    y     = Lotti * Temp
    z     = round((y * 10) - 0.5)
    Lotti = max(LottiMin,z / 10)
    ENDIF
    BUY Lotti CONTRACT AT MARKET
    TradeON  = 0
    SET TARGET PROFIT TP
    SET STOP   LOSS   SL
    ENDIF
    IF OnMarket THEN
    IF close >= Uscita + SogliaTS THEN
    Uscita = Uscita + SogliaTS
    ENDIF
    IF Uscita > Entrata THEN
    SELL AT Uscita STOP
    ENDIF
    ENDIF
    //graph Lotti
    //graph SL
    //graph TP
    //graph k
    //graphonprice Entrata
    //graphonprice Entrata - SL      coloured(255,0,0,255)
    //graphonprice Uscita + SogliaTS coloured(0,0,255,255)

    Ho modificato la linea gap portandolo al 15%.Poi volevo cambiare il secondo time frame in quanto le operazioni di ingresso devono essere fatte con candele ad 1′ . Cmq va bene in quanto su questo titolo BFRI mi fa un ingresso giornaliero e basta, Pero due cose volevo chiederti , se non e proprio possibile inserire un acquisto in  $ e non in lotti e seconda cosa questo programma mi permette di fare backtest ma io vorrei trasformarlo in uno screener e a seguire un ordine , la prima parte dove ha come criteri la candela di aperture superiore del 15% dal prezzo di chiusura che e la parte di scrrener  e poi l acquisto

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

Acquisto sopra una condizione


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 7 replies,
has 2 voices, and was last updated by tatankayotanka
4 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 11/24/2021
Status: Active
Attachments: 4 files
Logo Logo
Loading...