TS DIVERGENZA
Forums › ProRealTime forum Italiano › Supporto ProOrder › TS DIVERGENZA
- This topic has 9 replies, 2 voices, and was last updated 7 years ago by traderwin.
-
-
10/31/2017 at 3:35 PM #51092
Salve, sono nuovo del forum.
Vorrei chiedervi come faccio in un ts ad implemntare il comando divergenza.
Ad esempio, se io dico al ts di entrare al break di una media, poi come faccio a dirli: entrami al break della media, ma solo quando si verifica una divergenza in un range di n ultime candele (come in foto), su rsi settato a 10-30-70-20
Grazie anticipatamente a chi mi aiuta 🙂
10/31/2017 at 4:43 PM #51101Non ho quell’indicatore, quindi non posso fare prove, puoi dirmi come si chiama ed il link dove trovarlo (oppure lo alleghi in formato testo con copia & incolla, oppure come file .ITF)?
Ho provato a cercare quel nome (Divergenze RSI) nel forum, ma non c’è nbiente con quel nome.
Roberto
10/31/2017 at 4:59 PM #5110210/31/2017 at 5:43 PM #5111111/01/2017 at 12:09 PM #51189L’indicatore che hai allegato è un pò diverso da quello nella tua foto. Io ti allego la foto di quello che hai allegato tu e da cui ho tratto gli esempi.
Ad ogni modo, il nome dell’indicatore serve nella CALL per richiamarlo dall’interno del tuo codice. Non ci sono parametri da indicare tra parentesi nella CALL (se ci fossero basta indicarli nell’ordine corretto). I valori restituiti sono tre:
- 2 = divergenza Rialzista (0 = nessuna divergenza)
- -2 = divergenza Ribassista (0 = nessuna divergenza)
- 0 = zero (questa è la linea dello zero e serve solo visivamente sul grafico, va ignorato nel codice)
Divergenze ed Incrocio Media123456789101112131415// esempio LONGDivergenzaLONG, DivergenzaSHORT, ignored = CALL "Divergences RSX"IF close CROSSES OVER Average[20] THENIF DivergenzaLONG THENBUY 1 CONTRACTS AT MARKETENDIFENDIF// esempio SHORTDivergenzaLONG, DivergenzaSHORT, ignored = CALL "Divergences RSX"IF close CROSSES UNDER Average[20] THENIF DivergenzaSHORT THENSELLSHORT 1 CONTRACTS AT MARKETENDIFENDIFRoberto
11/01/2017 at 12:36 PM #51194ciao roberto, innanzitutto grazie tante.
Il problema che provando il tuo codice, l’entrata il ts me la fa solo quando si verificano entrambi i parametri di ingresso long o short.
Cio che chiedo io è questo: il prezzo brekka al rialzo una media e mi entri in posizione quando nelle precedneti N candele si è verificata una divergenza.
Questo perchè se ad esempio su ungrafico in m5 la divergenza si è verificata alle ore 10:20 e il break della media è avvenuto alle ore 10:30 il ts non entra in posizione, perche’ tiene conto del verificarsi sulla stessa candela sia del brek che della divergenza.
Saluti, Marco
11/01/2017 at 1:17 PM #51197Ho capito, così dovrebbe andare bene (l’ho provato solo per la sintassi, non per la logica):
1234567891011121314151617181920212223242526272829303132333435363738DEFPARAM CumulateOrders = FALSE //Solo un'operazione per volta// inizializzazione variabiliONCE NumeroCandele = 20 //20 candele dopo le quali divergenza annullataONCE DivergenzaIndex = 0ONCE DivergenzaBULL = 0ONCE DivergenzaBEAR = 0// verificare se sono trascorse "n" candele prima di annullare il segnale di divergenzaIF (BarIndex - DivergenzaIndex) >= NumeroCandele THEN //Superato il numero di candele annullare il segnaleDivergenzaBULL = 0DivergenzaBEAR = 0ENDIF// richiamare l'indicatore e settare le variabili di conseguenzaDivergenzaLONG, DivergenzaSHORT, ignored = CALL "Divergences RSX"IF DivergenzaLONG THENDivergenzaIndex = BarIndex //salvare il numero della barra della divergenzaDivergenzaBULL = 1DivergenzaBEAR = 0ENDIFIF DivergenzaSHORT THENDivergenzaIndex = BarIndex //salvare il numero della barra della divergenzaDivergenzaBULL = 0DivergenzaBEAR = 1ENDIF// calcolare la mediaMiaMedia = Average[20,0](close) //sma 20// LONGIF close CROSSES OVER MiaMedia AND DivergenzaBULL THENBUY 1 CONTRACTS AT MARKETENDIF// SHORTIF close CROSSES UNDER MiaMedia AND DivergenzaBEAR THENSELLSHORT 1 CONTRACTS AT MARKETENDIFOvviamente mancano le condizioni per uscire, il TP e lo SL e gli orari di trading. Queste cose le deciderai tu.
Il numero di candele ed il numero di periodi della media mobile li cambierai te secondo la tua strategia.
Per il valore da indicare come secondo parametro nella media mobile (indica che tipo di media vuoi), vedi il link https://www.prorealcode.com/documentation/average/.
11/03/2017 at 11:19 AM #51385Ciao Roberto grazie tante. Ho testato e funziona alla grande:)
Volevo chiederti come impostare un trailing stop a codice in quanto impostando quello classico che è presente sulla piattaforma, il backtest non è reale.
Io li vorrei dire, quando sono long o quando sono short, in apertura di posizione impostami uno stop se long 20 pip sotto e sali il mio stop a ogni due candele che in chiusura hanno realizzato un nuovo massimo.
Tipo se io apro una posizione a 1000 alle 10:30. alle 10:45 si chiude la candela a quota 1040. alle undici se si aprira una candela che in chiusura segnera’ il max della seconda e cioè chiudera’ a 1050 salimi il trailing stop di 20 x pip
11/03/2017 at 3:32 PM #51422Qui puoi trovare il codice creato da Nicolas: https://www.prorealcode.com/blog/trading/complete-trailing-stop-code-function/.
Li puoi vedere anche i dettagli ed il ragionamento che ci sta dietro, comunque le righe complete del codice, pronte per l’uso (puoi inserirle all’inizio della tua strategia, subito dopo l’inizializzazione delle variabili, ma va bene anche in fondo) sono quelle da 17 a 56 che riporto:
Nicolas' Trailing Stop code12345678910111213141516171819202122232425262728293031323334353637383940//************************************************************************//trailing stop functiontrailingstart = 20 //trailing will start @trailinstart points profittrailingstep = 5 //trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF//************************************************************************basta solo che modifichi i due valori 20 (dopo quanti pips vuoi fare partire il trailing stop) e 5 (di quanti pips deve essere l’incremento costante). Tieni presente che questo è codice parte integrante della strategia, quindi viene eseguito SOLO a chiusura della candela, per cui quando questa viene eseguita può darsi che il prezzo sia tornato indietro e quindi non scatta il trailing e magari poi ti va in stop loss, oppure inizia il trailing dopo molti più pips! Purtroppo finché non sarà disponibile la versione multitimeframe ci sarà questo handicap.
Spero ti sia d’aiuto.
11/03/2017 at 3:53 PM #51428 -
AuthorPosts
Find exclusive trading pro-tools on