Trading in base all’ora

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #231367 quote
    Aragorna
    Participant
    Junior

    Buongiorno, ho un dubbio da dipanare.

    vorrei fare un trade system che entri long a mercato ogni venerdì a TIME=201500

     

    ora come condizione quando c’è il cambio dell’ora negli USA ma qua in italia ancora no, è corretto usare queste 2 condizioni? anticipare di un’ora l’ingresso

    C1=(month = 3) and (day=>9 and day=<24)
    C1=TIME=191500

     

    inoltre vorrei vendere 15 minuti dopo l’apertura del primo giorno settimanale, ossia il lunedì. Se un future apre alle 2 di notte, che venda alle 2.15 per esempio.

    ma se ci fosse una variazione e dovesse aprire per esempio alle 11 di mattina, come faccio a dirgli di vendere alle 11.15? e nel caso non fosse aperto il mercato di lunedì, fare la stessa cosa il martedì.

    grazie mille in anticipo a chi può aiutarmi

     

    Alessio

    #231376 quote
    robertogozzi
    Moderator
    Master

    All’inizio di ogni anno aggiorna le 4 date (il cambio dell’ora avviene sempre di Domenica).

    Questo è il codice per il cambio dell’ora, utilizza la variabile TradeTime per avere l’ora corretta:

    /*
    .                             15:00 & 09:00
    .      USAstart   = 20240310 15:00 & 10:00 (5 ore)
           EUstart    = 20240331 16:00 & 10:00   (6 ore)
           USAend     = 20241103 16:00 & 09:00 (7 ore)
           EUend      = 20241027 15:00 & 09:00   (6 ore)
    */
    ONCE TradeTime = 201500
    ONCE USAstart  = 20240310
    ONCE USAend    = 20241103
    ONCE EUstart   = 20240331
    ONCE EUend     = 20241027
    ONCE Flag      = 0
    IF Date >= USAstart AND Flag = 0 THEN
    TradeTime = TradeTime - 010000
    Flag = 1
    ENDIF
    IF Date >= EUstart AND Flag = 1 THEN
    TradeTime = TradeTime + 010000
    Flag = 2
    ENDIF
    IF Date >= USAend AND Flag = 2 THEN
    TradeTime = TradeTime + 010000
    Flag = 3
    ENDIF
    IF Date >= EUend AND Flag = 3 THEN
    TradeTime = TradeTime - 010000
    Flag = 0
    ENDIF

    Questo è il codice per entrare 15 minuti dopo l’apertura, devi modificare te, secondo lo strumento usato, l’orario (nell’esempio alle 02:15):

    DEFPARAM CumulateOrders = false
    ONCE EntryTime = 021500
    ONCE Flag      = 0
    IF DayOfWeek < DayOfWeek[1] THEN
    Flag = 0
    ENDIF
    IF OpenDayOfWeek >= 1 AND Flag = 0 THEN
    IF Time = EntryTime THEN
    SELLSHORT 1 Contract at Market
    Flag = 1
    ENDIF
    ENDIF
    SET STOP   pLOSS   100
    SET TARGET pPROFIT 600
    effegi thanked this post
    #231560 quote
    Aragorna
    Participant
    Junior

    Grazie Roberto. Se la giornata di lunedì fosse chiusa, e riprendesse il martedì, come faccio a dirgli di chiudermi la posizione ugualmente 10 minuti dopo l’apertura?

    ad esempio il future della soia apre alle 2 del mattino e chiude alle 20.15 di sera. ma ho visto che è capitato che aprisse la giornata alle 11. in quel caso come gli dico che chiuda ugualmente e non mi trascini la posizione per giorni?

    ultima domanda, ho provato a far partire un trading system di prova, sempre sulla soia, ma non mi trovo con i giorni della settimana. nel backtest il lunedì melo dà come Zero, nel live me lo dà come uno. qualcosa mi sfugge.

    #232553 quote
    robertogozzi
    Moderator
    Master

    Questo è il codice:

    /*
    .                             15:00 & 09:00
    .      USAstart   = 20240310 15:00 & 10:00 (5 ore)
    EUstart    = 20240331 16:00 & 10:00   (6 ore)
    USAend     = 20241103 16:00 & 09:00 (7 ore)
    EUend      = 20241027 15:00 & 09:00   (6 ore)
    */
    ONCE TradeTime = 201500
    ONCE USAstart  = 20240310
    ONCE USAend    = 20241103
    ONCE EUstart   = 20240331
    ONCE EUend     = 20241027
    ONCE Flag      = 0
    IF Date >= USAstart AND Flag = 0 THEN
    TradeTime = TradeTime - 010000
    Flag = 1
    ENDIF
    IF Date >= EUstart AND Flag = 1 THEN
    TradeTime = TradeTime + 010000
    Flag = 2
    ENDIF
    IF Date >= USAend AND Flag = 2 THEN
    TradeTime = TradeTime + 010000
    Flag = 3
    ENDIF
    IF Date >= EUend AND Flag = 3 THEN
    TradeTime = TradeTime - 010000
    Flag = 0
    ENDIF
    //
    IF Time = TradeTime AND OpenDayOfWeek = 5 AND Not OnMarket THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    IF OpenDayOfWeek >= 1 AND LongOnMarket THEN
    SELL AT MARKET
    ENDIF
    SET STOP   pLOSS   100
    SET TARGET pPROFIT 600
Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Trading in base all’ora


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Aragorna @aragorna Participant
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by robertogozzi
1 year, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 04/10/2024
Status: Active
Attachments: No files
Logo Logo
Loading...