Non mi inserisce l'ordine pendente
Forums › ProRealTime forum Italiano › Supporto ProOrder › Non mi inserisce l'ordine pendente
- This topic has 79 replies, 2 voices, and was last updated 4 years ago by robertogozzi.
-
-
04/18/2020 at 10:44 PM #126823
No, il programma che ho provato (https://www.prorealcode.com/topic/non-mi-inserisce-lordine-pendente/page/2/#post-126634) ha aperto una posizione alle 13 e l’ha chiusa alle 17 perché alle 16:30 si è formata una barra contraria.
L’altro ha aperto un’operazione alle 21 e alla chiusura il mercato era chiuso, la chiuderà alla riapertura dei mercati, l’ordine ce l’ha già in memoria sicuramente.
Funzionano regolarmente.
Purtroppo non posso mettermi a verificare tutte le operazioni, ne guardo 3-4 in modo sparso, se ce ne sono altre fammi sapere quali candele sono e le verifico.
04/19/2020 at 11:01 AM #126853Roberto a questo punto volevo farti una domanda, poi per il software si fa sicuramente.
Io avrei bisogno di entrare alle mie condizioni a mercato, supponiamo entri long. Fino a che persiste una barra verde rimango a mercato. Alla prima barra rossa, esco dal mercato e rientro subito sempre alle mie condizioni.
Al contrario posso entrare short e fino a che persiste una barra rossa resto a mercato. Alla prima barra verde esco dal mercato e rientro subito a mercato alle mie condizioni.
Attenzione che potrei rientrare sia short che long dipende dal verificarsi delle mie condizioni.
E’ fattibile?
Ho bisogno di capire se su Prorealtime sia fattibile una strategia del genere.
Grazie mille.
04/19/2020 at 12:07 PM #126870Quello che hai scritto è molto simile a quello che vuoi, mi pare.
Questo è un esempio, appena c’è una candela contrara esci se sei a mercato. Entri solo quando il prezzo incrocia la media:
12345678910111213Media = average[20,0](close)IF LongOnMarket AND close < open THEN //Esci se sei LONG e si forma una candela rossaSELL AT MARKETENDIFIF ShortOnMarket AND close > open THEN //Esci se sei SHORT e si forma una candela verdeEXITSHORT AT MARKETENDIFIF close CROSSES OVER Media AND Not OnMarket THEN //Entra LONG all'incrocio rialzista (se non sei già a mercato)BUY 1 Contract AT MARKETENDIFIF close CROSSES UNDER Media AND Not OnMarket THEN //Entra SHORT all'incrocio ribassista (se non sei già a mercato)SELLSHORT 1 Contract AT MARKETENDIF04/19/2020 at 12:26 PM #126875Ho capito, ti ho fatto la domanda perchè ho notato lanciando i programmi sul demo, che quando arriva la candela contraria, alla chiusura di questa (quindi apertura della successiva), se mi chiude la posizione, non mi apre subito a mercato la successiva. Temevo non si potesse fare su ProrealTime.
Quindi mi confermi che è possibile farlo. La condizione di apertura che hai fatto tu sopra è un esempio, io posso sostituirla con il mio tipo barra corretto?
E sotto setto lo Stop LOSS, giusto?
04/19/2020 at 2:40 PM #126895Si, puoi usarla con altre tue condizioni.
Alla fine aggiungi lo SL ed eventualmente il TP.
Nel mio esempio rientra solo al prossimo incrocio.
04/19/2020 at 3:42 PM #126903Grazie mille Roberto.
Quindi all’inizio di una candela si può chiudere e riaprire subito una nuova posizione nella stessa direzione oppure contraria a quella appena chiusa. Avevo un dubbio che non si potesse fare.
Quindi se non si comporta così l’errore sta nel codice giusto?
04/19/2020 at 4:04 PM #126907Ti allego il codice appena scritto. Posizione aperta alle 15, ma alla chiusura della barra delle 16.30(barra verde), quindi alle 17 non è uscito. Non riesco a capire come mai.
Sono sul Bitcoin(E1) 30 minuti.
Grazie mille.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091DEFPARAM CumulateOrders = TrueDEFPARAM PreLoadBars = 10000////////////////////////////////////////////////////////////////////////////////////////ONCE Capitale = 4196ONCE LotNumber = 1ONCE MinLots = 1ONCE SpreadEntrata = 20 * pipsizeONCE StopMinimo = 100 * pipsizeONCE StopMassimo = 200 * pipsize//ONCE LimiteMaxBarra = 450 * pipsizeBarraVerde = Open < CloseBarraRossa = Open > CloseTradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 //trade only Mon. to Fri.//ESCO = 999//PASSO = 999//AltaVolatilita = range > LimiteMaxBarra//Definisco il tipo barraIF (close >= (high + low) / 2) THENTipoBarra = 1ELSIF (close < (high + low) /2) THENTipoBarra = 2ENDIFIF BarraVerde THENSpikeSuperiore = high - closeSpikeInferiore = open - lowELSIF BarraRossa THENSpikeSuperiore = high - openSpikeInferiore = open - lowENDIFIF LongOnMarket AND close < open THEN //Esci se sei LONG e si forma una candela rossaSELL AT MARKETENDIFIF ShortOnMarket AND close > open THEN //Esci se sei SHORT e si forma una candela verdeEXITSHORT AT MARKETENDIF// Se a mercato Short e Barra verde chiude la posizione SHORT, se a mercato Long e Barra rossa chiude la posizione LONG//IF SHORTONMARKET AND BarraVerde THEN//IF ONMARKET > 0 AND BarraVerde THEN//IF Countofshortshares > 0 THEN//ESCO = 1//EXITSHORT AT MARKET //exit SHORT trades, if any//SELL AT MARKET //exit LONG trades, if any//ENDIF//ELSIF LONGONMARKET AND BarraRossa THEN//ELSIF ONMARKET AND BarraRossa THEN//IF Countoflongshares > 0 THEN//ESCO = 2//SELL AT MARKET //exit LONG trades, if any//EXITSHORT AT MARKET //exit SHORT trades, if any//ENDIF//ENDIF//Credo dica il profitto è dato dal capitale + il ricavato dal programmaMyProfit = Capitale + StrategyProfit//Credo centri qualche cosa con l'aumento della size al cambio del meseIF Month <> Month[1] THENLotNumber = max(MinLots, (MyProfit / Capitale))ENDIFIF TipoBarra = 1 AND TradingDay AND (Countoflongshares = 0) THENSELLSHORT LotNumber CONTRACT AT MARKETIF SpikeSuperiore >= 220 THENStopEntrata = StopMassimo + SpreadEntrataSET STOP pLOSS StopEntrataELSEStopEntrata = StopMinimo + SpreadEntrataSET STOP pLOSS StopEntrataENDIFELSIF TipoBarra = 2 AND TradingDay AND (Countofshortshares = 0) THENBUY LotNumber CONTRACT AT MARKETIF SpikeInferiore >= 220 THENStopEntrata = StopMassimo + SpreadEntrataSET STOP pLOSS StopEntrataELSEStopEntrata = StopMinimo + SpreadEntrataSET STOP pLOSS StopEntrataENDIFENDIF//GRAPH SpikeSuperiore//GRAPH SpikeInferiore//GRAPH TipoBarra//GRAPH StopEntrata04/19/2020 at 6:19 PM #126922Cosa c’è che non va in quell’operazione?
E’ entrato una prima volta alle 15:30 (sul setup delle 15:00), una seconda volta alle 16:30 (sul setup delle 16:00) ed alle 17 ha chiuso le due posizioni SHORT perché la candela delle 16:30 era contraria!
04/20/2020 at 6:29 AM #126983Roberto, in allegato la situazione che mi sono trovato questa mattina.
Come vedi alle mie condizioni è entrato long alla barra delle 5:30, alla chiusura della barra delle 6 che è contraria, non è uscito(prima immagine).
Ha chiuso alla fine delle barra delle 7, ma come vedi dalla seconda immagine non è subito rientrato a mercato(seconda immagine).
Non riesco a capire dove sbaglio a scrivere il codice.
Sono sul demo di IG, il programma gira su Japan 225 Cash (1$) barre 30 minuti.
Ti rimetto il codice.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091DEFPARAM CumulateOrders = TrueDEFPARAM PreLoadBars = 10000////////////////////////////////////////////////////////////////////////////////////////ONCE Capitale = 4196ONCE LotNumber = 1ONCE MinLots = 1ONCE SpreadEntrata = 20 * pipsizeONCE StopMinimo = 100 * pipsizeONCE StopMassimo = 200 * pipsize//ONCE LimiteMaxBarra = 450 * pipsizeBarraVerde = Open < CloseBarraRossa = Open > CloseTradingDay = OpenDayOfWeek >= 0 AND OpenDayOfWeek <= 6 //trade only Mon. to Fri.//ESCO = 999//PASSO = 999//AltaVolatilita = range > LimiteMaxBarra//Definisco il tipo barraIF (close >= (high + low) / 2) THENTipoBarra = 1ELSIF (close < (high + low) /2) THENTipoBarra = 2ENDIFIF BarraVerde THENSpikeSuperiore = high - closeSpikeInferiore = open - lowELSIF BarraRossa THENSpikeSuperiore = high - openSpikeInferiore = open - lowENDIFIF LongOnMarket AND close < open THEN //Esci se sei LONG e si forma una candela rossaSELL AT MARKETENDIFIF ShortOnMarket AND close > open THEN //Esci se sei SHORT e si forma una candela verdeEXITSHORT AT MARKETENDIF// Se a mercato Short e Barra verde chiude la posizione SHORT, se a mercato Long e Barra rossa chiude la posizione LONG//IF SHORTONMARKET AND BarraVerde THEN//IF ONMARKET > 0 AND BarraVerde THEN//IF Countofshortshares > 0 THEN//ESCO = 1//EXITSHORT AT MARKET //exit SHORT trades, if any//SELL AT MARKET //exit LONG trades, if any//ENDIF//ELSIF LONGONMARKET AND BarraRossa THEN//ELSIF ONMARKET AND BarraRossa THEN//IF Countoflongshares > 0 THEN//ESCO = 2//SELL AT MARKET //exit LONG trades, if any//EXITSHORT AT MARKET //exit SHORT trades, if any//ENDIF//ENDIF//Credo dica il profitto è dato dal capitale + il ricavato dal programmaMyProfit = Capitale + StrategyProfit//Credo centri qualche cosa con l'aumento della size al cambio del meseIF Month <> Month[1] THENLotNumber = max(MinLots, (MyProfit / Capitale))ENDIFIF TipoBarra = 1 AND TradingDay AND (Countoflongshares = 0) THENSELLSHORT LotNumber CONTRACT AT MARKETIF SpikeSuperiore >= 220 THENStopEntrata = StopMassimo + SpreadEntrataSET STOP pLOSS StopEntrataELSEStopEntrata = StopMinimo + SpreadEntrataSET STOP pLOSS StopEntrataENDIFELSIF TipoBarra = 2 AND TradingDay AND (Countofshortshares = 0) THENBUY LotNumber CONTRACT AT MARKETIF SpikeInferiore >= 220 THENStopEntrata = StopMassimo + SpreadEntrataSET STOP pLOSS StopEntrataELSEStopEntrata = StopMinimo + SpreadEntrataSET STOP pLOSS StopEntrataENDIFENDIF//GRAPH SpikeSuperiore//GRAPH SpikeInferiore//GRAPH TipoBarra//GRAPH StopEntrata04/20/2020 at 2:20 PM #127085Senti, c’è qualcosa di strano davvero! Io ho eseguito la strategia di cui sopra (ho fatto il copia e incolla, senza variaee niente) ed alle 5:30 NON è entrato a mercato, è uscito da una precedente operazione, ma l’entrata a mercato l’ha fatta alle 6.
E’ poi entrato a mercato alle 6 ed alle 7:30, accumulando 2 posizioni chiuse all’inizio della barra delle 8>:30 perché quella delle 8 era contraria.
Ti consiglio di premere Ctrl+M dalla piattaforma per richiedere l’assistenza. Esamineranno la strategia e sapranno dirti qualcosa!
04/20/2020 at 2:30 PM #12708604/20/2020 at 4:35 PM #127106Mandato segnalazione attraverso CTRL+M.
Roberto non mi ricordo se ti avevo già fatto questa domanda, se all’inizio della barra chiudo una posizione, posso rientrare subito a mercato in una delle due direzioni, indipendentemente dalla direzione della posizione appena chiusa?
Oppure devo aspettare la barra successiva per rientrare.
Grazie mille ancora.
04/20/2020 at 6:36 PM #127118E’ possibile solo facendo Stop & Reverse e mettendo TRUE nella prima riga:
123456defparam cumulateorders=trueif close > average[20] thenbuy at marketelsesellshort at marketendifCon una strategia dove non c’è Stop & Reverse NON si può, perché per sapere che è a mercato gli occorre una barra:
12345678defparam cumulateorders=falsesell at marketexitshort at marketif close > average[20] thenbuy at marketelsif close < average[20] thensellshort at marketendif04/21/2020 at 6:46 AM #127164Posso fare lo stop&reverse con le mie condizioni, ovvero in base al tipo barra appena chiusa? Ieri dovresti aver ricevuto due programmi da Alberto. Sono io che collaboro con lui, te lo aveva detto giusto?. Ho notato che se sposto l’IF di uscita dal mercato sotto la sezione di entrata, mi esce corretto alla prima barra contraria, ma non entra subito. E scusami, ma lo stop & reverse non lo ho capito.
04/21/2020 at 7:04 AM #127165Ovviamente tu lo Stop & Reverse lo farai con le tue condizioni, qualynque siano, il mio era solo un esempio.
Lo Stop & Reverse significa che non devi preoccuparti di chiudere una posizione aperta, ci pensa ProOrder:
- quando trova BUY chiude ogni eventuale posizione Short aperta e ne apre una Long (quindi non devi prima fare EXITSHORT e poi BUY)
- quando trova SELLSHORT chiude ogni eventuale posizione Long aperta e ne apre una Short (quindi non devi prima fare SELL e poi SELLSHORT)
-
AuthorPosts
Find exclusive trading pro-tools on