Finalmente ce l’ho fatta.
Questa è la versione che verifica gli incroci alla chiusura della candela da 2 minuti. Verifica che vada bene così. Se va bene la modifico per fare in modo che la verifica sia fatta su un time frame più basso.
Ho mantenutu tutte e 3 lecondizioni, quella originale con l’ADX, quella conl’incrocio delle Envelopes DOPO il ritracciamento e quella con l’incrocio contemporaneo del ST e delle ENVELOPES (senza attendere il ritracciamento):
// SuperTrend & Envelopes
//
//https://www.prorealcode.com/topic/ritracciamento-supertrend-2-minuti/page/2/#post-185761
//
DEFPARAM CumulateOrders = false
Defparam Flatbefore=010000
Defparam Flatafter=220000
ONCE CrossOver = 0
ONCE CrossUnder = 0
ONCE FlagL = 0
ONCE FlagS = 0
ONCE IncrocioSU = 0
ONCE IncrocioGIU= 0
ONCE Ritracciato= 0
Bullish = close > open
Bearish = close < open
ST = Supertrend[3,10]
MyAdx = adx[5]>= 20
Avg = average[20,0](close)
PerCent = Avg / 100 * 0.5 //0.5% di distanza delle bande
BandaSUP = Avg + PerCent
BandaINF = Avg - PerCent
IF close CROSSES OVER ST THEN
CrossOver = 1
IncrocioL = close
Ritracciato= 0
FlagL = 0
CrossUnder = 0
IncrocioS = 9999999
FlagS = 0
ENDIF
IF CrossOver THEN
IF close > IncrocioL THEN
CrossOver = 0
FlagL = 0
ELSIF close < IncrocioL THEN
FlagL = 1
ENDIF
ENDIF
IF close CROSSES UNDER ST THEN
CrossUnder = 1
IncrocioS = close
Ritracciato= 0
FlagS = 0
CrossOver = 0
IncrocioL = 0
FlagL = 0
ENDIF
IF CrossUnder THEN
IF (close < IncrocioS) AND (IncrocioS <> 9999999) THEN
CrossUnder = 0
FlagS = 0
ELSIF (close > IncrocioS) AND (IncrocioS <> 9999999) THEN
FlagS = 1
ENDIF
ENDIF
//
IF low <= IncrocioL THEN
Ritracciato = 1
ENDIF
IF high >= IncrocioS THEN
Ritracciato = 1
ENDIF
//
CondL1 = Not OnMarket AND CrossOver AND FlagL AND Bullish AND MyAdx
CondL2 = Not OnMarket AND IncrocioL AND Ritracciato AND close CROSSES OVER BandaSUP
CondL3 = Not OnMarket AND CrossOver AND close CROSSES OVER BandaSUP
IF CondL1 OR CondL2 OR CondL3 THEN
BUY 1 Contract AT Market
Ritracciato = 0
ENDIF
//
CondS1 = Not OnMarket AND CrossUnder AND FlagS AND Bearish AND MyAdx
CondS2 = Not OnMarket AND IncrocioL AND Ritracciato AND close CROSSES UNDER BandaINF
CondS3 = Not OnMarket AND CrossUnder AND close CROSSES UNDER BandaINF
IF CondS1 OR CondS2 OR CondS3 THEN
SELLSHORT 1 Contract AT Market
Ritracciato = 0
ENDIF
//
IF LongOnMarket AND CROSSUNDER THEN
SELL AT MARKET
ENDIF
IF ShortOnMarket AND CROSSOVER THEN
EXITSHORT AT MARKET
ENDIF
//SET STOP pLOSS 50
//
//graph CrossOver
//graph CrossUnder
//graph IncrocioS
//graph IncrocioL
Grazie Roberto, sembra funzionare bene, visto che apre una marea di posizione è possibile sostituire evelopes con un doppio supertrend? magari togliere adx?
Come vuoi usare i due ST?
praticamente il prezzo supera al rialzo il primo supertrend poi ripiega e quando supera al rialzo il secondo entra a mercato, una cosa del genere
Prova questo (ho aggiunto una quarta condizione, un incrocio dei due SuperTrend):
// SuperTrend & Envelopes
//
//https://www.prorealcode.com/topic/ritracciamento-supertrend-2-minuti/page/2/#post-185761
//
DEFPARAM CumulateOrders = false
Defparam Flatbefore=010000
Defparam Flatafter=220000
ONCE CrossOver = 0
ONCE CrossUnder = 0
ONCE FlagL = 0
ONCE FlagS = 0
ONCE IncrocioSU = 0
ONCE IncrocioGIU= 0
ONCE Ritracciato= 0
Bullish = close > open
Bearish = close < open
ST = Supertrend[3,10]
ST2 = Supertrend[4,30]
MyAdx = adx[5]>= 20
Avg = average[20,0](close)
PerCent = Avg / 100 * 0.5 //0.5% di distanza delle bande
BandaSUP = Avg + PerCent
BandaINF = Avg - PerCent
IF close CROSSES OVER ST THEN
CrossOver = 1
IncrocioL = close
Ritracciato= 0
FlagL = 0
CrossUnder = 0
IncrocioS = 9999999
FlagS = 0
ENDIF
IF CrossOver THEN
IF close > IncrocioL THEN
CrossOver = 0
FlagL = 0
ELSIF close < IncrocioL THEN
FlagL = 1
ENDIF
ENDIF
IF close CROSSES UNDER ST THEN
CrossUnder = 1
IncrocioS = close
Ritracciato= 0
FlagS = 0
CrossOver = 0
IncrocioL = 0
FlagL = 0
ENDIF
IF CrossUnder THEN
IF (close < IncrocioS) AND (IncrocioS <> 9999999) THEN
CrossUnder = 0
FlagS = 0
ELSIF (close > IncrocioS) AND (IncrocioS <> 9999999) THEN
FlagS = 1
ENDIF
ENDIF
//
IF low <= IncrocioL THEN
Ritracciato = 1
ENDIF
IF high >= IncrocioS THEN
Ritracciato = 1
ENDIF
//
CondL1 = Not OnMarket AND CrossOver AND FlagL AND Bullish AND MyAdx
CondL2 = Not OnMarket AND IncrocioL AND Ritracciato AND close CROSSES OVER BandaSUP
CondL3 = Not OnMarket AND CrossOver AND close CROSSES OVER BandaSUP
CondL4 = Not OnMarket AND ST CROSSES OVER ST2
IF CondL1 OR CondL2 OR CondL3 OR CondL4 THEN
BUY 1 Contract AT Market
Ritracciato = 0
ENDIF
//
CondS1 = Not OnMarket AND CrossUnder AND FlagS AND Bearish AND MyAdx
CondS2 = Not OnMarket AND IncrocioL AND Ritracciato AND close CROSSES UNDER BandaINF
CondS3 = Not OnMarket AND CrossUnder AND close CROSSES UNDER BandaINF
CondS4 = Not OnMarket AND ST CROSSES UNDER ST2
IF CondS1 OR CondS2 OR CondS3 OR CondS4 THEN
SELLSHORT 1 Contract AT Market
Ritracciato = 0
ENDIF
//
IF LongOnMarket AND CROSSUNDER THEN
SELL AT MARKET
ENDIF
IF ShortOnMarket AND CROSSOVER THEN
EXITSHORT AT MARKET
ENDIF
//SET STOP pLOSS 50
//
//graph CrossOver
//graph CrossUnder
//graph IncrocioS
//graph IncrocioL
Scusa Roberto vorrei fare qualche cambiamento, dovrebbe utilizzare solo 2 supertrend
praticamente l’ingresso deve avvenire quando il supertrend a lungo è rialzista e il supertrend a breve diventa rialzista solo se l’incrocio tra prezzo e supertrend avviene più in basso rispetto all’incrocio tra prezzo e supertrend a lungo, per lo short avviene tutto al contrario, tutto questo deve avvenire per il long sopra la chiusura della candela a 4 ore precedente, per lo short sotto la chiusura della candela a 4 ore.
Grazie
La parte dove ti dico del minimo e il massimo la puoi non considerare
Mi servono alcuni chiarimenti:
- l’ingresso deve avvenire quando il supertrend a lungo è rialzista e il supertrend a breve diventa rialzista
cosa intendi per supetrend rialzista, a) che è sotto il prezzo, oppure b) basta che sia maggiore rispetto alla candela precedente?
.
- solo se l’incrocio tra prezzo e supertrend avviene più in basso rispetto all’incrocio tra prezzo e supertrend a lungo
puoi chiarire meglio questa condizione, magari con un esempio o con una foto?
.
- tutto questo deve avvenire per il long sopra la chiusura della candela a 4 ore precedente
è l’ultima candela H4 chiusa, oppure quella ancora precedente?
Cerco di fare un esempio con una foto
Spero cosi sia più chiaro, come dicevo se pioi togliere adx e evelopes, al posto loro ho inserito il sar
Quali sono i settaggi dei due supertrend?
Nelle foto ti spiace togliera ogni cosa estranea ai due supetrend e commentare in modo più dettagliato i vari punti che t’interessa evidenziare come condizioni, meglio indicandone in ordine cronologico con 1, 2, 3, ecc… (basta un solo esempio, Long o Short che sia, tanto l’altro è l’opposto).
Se riesci a rispondere anche alle domande precedenti è meglio, altrimenti ogni volta si rischia di aggiungere domande ad altre domande.
I settaggi sono :
supertrend lungo 8,10
supertrend breve 2,20
Gli ingressi devono avvenire, quando il supertrend lungo è gia rialzista quindi prezzo sopra supertrend, e il supertrend a breve diventa rialzista, quindi incrocio rialzista del prezzo, però l’incrocio con il supertrend a breve deve avvenire a un prezzo più basso rispetto all’incrocio con il supertrend a lungo.
Magari meglio se l’ingresso avviene direttamente sul punto di incrocio e non alla chiusura della candela(magari utilizzando un time frame inferiore).
Eccolo (io ho fatto qualche verifica superficiale e sembra funzioni, ma verifica meglio tu):
// SuperTrend
//
//https://www.prorealcode.com/topic/ritracciamento-supertrend-2-minuti/page/2/#post-185761
//
DEFPARAM CumulateOrders = false
Defparam Flatbefore = 010000
Defparam Flatafter = 220000
Timeframe(4h,UpdateOnClose)
H4close = close[1]
//
Timeframe(4h,default)
ONCE IncrocioST = 0
ONCE IncrocioST2 = 0
ST = Supertrend[2,20] //2,20
ST2 = Supertrend[8,10] //8,10
ST2rialzista = close > ST2
ST2ribassista = close < ST2
IF close CROSSES OVER ST2 OR close CROSSES UNDER ST2 THEN
IncrocioST2 = close
ENDIF
IF close CROSSES OVER ST OR close CROSSES UNDER ST THEN
IncrocioST = close
ENDIF
CondL1 = Not OnMarket
CondL2 = close > H4close
CondL3 = IncrocioST < IncrocioST2
CondL4 = ST2rialzista
CondL5 = Not OnMarket
CondL6 = close CROSSES OVER ST
CondL = CondL1 AND CondL2 AND CondL3 AND CondL4 AND CondL5 AND CondL6
IF CondL THEN
BUY 1 Contract AT Market
ENDIF
//
CondS1 = CondL1
CondS2 = close < H4close
CondS3 = IncrocioST > IncrocioST2
CondS4 = ST2ribassista
CondS5 = CondL5
CondS6 = close CROSSES UNDER ST
CondS = CondS1 AND CondS2 AND CondS3 AND CondS4 AND CondS5 AND CondS6
IF CondS THEN
SELLSHORT 1 Contract AT Market
ENDIF
//
Timeframe(default)
//SET STOP pLOSS 50
//graphonprice ST coloured(255,0,0,255) AS "SuperTrend Veloce"
//graphonprice ST2 coloured(0,0,255,255) AS "SuperTrend Lento"