OPEN IN GAP
Forums › ProRealTime forum Italiano › Supporto ProOrder › OPEN IN GAP
- This topic has 6 replies, 2 voices, and was last updated 4 years ago by mangiaragni.
-
-
08/02/2020 at 2:03 AM #140638
Ciao a tutti, vorrei provare a fare un codice per provare ad automatizzare l’open in gap su us500
Il programma dovrebbe verificare la chiusura delle 22 dell’indice americano ed operare per chiudere il gap che si forma all’apertura del giorno dopo, quindi una entrata short se l’indice apre più alto della chiusura del giorno prima ed una entrata long se l’indice apre più basso della chiusura del giorno prima.
In entrambe i casi con target la chiusura del giorno prima e stop Loss di pochi punti
Naturalmente il tutto su timeframe giornaliero
Sarei davvero grato se qualcuno potrà aiutarmi
08/02/2020 at 8:47 AM #140640Eccolo:
1234567891011121314Defparam CumulateOrders = false//ShortIf open > close[1] thenSellshort 1 contract at marketEndif//LongIf open < close[1] thenBuy 1 contract at marketEndif//Tp = abs(close - close[1])Sl = Tp / 3Set Target Profit TpSet Stop Loss Sl08/02/2020 at 12:34 PM #140647Grazie Roberto sei sempre fantastico e volocissimo nel rispondere, ma probabilmente io non avrò i settaggi giusti per far funzionare il programma perche questo non mi rispetta la chiusura delle 22 e l’apertura delle 15,30 del mercato americano, ma testandolo vedo che ha delle entrate ed uscite differenti.
Faccio un esempio di venerdì 31 luglio dove ho tradato l’open in gap giovedì 30 luglio:
chiusura mercato ore 22 di giovedì a 3246
Apertura mercato ore 15,30 di venerdì a 3265
il programma dovrebbe aprire una posizione corta da 3265 punti con target 3246
Grazie ancora per la velocità e la cortesia
Gianni
08/02/2020 at 12:47 PM #140648In effetti c’è una candela di differenza, in quanto le strategie vengono SEMPRE eseguiti alla chiusura di ogni candela, quindi che il Venerdì ha aperto in gap rispetto al Giovedì la strategia verrà a saperlo alla chiusura del Venerdì, quindi entrerà a mercato all’apertura del Lunedì.
Per ovviare a questo si può utilizzare il supporto MTF, con un time frame ad 1 minuto (o anche minore) ed entrare poco dopo l’apertura.
Domani ti faccio una versione MTF.
08/02/2020 at 10:06 PM #140683Ok perfetto, ma per eseguire correttamente questo codice dovrò anche io avere la visualizzazione del grafico con apertura 15,30 e con chiusura 22?
08/03/2020 at 11:58 AM #140722Questo è il codice, ma va con le candele DAILY di IG, non credo corrispondano al mercato reale perché NON è un mercato reale, è un CFD creato da IG, quindi non ha orari borsistici.
Puoi provare ad intervenire sugli orari personalizzati (nelle opzioni della piattaforma si possono variare), ma non so quali effetti avranno sul risultato.
Devi eseguirlo su un TF ad 1 minuto, o inferiore (questo ridurrà lo storico disponibile in fase di backtest):
123456789101112131415161718192021222324252627282930313233343536Defparam CumulateOrders = falseTIMEFRAME(1 Day)ONCE DailyFlag = 1DailyFlag = abs(DailyFlag - 1)//ShortCondS = 0If open > close[1] thenCondS = 1CondL = 0Endif//LongIf open < close[1] thenCondL = 1CondS = 0Endif//Tp = abs(close - close[1]) * 20 //profitto 20 volte maggiore del GAPSl = Tp / 3 //Stop Loss 1/3 del Profitto////////////////////////////////////////////////////////////////////////TIMEFRAME(default)Flag = DailyFlagONCE TradeON = 1IF Flag <> Flag[1] THENTradeON = 1ENDIFIf CondS AND Not OnMarket AND TradeON thenSellshort 1 contract at marketTradeON = 0Endif//LongIf CondL AND Not OnMarket AND TradeON thenBuy 1 contract at marketTradeON = 0EndifSet Target Profit TpSet Stop Loss Slho messo una condizione, TradeON, per evitare che entri a mercato più volte durante lo stesso giorno.
08/03/2020 at 11:05 PM #140802Grazie mille Roberto, l’ho testato sulle azioni italiane tipo eni, in quanto hanno la chiusura alle 17,30 e l’apertura alle 9 e funziona, ma a volte non capisco perchè non rispetta il tp e lo stop loss.
Per testarlo ho aggiunto solo alcune funzioni, tipo che se il tp è minore di 30 centesimi allora non entra a mercato, tolto il profitto 20 volte il gap e lo stop /3, ed ho fatto comperare 100 azioni anziche una sola.
123456789101112131415161718192021222324252627282930313233343536373839404142434445Defparam CumulateOrders = falseTIMEFRAME(1 Day)ONCE DailyFlag = 1DailyFlag = abs(DailyFlag - 1)//ShortCondS = 0If open > close[1] thenCondS = 1CondL = 0Endif//LongIf open < close[1] thenCondL = 1CondS = 0Endif//Tp = abs(close - close[1]) //* 20 //profitto 20 volte maggiore del GAPSl = Tp /// 3 //Stop Loss 1/3 del Profittolong=1graph tpshort=1if tp<0.30 thenlong=0short=0endif////////////////////////////////////////////////////////////////////////TIMEFRAME(default)Flag = DailyFlagONCE TradeON = 1IF Flag <> Flag[1] THENTradeON = 1ENDIFIf CondS and short AND Not OnMarket AND TradeON thenSellshort 1000 lots at marketTradeON = 0Endif//LongIf CondL and long AND Not OnMarket AND TradeON thenBuy 1000 lots at marketTradeON = 0EndifSet Target Profit TpSet Stop Loss Sl -
AuthorPosts