Entrata ritardata
Forums › ProRealTime forum Italiano › Supporto ProOrder › Entrata ritardata
- This topic has 9 replies, 2 voices, and was last updated 7 years ago by R05.
-
-
09/12/2017 at 9:52 PM #46069
Salve a tutti, avrei la necessità, gentilmente, di sapere come fare per rendere valida una condizione ad esempio fino a un massimo di 5 candele.
Vi posto un esempio della strategia: prima condizione incrocio del macd ad 1 ora a rialzo, quindi, come seconda condizione io entro effettivamente a rialzo solo se supero il max degli ultimi 10 periodi. La condizione di entrata deve valere per un massimo di 5 candele successive, poi decade tutto e si aspetta un nuovo segnale.
Mi potete aiutare?
09/13/2017 at 8:26 AM #46082Prova questo, dovrebbe funzionare, se ho ben capito la tua richiesta:
12345678910111213141516171819DEFPARAM CumulateOrders = FalseONCE TradeOn = 0 //inizializzazione variabileIF OnMarket THENTradeOn = 0 //una volta a mercato azzerare la variabileENDIFMacdVal = MACD[14,26,9] //valore del MACDIF MacdVal CROSSES OVER 0 THEN //se incrocia al rialzo....TradeOn = 1 //...settare la variabile per tradare e...TopHigh = highest[10](high) //...salvare il massimo delle ultime 10 candele.ELSIF MacdVal CROSSES UNDER 0 THENTradeOn = 0 //Se il MACD torna sotto lo 0, annullare tuttoENDIFIF summation[5](MacdVal > 0) > 5 THEN //se il MACD è sopra lo 0 da oltre 5 candele...TradeOn = 0 //...annullare e ripartire da zero.ENDIFIF close > TopHigh AND TradeOn THEN //Se condizioni soddisfatte aprire il tradeBUY 1 CONTRACT AT MARKETENDIF09/13/2017 at 11:50 AM #46117Gent.mo Roberto ti ringrazio della risposta. Tendenzialmente fa ciò che chiedo, solo che la prima cosa che ho notato è che in alcuni casi anche se le condizioni (macd + superamento ultimo massimo) sono soddisfatte, non mi fa entrare subito ma anche dopo 5 candele (immagine1); in altri casi non mi fa nemmeno entrare nonostante le condizioni (immagine2); mentre poi c’è un’entrata apparentemente senza setup (immagine1).
Vorrei premettere che ho modificato il tuo codice per fare anche lo short e per uscire dalla posizione long quando il macd incrocia a ribasso e viceversa per le operazioni short. Quindi, non so se modificando io qualcosa ho cambiato anche le basi del tuo codice. Comunque lo allego in modo da capire se ho fatto qualcosa di sbagliato. Ho sostituito per l’entrata at market con tophigh perchè, cosa che mi era sfuggita prima, l’entrata è al superamento del massimo/minimo a 10 candele.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758DEFPARAM CumulateOrders = Falsedefparam flatbefore = 010000defparam flatafter = 220000ONCE TradeOn = 0 //inizializzazione variabileIF OnMarket THENTradeOn = 0 //una volta a mercato azzerare la variabileENDIF// Condizioni per entrare longMacdVal = MACD[14,26,9] //valore del MACDIF MacdVal CROSSES OVER 0 THEN //se incrocia al rialzo....TradeOn = 1 //...settare la variabile per tradare e...TopHigh = highest[10](high) //...salvare il massimo delle ultime 10 candele.ELSIF MacdVal CROSSES UNDER 0 THENTradeOn = 0 //Se il MACD torna sotto lo 0, annullare tuttoENDIFIF summation[5](MacdVal > 0) > 5 THEN //se il MACD è sopra lo 0 da oltre 5 candele...TradeOn = 0 //...annullare e ripartire da zero.ENDIFIF TradeOn THEN //Se condizioni soddisfatte aprire il tradeBUY 1 CONTRACT AT tophigh stopENDIF// Condizioni per uscire da posizioni longindicator3 = MACDline[12,26,9](close)indicator4 = ExponentialAverage[9](indicator3)c2 = (indicator3 CROSSES UNDER indicator4)IF c2 THENSELL AT MARKETENDIF// Condizioni per entrare shortMacdVal = MACD[14,26,9] //valore del MACDIF MacdVal CROSSES UNDER 0 THEN //se incrocia al ribasso....TradeOn = 1 //...settare la variabile per tradare e...TopLow = lowest[10](low) //...salvare il minimo delle ultime 10 candele.ELSIF MacdVal CROSSES OVER 0 THENTradeOn = 0 //Se il MACD torna sopra lo 0, annullare tuttoENDIFIF summation[5](MacdVal < 0) > 5 THEN //se il MACD è sotto lo 0 da oltre 5 candele...TradeOn = 0 //...annullare e ripartire da zero.ENDIFIF TradeOn THEN //Se condizioni soddisfatte aprire il tradeSELLSHORT 1 CONTRACT AT toplow stopENDIF// Condizioni per uscire da posizioni shortindicator7 = MACDline[12,26,9](close)indicator8 = ExponentialAverage[9](indicator7)c4 = (indicator7 CROSSES OVER indicator8)IF c4 THENEXITSHORT AT MARKETENDIF09/13/2017 at 1:41 PM #46132Ho trovato un errore di logica, sostituisci la riga 19 con:
1IF summation[6](MacdVal > 0) = 6 THEN //dopo la 5a barra annullaree la riga 44 con:
1IF summation[6](MacdVal < 0) = 6 THEN //dopo la 5a barra annullarepoi fammi sapere.
09/13/2017 at 2:25 PM #4613509/13/2017 at 3:13 PM #46141Il problema logico era che usi sempre la stessa variabile, sia per i LONG che per gli SHORT, andava bene per i soli LONG, altrimenti va usata un’ulteriore variabile per differenziarli.
Ho aggiunto TradeOnL e MacdValL (dove L sta per LONG), il resto è invariato:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960DEFPARAM CumulateOrders = Falsedefparam flatbefore = 010000defparam flatafter = 220000ONCE TradeOnL = 0 //inizializzazione variabileONCE TradeOn = 0 //inizializzazione variabileIF OnMarket THENTradeOnL = 0 //una volta a mercato azzerare la variabileTradeOn = 0 //una volta a mercato azzerare la variabileENDIF// Condizioni per entrare longMacdValL = MACD[14,26,9] //valore del MACDIF MacdValL CROSSES OVER 0 THEN //se incrocia al rialzo....TradeOnL = 1 //...settare la variabile per tradare e...TopHigh = highest[10](high) //...salvare il massimo delle ultime 10 candele.ELSIF MacdValL CROSSES UNDER 0 THENTradeOnL = 0 //Se il MACD torna sotto lo 0, annullare tuttoENDIFIF summation[6](MacdValL > 0) = 6 THEN //se il MACD è sopra lo 0 da oltre 5 candele...TradeOnL = 0 //...annullare e ripartire da zero.ENDIFIF TradeOnL THEN //Se condizioni soddisfatte aprire il tradeBUY 1 CONTRACT AT tophigh stopENDIF// Condizioni per uscire da posizioni longindicator3 = MACDline[12,26,9](close)indicator4 = ExponentialAverage[9](indicator3)c2 = (indicator3 CROSSES UNDER indicator4)IF c2 THENSELL AT MARKETENDIF// Condizioni per entrare shortMacdVal = MACD[14,26,9] //valore del MACDIF MacdVal CROSSES UNDER 0 THEN //se incrocia al ribasso....TradeOn = 1 //...settare la variabile per tradare e...TopLow = lowest[10](low) //...salvare il minimo delle ultime 10 candele.ELSIF MacdVal CROSSES OVER 0 THENTradeOn = 0 //Se il MACD torna sopra lo 0, annullare tuttoENDIFIF summation[6](MacdVal < 0) = 6 THEN //se il MACD è sotto lo 0 da oltre 5 candele...TradeOn = 0 //...annullare e ripartire da zero.ENDIFIF TradeOn THEN //Se condizioni soddisfatte aprire il tradeSELLSHORT 1 CONTRACT AT toplow stopENDIF// Condizioni per uscire da posizioni shortindicator7 = MACDline[12,26,9](close)indicator8 = ExponentialAverage[9](indicator7)c4 = (indicator7 CROSSES OVER indicator8)IF c4 THENEXITSHORT AT MARKETENDIFProva così, dovrebbe funzionare.
1 user thanked author for this post.
09/13/2017 at 3:50 PM #4614909/20/2017 at 9:44 AM #46669Gent.mo Roberto oggi ho notato che il sistema, montato sul DAX, si è interrotto automaticamente apparentemente senza motivo. Ti premetto che ho diversi sistemi che girano sul DAX stesso. Ho pensato, tra le possibili cause, che questo sistema si interrompe qualora ha il setup long ma è già aperta una posizione long con un altro sistema. Potrebbe essere? Mi aiuteresti a capire?
09/20/2017 at 10:29 AM #46677Immagino (e spero) sia sul demo.
Purtroppo non c’è molto da capire, è già capitato a me ed altri, anche lunedì e su ben 3 strategie. Sembra sia un problema relativo ai soli conti demo (ma certamente questa cosa non lascia molto tranquilli) in quanto IG e PRT fanno spesso prove magari con modifiche del loro software e può capitare che mandino in tilt il sistema.
Hanno assicurato, anche me via customer care, che in reale ciò non può accadere.
In pratica si tratta quasi sempre del fatto che un ordine, di entrata o di stop ecc… non riesca ad essere eseguito entro un certo lasso di tempo.
Probabilmente non è un grosso problema, se lo desisderi (ed è anche un modo per fargli presente il disguido) puoi chiedergli spiegazioni attraverso il customer care del broker.
09/20/2017 at 10:35 AM #46679 -
AuthorPosts
Find exclusive trading pro-tools on