SISTEMA DELLE TRE CANDELE CONSECUTIVE
Forums › ProRealTime forum Italiano › Supporto ProOrder › SISTEMA DELLE TRE CANDELE CONSECUTIVE
- This topic has 41 replies, 3 voices, and was last updated 4 years ago by Gaspare.
Tagged: 3 candele
-
-
05/28/2019 at 11:16 AM #99582
buongiorno a tutti
se possibile avere un sistema automatico che apra e chiuda posizioni dopo 3 candele consecutive dello stesso colore, cioè:
long dopo 3 candele rosse consecutive con minimi crescenti e stop loss, da definire, sotto il minimo dell’ultima candela
short dopo 3 candele verdi consecutive con massimi crescenti e stop loss, da definire, sopra il massimo dell’ultima candela.
il TF lo si sceglie come si vuole.
Grazie per la vostra gentile collaborazione
05/28/2019 at 11:43 AM #99585Quelle rosse con MINIMI CRESCENTI o decrescenti?
05/28/2019 at 11:49 AM #99586Per la chiusura attende che si verifichino le condizioni opposte, se entra dopo 3 candele ROSSE esce quando ve ne saranno 3 VERDI e viceversa?
05/28/2019 at 12:29 PM #9958705/28/2019 at 12:34 PM #99588no, per la chiusura del trade pensavo a un trailing stop che ho trovato in bibblioteca
da ottimizzare assieme allo stop loss
Grazie
12345678910111213141516171819202122232425262728set stop ploss X//trailing stoptrailingstop = Y//resetting variables when no trades are on marketif not onmarket thenMAXPRICE = 0MINPRICE = closepriceexit = 0endif//case SHORT orderif shortonmarket thenMINPRICE = MIN(MINPRICE,close) //saving the MFE of the current tradeif tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price levelendifendif//case LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendif05/28/2019 at 3:26 PM #99607Eccola:
1234567891011121314151617ONCE CandleNum = 3Bullish = summation[CandleNum](close > open) = CandleNumBearish = summation[CandleNum](close < open) = CandleNumHigherHIGHs = (summation[CandleNum - 1](high > high[1]) = (CandleNum - 1))LowerLOWs = (summation[CandleNum - 1](low < low[1]) = (CandleNum - 1))IF Bearish AND LowerLOWs AND Not OnMarket THENBUY 1 CONTRACT AT MARKETSl = max(10,(close - low) / pipsize)Tp = Sl * 3ENDIFIF Bullish AND HigherHIGHs AND Not OnMarket THENSELLSHORT 1 CONTRACT AT MARKETSl = max(10,(high - close) / pipsize)Tp = Sl * 1.5ENDIFSET STOP pLOSS SlSET TARGET pPROFIT TpAlle righe 8 e 13 ho messo la funzione MAX con un numero di pips minimi (tu metti la cifra che vuoi), perché può capitare che CLOSE possa essere uguale a LOW o HIGH, nel qual caso lo SL sarebbe = 0, come pure il TP, quindi entrerebbe a mercato SENZA più uscire, oppure uscendo in MARGIN CALL.
In fondo bast che aggiungi il codice del trailing stop ed è fatta. Il TP puoi anche toglierlo, se vuoi.
05/30/2019 at 11:12 PM #99734salve Roberto
cortesemente puoi provarlo anche tu perchè mi sembra che qualcovsa non vada.
Ho testato il sistema non a TF temporali, ma a quantita’ di TICKS, con candele da 50, 100, 200, ecc.
e la posizione resta aperta per diverse candele successive sino a quando non scatta lo stop loss.
Grazie
1234567891011121314151617181920212223242526272829303132333435363738394041424344ONCE CandleNum = 3Bullish = summation[CandleNum](close > open) = CandleNumBearish = summation[CandleNum](close < open) = CandleNumHigherHIGHs = (summation[CandleNum - 1](high > high[1]) = (CandleNum - 1))LowerLOWs = (summation[CandleNum - 1](low < low[1]) = (CandleNum - 1))IF Bearish AND LowerLOWs AND Not OnMarket THENBUY 1 CONTRACT AT MARKETSl = max(X,(close - low) / pipsize)ENDIFIF Bullish AND HigherHIGHs AND Not OnMarket THENSELLSHORT 1 CONTRACT AT MARKETSl = max(X,(high - close) / pipsize)ENDIFSET STOP pLOSS Sl//trailing stoptrailingstop = Y//resetting variables when no trades are on marketif not onmarket thenMAXPRICE = 0MINPRICE = closepriceexit = 0endif//case SHORT orderif shortonmarket thenMINPRICE = MIN(MINPRICE,close) //saving the MFE of the current tradeif tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price levelendifendif//case LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendif05/30/2019 at 11:23 PM #99735Certo, non hai messo nessun Target Profit!
07/16/2019 at 9:37 AM #102649cand cons TP SL TLS1234567891011121314151617181920212223242526272829303132333435363738394041424344ONCE CandleNum = CBullish = summation[CandleNum](close > open) = CandleNumBearish = summation[CandleNum](close < open) = CandleNumHigherHIGHs = (summation[CandleNum - 1](high > high[1]) = (CandleNum - 1))LowerLOWs = (summation[CandleNum - 1](low < low[1]) = (CandleNum - 1))IF Bearish AND LowerLOWs AND Not OnMarket THENBUY 1 CONTRACT AT MARKETSl = max(S,(close - low) / pipsize)Tp = Sl * MENDIFIF Bullish AND HigherHIGHs AND Not OnMarket THENSELLSHORT 1 CONTRACT AT MARKETSl = max(S,(high - close) / pipsize)Tp = Sl * MENDIFSET STOP pLOSS SlSET TARGET pPROFIT Tp//trailing stoptrailingstop = T//resetting variables when no trades are on marketif not onmarket thenMAXPRICE = 0MINPRICE = closepriceexit = 0endif//case SHORT orderif shortonmarket thenMINPRICE = MIN(MINPRICE,close) //saving the MFE of the current tradeif tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price levelendifendif//case LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendifciao Roberto
il TS finale, secondo me
da ottimizzare le variabili
C da 1 a 5 passo 1
S da 5 a 200 passo 5
M da 1 a 5 passo 1
T da 1 a 10 passo 1, oppure da 5 a 50 passo 5, oppure da 10 a 100 passo 10, ecc.
Mi dai un tuo parere?
Grazie
07/16/2019 at 10:55 AM #102657Devi dirmi indicarmi te i valori per te ottimali, purtroppo non ho il tempo per fare prove di ottimizzazione.
07/22/2019 at 10:18 AM #103095buongiorno, ciao Roberto
una domanda da neofita:
dopo l’ottimizzazione si attiva subito il TS?
oppure si deve aspettare la chiusura della posizione ancora aperta nella simulazione?
mi spiego meglio:
ottimizzate le variabili del TS inserisco i valori e se non ci sono posizioni aperte attivo il TS, ma se c’è una posizione aperta devo attendere che si chiuda?
Secondo me, se attivo con posizione aperta, viene compromesso il risultato finale, perchè non conforme con lo storico parziale esaminato, da inizio a fine periodo preso in esame.Forse bisogna inserire una riga o piu’ di codice, affinche’ il TS si attivi in automatico dopo la chiusura del trade precedente?
Grazie07/22/2019 at 11:44 AM #103098Se per attivare intendi esguire la strategia non in backtest, ma realmente (su conto demo o reale) puoi eseguirla quando vuoi, basta che la esegui con ProOrder in autotrading. Le due cose possono coesistere, anzi, puoi tenere anche più strategie aperte contemporaneamente in backtest.
Ad ogni modo interrompare il backtest non falsa niente, quando vuoi lo fai ripartire ed ottieni gli stessi risultati (salvo nel frattempo siano scomparse entrate vecchie ed apparse quelle nuove). Ogni backtest può sempre essere falsato, perché tra dieci giorni, come ho detto, alcune delle prime operazioni possono essere scomparse ed altre nuove apparse.
Lo scopo del backtest è darti l’idea della bontà, o meno, della strategia, non sostituire esattamente quello che accade nella realtà.
08/18/2019 at 7:34 PM #105022Mini dax 1 minuto1234567891011121314151617181920212223242526272829303132333435363738394041424344ONCE CandleNum = 4Bullish = summation[CandleNum](close > open) = CandleNumBearish = summation[CandleNum](close < open) = CandleNumHigherHIGHs = (summation[CandleNum - 1](high > high[1]) = (CandleNum - 1))LowerLOWs = (summation[CandleNum - 1](low < low[1]) = (CandleNum - 1))IF Bearish AND LowerLOWs AND Not OnMarket THENBUY 1 CONTRACT AT MARKETSl = max(20,(close - low) / pipsize)Tp = Sl * 3ENDIFIF Bullish AND HigherHIGHs AND Not OnMarket THENSELLSHORT 1 CONTRACT AT MARKETSl = max(20,(high - close) / pipsize)Tp = Sl * 3ENDIFSET STOP pLOSS SlSET TARGET pPROFIT Tp//trailing stoptrailingstop = 10//resetting variables when no trades are on marketif not onmarket thenMAXPRICE = 0MINPRICE = closepriceexit = 0endif//case SHORT orderif shortonmarket thenMINPRICE = MIN(MINPRICE,close) //saving the MFE of the current tradeif tradeprice(1)-MINPRICE>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MINPRICE+trailingstop*pointsize //set the exit price at the MFE + trailing stop price levelendifendif//case LONG orderif longonmarket thenMAXPRICE = MAX(MAXPRICE,close) //saving the MFE of the current tradeif MAXPRICE-tradeprice(1)>=trailingstop*pointsize then //if the MFE is higher than the trailingstop thenpriceexit = MAXPRICE-trailingstop*pointsize //set the exit price at the MFE - trailing stop price levelendifendif//exit on trailing stop price levelsif onmarket and priceexit>0 thenEXITSHORT AT priceexit STOPSELL AT priceexit STOPendifInnanziutto grazie peril codice.Ho provato a inserire le variabili usando un timeframe a 1 minuto ma analizzando il grafico ho notato e non ho capito alcune cose
Nello screen 1 c’è una mancata entrata short con discesa di 45 pips e una mancata entrata long di circa 80 pips e addirittura una entrata short durante la fase rialzista.
Nello screen 2 un’entrata short in ritardo e un’entrata short nella fase rialzista.
Nello screen 3 una mancata entrata long mancata entrata short e un’entrata long nella fase ribassista.
Qualcuno mi può gentilmente aiutare a correggere questo codice ? mi interessa molto
Grazie
08/18/2019 at 11:36 PM #105037Per verificare le operazioni serve la data e l’ora della candela d’entrata.
08/19/2019 at 7:18 AM #105040Questo è il rimo screenshoot con gli orari
-
AuthorPosts
Find exclusive trading pro-tools on