Mancata entrata su ordine pendente
Forums › ProRealTime forum Italiano › Supporto ProOrder › Mancata entrata su ordine pendente
- This topic has 15 replies, 2 voices, and was last updated 5 years ago by
Giovanni Belli.
-
-
05/29/2020 at 1:07 PM #133776
Grazie per la risposta esaustiva.. ora però mi piacerebbe capire come mai in questo caso gli ordini non partono con cadenza 5 min…
si è appena verificata la situazione per cui sarebbe dovuto partire e invece niente.. allego il codice fresco fresco
grazie
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556//-------------------------------------------------------------------------// Codice principale : Price action//-------------------------------------------------------------------------// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 090000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 201500// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0 or OpenDayOfWeek = 1c1=not daysForbiddenEntrytimeframe (daily,UpdateOnClose)levup=75 // % ratio1levdw=25 // % ratio1ratio1=abs(high-low)Dbot=min(high,low)Dtop=max(high,low)bodyrange=(abs(close-open))/pointsizelimitBuy=(dtop > ((ratio1/100)*levup)+low) and close > openlimitSell=(dbot < ((ratio1/100)*levdw)+low) and open > closesllong=(abs(dtop-close))/pointsizeslshort=(abs(close-dbot))/pointsizetimeframe(5mn, UpdateOnClose )IF intradaybarindex = 0 thencountposition=0endifcount=countposition < 1if c1 and limitbuy and count and close crosses over dtop thenbuy 1 contract at dtop stopcountposition=countposition + 1endifset target pprofit (bodyrange * 0.8)set stop ploss sllongif c1 and limitsell and count and close crosses under dbot thensellshort 1 contract at dbot stopcountposition=countposition + 1endifset target pprofit (bodyrange * 0.8)set stop ploss slshort05/29/2020 at 1:48 PM #133779essendo live in questo momento, ho catturato il momento in cui sarebbe dovuto partire e invece non è avvenuto nulla. Ho lanciato il programma martedì alle 9,36
Grazie
05/29/2020 at 2:50 PM #133783Il tuo codice dice che appena inserito un ordine pendente non deve inserirne altri, quindi solo una volta.
Quindi l’ordine viene piazzato alla prima barra del giorno.
Siccome gli ordini pendenti durano una sola barra, o entra alla prima barra o mai più.
Ho creato un nuovo argomento in quanto di tratta di una donanda diversa dalla precedente. Non postare su altri argomenti. Grazie 🙂
05/29/2020 at 3:05 PM #133789Ti chiedo scusa se posso aver creato confusione involontariamente. Detto questo volevo chiederti ulteriori chiarimenti cortesemente.
Io volevo con un timeframe giornaliero identificare le caratteristiche di entrata e poi , con un timeframe 5min, far verificare se ci sono le caratteristiche per inserire l’ordine.
Perchè mi parli di prima barra? nelle simulazioni lui parte in svariati orari una volta in cui incrocia il prezzo impostato con il timeframe daily
é qui che non capisco.
Grazie ancora
05/29/2020 at 4:15 PM #133795No, scusami, avevo travisato una riga.
Cambia gli ordini pendenti da STOP a LIMIT, perché tu acquisti e vendi sempre a prezzi migliori (quindi LIMIT), cioè dopo l’incrocio vuoi che il prezzo torni indietro per acquistare o vendere ad un prezzo migliore. In pratica acquisti e vendi su un breve pullback.
Mentre STOP si usa per acquistare o vendere a prezzi peggiori.
Una cosa a cui fare attenzione è che la distanza tra il prezzo del momento in cui piazzi l’ordine pendente ed il prezzo d’entrata sia almeno il minimo richiesto dal broker per quello strumento (va visto sulla pagina del broker o chiesto, ma può capitare che vari in funzione anche della volatilità, un pò come lo stop loss), altrimenti l’ordine non viene piazzato o viene piazzato a mercato.
Prova e fammi sapere.
05/29/2020 at 5:11 PM #133799Faccio prima a spiegarti cosa voglio fare 🙂
Vorrei che lavorasse dal martedì al venerdì
Vorrei che partisse a considerare gli ordini dalle 9 alle 20.15
all’inizio della nuova candela Daily vorrei che prendesse High e Low della giornata appena trascorsa e li trasformasse in range mentre la close e la open mi servono per determinare il Take profit e stop loss.
Il giorno seguente il programma dovrà partire long se la candela chiusa il giorno precedente sia verde con una close al oltre il 75% del range totale al raggiungimento della high precedente
oppure
Il giorno seguente il programma dovrà partire short se la candela chiusa il giorno precedente sia rossa con una close al di sotto del 25% del range totale al raggiungimento della low precedente
esempio pratico:
28/5 high 1,2344, low 1,2233 open 1,2263 close 1,2319
il ragionamento sarebbe (high – low) 0,0111 di cui il 75% è 0,0083 e il 25% 0,0027 (aggiungendoli alla low trovo il segnale Daily per una ipotetica entrata. A questo punto , vista la candela verde con chiusura a 1,2319 e dunque oltre il 75% del range totale (1,2233 + 0,0083 = 1,2316),
avrei ottenuto il bypassare per un eventuale operazione long qualora il prezzo avesse incrociato al rialzo la high del giorno precedente quindi 1,2344…. cosa che non è avvenuta pur avendo tutte queste caratteristiche
Spero sia riuscito a trasmettere il mio problema.
Fammi sapere se non ti è chiaro
Grazie
05/29/2020 at 6:00 PM #133803Ps:non si sarebbe attivato nemmeno con limit
05/29/2020 at 6:00 PM #133804Mi sembra tu faccia un pò di confusione con i termini e questo rende difficile la comprensione, tanto per farti un esempio attuale (mentre sto scrivendo), su Daily:
quale candela intendi per quella di ieri (se usi updateonclose quella di ieri è la [0], se usi default quella di ieri è la [1])?
Riparti indicando le date esatte:
chiusura del giorno 27/5, ieri l’altro serve oppure no?
chiusura del giorno 28/5 ieri, quali caratteristiche deve avere la candela?
prezzo corrente del 29/5 oggi, quando dovrebbe entrare?
05/29/2020 at 9:01 PM #133827Ok scusa .. correggo..
con la candela Daily di oggi 29/5 , il conteggio iniziale del programma per determinare High,Low,Open e close deve essere effettuato con la candela del 28/5 quindi ieri…
poi nel corso della giornata del 29/5 , con le candele ogni 5 minuti, deve avvenire l’ipotetica entrata
è un pò più chiaro?
05/30/2020 at 3:00 PM #133898Prova questo e fammi sapere:
123456789101112131415161718192021222324252627282930313233DEFPARAM CumulateOrders = falseDEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 201500//TIMEFRAME(default)daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0 or OpenDayOfWeek = 1c1 = not daysForbiddenEntryc2 = time >= 090000 AND time <= 211500//TIMEFRAME(1 Day,UpdateOnClose)Level75 = low[1] + (range[1] * 0.75)Level25 = low[1] + (range[1] * 0.25)Bullish = (close > open) AND close > Level75Bearish = (close < open) AND close < level25PrezzoLong = highPrezzoShort = lowTp = abs(close - open) * 0.8SlLong = high - closeSlShort = close - low//TIMEFRAME(5 minute,UpdateOnClose)// LongIF c1 AND c2 AND Bullish AND close >= PrezzoLong AND Not Onmarket THENBUY 1 CONTRACT AT MARKETSET TARGET PROFIT TpSET STOP LOSS SlLongENDIF// ShortIF c1 AND c2 AND Bearish AND close <= PrezzoShort AND Not Onmarket THENSELLSHORT 1 CONTRACT AT MARKETSET TARGET PROFIT TpSET STOP LOSS SlShortENDIF05/30/2020 at 11:57 PM #133927Bingo… Funziona e parte esattamente quando avrei voluto partisse!!! Grazie.. ti inoltro il mio codice finale che prevede la limitazione di 1 ordine al giorno al massimo.
solo 1 domanda.. perchè in Level75 e Leve25 utilizzi Low[1] e range[1] mentre per i restanti calcoli utilizzi la close e open in corso?
Grazie
1234567891011121314151617181920212223242526272829303132333435363738394041DEFPARAM CumulateOrders = falseDEFPARAM FLATBEFORE = 110000DEFPARAM FLATAFTER = 190000//TIMEFRAME(default)daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0 or OpenDayOfWeek = 1c1 = not daysForbiddenEntryc2 = time >= 110000 AND time <= 190000//TIMEFRAME(1 Day,UpdateOnClose)Level75 = low[1] + (range[1] * 0.75)Level25 = low[1] + (range[1] * 0.25)Bullish = (close > open) AND close > Level75Bearish = (close < open) AND close < level25PrezzoLong = highPrezzoShort = lowTp = abs(close - open) * 0.7//SlLong = high - close//SlShort = close - low//TIMEFRAME(5 minute,UpdateOnClose)IF intradaybarindex = 0 thencountposition=0endifcount=countposition < 1// LongIF c1 AND c2 AND Bullish and count AND close >= PrezzoLong AND Not Onmarket THENBUY 1 CONTRACT AT MARKETSET TARGET PROFIT TpSET STOP pLOSS 60 //Sllongcountposition=countposition + 1ENDIF// ShortIF c1 AND c2 AND Bearish and count AND close <= PrezzoShort AND Not Onmarket THENSELLSHORT 1 CONTRACT AT MARKETSET TARGET PROFIT TpSET STOP pLOSS 60 //SlShortcountposition=countposition + 1ENDIF05/31/2020 at 6:56 AM #133931Utilizzo low[1] e range[1] perché ho interpretato che tu li volessi calcolare sulla candela del giorno prima, quella del 28/5 tornando al tuo esempio.
Ok alla limitazione. È quello che intendevo all’inizio quando avevo notato che faceva una sola operazione.
05/31/2020 at 7:18 AM #133932La differenza è che adesso fa un’operazione perché l’entrata è a mercato e sei certo che entra.
Come l’avevi fatto te inizialmente piazzava l’ordine pendente solo i primi 5 minuti del giorno e basta. Se entrava i quei 5 minuti bene, altrimenti per quel giorni era finita.
Limitare gli ordini pendenti è un po’ più complicato perché se durano più barre si può usare OnMarket, altrimenti è più difficile scoprire se sono entrati ed uscire sulla stessa barra, occorre verificare se il risultato della strategia è diverso rispetto alla barra precedente utilizzando STRATEGYPROFIT.
05/31/2020 at 9:23 AM #133939Peró se posso permettermi, quando simulavo in backtest per un lungo periodo lui partiva in alcuni casi ad orari differenti dalla mattina al tardo pomeriggio.. non sono i primi 5 minuti della giornata
come mai?
05/31/2020 at 11:57 AM #133950Erano i 5 minuti in cui per la prima volta le condizioni erano soddisfatte, o entrava allora o mai più, perché in quel momento incrementavi il contatore senza sapere se poi l’entrata ci sarebbe stata o meno.
-
AuthorPosts
Find exclusive trading pro-tools on