Scusami per non averti potuto rispondere prima.
Devo rileggermi un pò tutto a “rientrare” mentalmente nella strategia.
Dammi ancora qualche giorno. Grazie.
Scusami ancora per il ritardo, prova questa versione:
defparam cumulateorders = false
//defparam flatbefore = 070000
//defparam flatafter = 210000
once signal=0
//once signal2=0
Media = Average[3](close)[3]
//BarreMedia = 5
BarreCC = 20
timeon= time> 080000 and time < 205500
mycc=-200
myccS=200
ONCE CCIbarindex = 0
ONCE CCICrossOver = 0
ONCE CCICrossUnder = 0
ONCE MediaCrossOver = 0
ONCE MediaCrossUnder = 0
myCCI=cci[136](close)
cc=MyCCI crosses over mycc
if cc then
CCICrossOver = 1
CCICrossUnder = 0
MediaCrossOver = 0
MediaCrossUnder = 0
signal=1
CCIbarindex=BarIndex
endif
IF CCICrossOver THEN
IF MediaCrossOver = 0 THEN
MediaCrossOver = close CROSSES OVER Media
ELSIF MediaCrossUnder = 0 THEN
MediaCrossUnder = close CROSSES UNDER Media
ENDIF
ENDIF
IF signal THEN
IF MyCCI crosses under mycc THEN
signal = 0
CCICrossOver = 0
CCICrossUnder = 0
MediaCrossOver = 0
MediaCrossUnder = 0
ELSIF (Barindex - CCIbarindex) > BarreCC THEN
signal = 0
CCICrossOver = 0
CCICrossUnder = 0
MediaCrossOver = 0
MediaCrossUnder = 0
ENDIF
ENDIF
IF MyCCI >= 0 THEN
signal = 0
endif
if onmarket then
signal=0
endif
if signal>0 then
Cond = (close crosses over media) AND MediaCrossOver AND MediaCrossUnder
EntryLong = high
endif
if Cond and timeon and Not OnMarket and close > EntryLong then
SL= (close - lowest[30](low)) / pipsize
buy 1 contract at market
set stop ploss SL
set target pprofit SL
signal=0
EntryLong = 999999
endif
//////////SHORT///
once signalSHORT=0
ccS=MyCCI crosses UNDER myccS
if ccS then
CCICrossOver = 0
CCICrossUnder = 1
MediaCrossOver = 0
MediaCrossUnder = 0
signalSHORT=1
CCIbarindex=BarIndex
endif
IF CCICrossUnder THEN
IF MediaCrossUnder = 0 THEN
MediaCrossUnder = close CROSSES UNDER Media
ELSIF MediaCrossOver = 0 THEN
MediaCrossOver = close CROSSES OVER Media
ENDIF
ENDIF
IF signalSHORT THEN
IF MyCCI crosses over myccS THEN
signalSHORT = 0
CCICrossOver = 0
CCICrossUnder = 0
MediaCrossOver = 0
MediaCrossUnder = 0
ELSIF (Barindex - CCIbarindex) > BarreCC THEN
signalSHORT = 0
CCICrossOver = 1
CCICrossUnder = 0
MediaCrossOver = 0
MediaCrossUnder = 0
ENDIF
ENDIF
IF MyCCI <= 0 THEN
signalSHORT = 0
endif
if onmarket then
signalSHORT=0
endif
if signalSHORT>0 then
CondS = (close crosses under media) AND MediaCrossOver AND MediaCrossUnder
EntryShort = low
endif
if CondS and timeon and Not OnMarket and close < EntryShort then
SLS= (HIGHEST[30](high)- close) / pipsize
SELLSHORT 1 contract at market
set stop ploss SLS
set target pprofit SLS
signalSHORT= 0
EntryShort = 0
endif
IF ONMARKET AND TIME >=222000 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
//graph signal
//graph signalSHORT
//graph CCICrossOver
//graph CCICrossUnder
//graph MediaCrossOver
//graph MediaCrossUnder
//graph CCIBarindex
//graph barindex - CCIbarindex
Roberto, assolutamente sono io che devo scusarmi con te che approfitto della tua gentilezza!
Ho sviluppato un idea, avvenuto il doppio rientro si tira fibonacci tra il minimo/massimo ed il massimo minimo relativo + alto avvenuto tra l’uscita ed il break e si compra li!
Ti consiglio di provarlo!
in verita’ il sistema funzionerebbe meglio se ciò avvenisse a determinati livelli di prezzo calcolati sull’atr daily ! se riesco a scriverlo lo postero qui
Se puoi anche allegare una foto per capire meglio, l’apprezzerei.
Grazie,
@robertogozzi, volevo ancora ringraziarti per l’aiuto datomi in passato vorrei chiederti pero un altro piccolo supporto. il sistema ho provato a configurarlo io come illustrato nella foto pero alcuni trade vengono fatti anche se non sarebbero dovuti avvenire. ti allego il codice ed un esempio.
defparam cumulateorders = false
defparam flatbefore = 070000
once signal=0
tradeshort=0
///2 BREAKEAVEN///////////
once breakeaven = 0
startBreakeven = 60
PointsToKeep = 50
ONCE logictrailing=0
TGL =15
TGS=70
Media = Average[3](close)[3]
BarreMedia = 40
BarreCC = 20
timeon= time> 130000 and time < 185500
mycc=-200
myccS=200
tpS=70
ONCE CCIbarindex = 0
////////////STRATEGIA/////////////////////////////////
avt=averagetruerange[14]
ignored, ignored, ignored, ignored, ignored, COMPOM = CALL "Composite momentum"[4, 3, 9]
filtro=(compom<49) and avt>5.2
filtros=(compom>-25) and avt>7.1
MyCCI=cci[136](close)
cc=MyCCI crosses over mycc
if cc then
signal=1
CCIbarindex=BarIndex
endif
IF signal THEN
IF (Barindex - CCIbarindex) > BarreCC THEN
signal = 0
SEGNALELONG=0
ENDIF
ENDIF
IF MyCCI >= 0 THEN
signal = 0
SEGNALELONG=0
endif
if onmarket then
signal=0
SEGNALELONG=0
endif
if signal>0 then
Rialzo = summation[BarreMedia - 1](close > Media)
Ribasso = summation[BarreMedia - 1](close[1] CROSSES UNDER Media[1])
Rialzo2 = (close crosses over media)
Cond = Rialzo AND Ribasso AND Rialzo2
if Cond then
SEGNALELONG=1
FIB=LOWEST[10](LOW)+((HIGHEST[10](HIGH)) - (LOWEST[10](LOW)))*0.52
GRAPH FIB
SL= (close - lowest[30](low)) / pipsize
TPL=((HIGHEST[10](HIGH)) - (LOWEST[10](LOW)))*1.7
graphonprice tpl+fib
IF SEGNALELONG AND timeon and filtro AND CLOSE>MEDIA THEN
buy 5 contract AT FIB LIMIT
set stop ploss SL
set target pprofit TPL//SL*3.2
signal=0
endif
endif
endif
//////////SHORT///
once signalSHORT=0
ccS=MyCCI crosses UNDER myccS
if ccS then
signalSHORT=1
CCIbarindex=BarIndex
endif
IF signalSHORT THEN
IF (Barindex - CCIbarindex) > BarreCC THEN
signalSHORT = 0
ENDIF
ENDIF
IF MyCCI <= 0 THEN
signalSHORT = 0
endif
if onmarket then
signalSHORT=0
endif
if tradeshort=1 then
if signalSHORT>0 then
RialzoS = summation[BarreMedia - 1](close < Media)
RibassoS = summation[BarreMedia - 1](close[1] CROSSES OVER Media[1])
Rialzo2S = (close crosses UNDER media)
CondS = RialzoS AND RibassoS AND Rialzo2S
if CondS and timeon and filtros then
SLS= (HIGHEST[30](high)-close) / pipsize
SELLSHORT 5 contract at market
set stop ploss SLS
set target pprofit tpS
signalSHORT=0
endif
endif
ENDIF
IF ONMARKET AND TIME >=213000 THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
///2///////////////////////////////////////////////
//reset the breakevenLevel when no trade are on market
if breakeaven>0 then
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF
// --- BUY SIDE ---
//test if the price have moved favourably of "startBreakeven" points already
IF LONGONMARKET AND close-tradeprice(1)>=startBreakeven*pipsize THEN
//calculate the breakevenLevel
breakevenLevel = tradeprice(1)+PointsToKeep*pipsize
ENDIF
//place the new stop orders on market at breakevenLevel
IF breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
// --- end of BUY SIDE ---
IF SHORTONMARKET AND tradeprice(1)-close>startBreakeven*pipsize THEN
//calculate the breakevenLevel
breakevenLevel = tradeprice(1)-PointsToKeep*pipsize
ENDIF
//place the new stop orders on market at breakevenLevel
IF breakevenLevel>0 THEN
EXITSHORT AT breakevenLevel STOP
ENDIF
endif
///5logic trailing ale
// LOGIC TRAILING STOP
//RESET
IF NOT ONMARKET THEN
MAXPRICE = 0
MINPRICE = CLOSE
PREZZOUSCITA = 0
ENDIF
if logictrailing>0 then
//SE LONG ALLORA:
IF LONGONMARKET THEN
MAXPRICE = MAX(MAXPRICE,CLOSE) //SAVING THE MFE OF THE CURRENT TRADE
IF MAXPRICE-TRADEPRICE(1)>=TGL*POINTSIZE THEN //IF THE MFE IS HIGHER THAN THE TRAILINGSTOP THEN
PREZZOUSCITA = MAXPRICE-TGL*POINTSIZE //SET THE EXIT PRICE AT THE MFE - TRAILING STOP PRICE LEVEL
ENDIF
ENDIF
IF SHORTONMARKET THEN
MINPRICE = MIN(MINPRICE,CLOSE) //SAVING THE MFE OF THE CURRENT TRADE
IF TRADEPRICE(1)-MINPRICE>=TGS*POINTSIZE THEN //IF THE MFE IS HIGHER THAN THE TRAILINGSTOP THEN
PREZZOUSCITA = MINPRICE+TGS*POINTSIZE //SET THE EXIT PRICE AT THE MFE + TRAILING STOP PRICE LEVEL
ENDIF
ENDIF
//EXIT ON TRAILING STOP PRICE LEVELS
IF ONMARKET AND PREZZOUSCITA>0 THEN
EXITSHORT AT PREZZOUSCITA STOP
SELL AT PREZZOUSCITA STOP
ENDIF
endif
Un’altra cosa volevo chiederti. Per favore non usare @ quando ti riferisci ad un utente che ricevo sempre ogni comunicazione per i post a cui almeno una volta ho risposto, altrimenti mi arrivano due email identiche.
Generalmente si usa @ per fare riferimento ad un utente in discussioni cui partecipano molte persone, in modo che il destinatario sappia che quel post è rivolto a lui.
Grazie 🙂
si è un dax 5 minuti l’entrata è errata perchè il CCI 136 periodi non è mai rientrato da -200 quindi non mi spiego
Dimmi anche la data e l’ora della candela incriminata.
Roberto, assolutamente sono io che devo scusarmi con te che approfitto della tua gentilezza! Ho sviluppato un idea, avvenuto il doppio rientro si tira fibonacci tra il minimo/massimo ed il massimo minimo relativo + alto avvenuto tra l’uscita ed il break e si compra li! Ti consiglio di provarlo! in verita’ il sistema funzionerebbe meglio se ciò avvenisse a determinati livelli di prezzo calcolati sull’atr daily ! se riesco a scriverlo lo postero qui
la candela di quella foto è di venerdi 18 ottobre alle ore 16.55
Ce ne sono diverse, ad esempio 8 novembre 2019, il cci è stato a -200 nella notte ben oltre le 20 barre. come mai invece è entrato long il sistema alle ore 16.20 ?
Che sia possibile che la funziona Defparamflatbefore crei problemi? oppure il preload bar infici gli indicatori?Anche il trade del 5 novembre alle 16.55 è errato. E’ vero che il CCI è rientrato da -200 ma il prezzo non è tornato sotto la media 3×3 quindi nemmeno doveva calcolare il prezzo di entrata (50% tra minimo segnato con cci sotto 200 e massimo prima di rientrare sotto la media 3×3.
(infatti io sto cercando di fare questa modifica che segnalai:
Roberto, assolutamente sono io che devo scusarmi con te che approfitto della tua gentilezza!
Ho sviluppato un idea, avvenuto il doppio rientro si tira fibonacci tra il minimo/massimo ed il massimo minimo relativo + alto avvenuto tra l’uscita ed il break e si compra li!
Ti consiglio di provarlo!
in verita’ il sistema funzionerebbe meglio se ciò avvenisse a determinati livelli di prezzo calcolati sull’atr daily ! se riesco a scriverlo lo postero qui)
Darò un’occhiata dopo il fine settimana.
Grazie. è come se non azzerasse il segnale dopo le barre limite
Ciao, sei per caso riuscito a darci un occhiata?