Buongiorno chiedo aiuto per strategia che non mi entra al riassorbimento del max day precedente con le condizioni imposte:
t.f. 1 minuto. NQ future. Allego schema per capire l’entry, il target e le condizioni ect.
Allego codice errato.
defparam cumulateorders=false
defparam flatafter = 220000
// Limitare TS ad 1 solo ordine al giorno
ONCE TradeOn = 1 //abilitare il trading per default
IF IntradayBarIndex = 0 THEN
TradeOn = 1 //abilitare il trading all'inizio di ogni giorno
ENDIF
//---TF Daily
TIMEFRAME(Daily)
SFMin = 13*POINTSIZE
SFMax = 40*POINTSIZE
TIMEFRAME(default)
IF not onmarket AND (high > (Dhigh(1)+SFmin)) AND (high <= (Dhigh(1) + SFMax)) AND TradeOn THEN
EntryPrice = dHigh(1) // Prezzo di ingresso
stoplevel = EntryPrice + SFMax
// Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
TakeProfit = EntryPrice - (stoplevel - EntryPrice)
SELLSHORT 1 CONTRACT AT dHigh(1) STOP
set stop price stoplevel
set target price TakeProfit
TradeOn = 0 //disabilitare il trading dopo la prima operazione
ENDIF
/////////////////////////////////////////////////
graphonprice stoplevel as "StopLoss" coloured ("red")
graphonprice (Dhigh(1)+SFmin) as "SFmin x entry" coloured ("orange")
graphonprice EntryPrice as "EntryPrice"coloured("lime")
graphonprice TakeProfit as "TakeProfit"coloured("blue")
graphonprice Dhigh(1) as "PDH"coloured("black")
Vorrei delucidazioni sulla tua foto:
- Condizione Soddisfatta: qual’è questa condizione?
- Cond 1: questa è la condizione al verificarsi della quale si piazza un ordine SHORT pendente (STOP in questo caso)?
- Cond 2: questa condizione per cosa va usata?
Condizione 1 (Sforamento Minimo): Il prezzo deve superare il massimo del giorno precedente + 13 pointsize
Condizione 2 (Sforamento Massimo): Il prezzo non deve superare il massimo del giorno precedente + 40 pointsize.
Condizione 3: solo una operazione al giorno.
Condizione di Entrata:
L’ingresso short si verifica quando il prezzo (con le successive candele) ritraccia fino al massimo del giorno precedente dopo aver soddisfatto le condizioni di sforamento.
Impostazione dell’Ordine:
Un ordine Short di tipo STOP viene attivato quando il prezzo tocca il massimo del giorno precedente al prezzo = al massimo del giorno precedente.
Stop Loss: Posizionato allo sforamento massimo.
Target: Impostato per avere un rapporto rischio rendimento 1:2
Grazie mille.
Bene, questo è il codice corretto.
Ho tolto DHIGH(1), in quanto usi il timeframe Giornaliero ed in questo casi è meglio usare HIGH[1] in quel timeframe assegnandone il valore alla varibile myDhigh1.
Ho un dubbio, dopo che la condizione d’entrata è stata verificata, cosa succede se il prezzo, prima dell’entrata, va ancora sopra e supera la Condizione 2? Deve essere annullata la condizione d’entrata, anche se poi il prezzo torna sotto?
defparam cumulateorders = false
defparam preloadbars = 0
defparam flatafter = 220000
// Limitare TS ad 1 solo ordine al giorno
ONCE TradeOn = 1 //abilitare il trading per default
IF IntradayBarIndex = 0 THEN
TradeOn = 1 //abilitare il trading all'inizio di ogni giorno
Condizione = 0
ENDIF
IF StrategyProfit <> StrategyProfit[1] THEN
TradeOn = 0 //disabilitare il trading dopo la prima operazione
ENDIF
//---TF Daily
TIMEFRAME(Daily)
SFMin = 13*POINTSIZE
SFMax = 40*POINTSIZE
myDhigh1 = high[1]
//
TIMEFRAME(default)
IF not onmarket AND (high > (myDhigh1+SFmin)) AND (high <= (myDhigh1 + SFMax)) AND TradeOn AND (Condizione = 0) THEN
Condizione = 1
EntryPrice = myDhigh1 // Prezzo di ingresso
stoplevel = myDhigh1 + SFMax//EntryPrice + SFMax
// Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
TakeProfit = EntryPrice - (stoplevel - EntryPrice)
ENDIF
IF Condizione AND TradeON THEN
SELLSHORT 1 CONTRACT AT myDhigh1 STOP
set stop price stoplevel
set target price TakeProfit
ENDIF
/////////////////////////////////////////////////
graphonprice stoplevel as "StopLoss" coloured ("red")
graphonprice (myDhigh1+SFmin) as "SFmin x entry" coloured ("orange")
graphonprice EntryPrice as "EntryPrice" coloured("lime")
graphonprice TakeProfit as "TakeProfit" coloured("blue")
graphonprice myDhigh1 as "PDH" coloured("black")
graph Condizione as "Condizione"
graph TradeON as "TradeON" coloured("Red")
GRAZIE mille Roberto.
Ho un dubbio, dopo che la condizione d’entrata è stata verificata, cosa succede se il prezzo, prima dell’entrata, va ancora sopra e supera la Condizione 2? Deve essere annullata la condizione d’entrata, anche se poi il prezzo torna sotto?
esatto deve essere annulata.
Grazie ancora
Ecco la versione modificata:
defparam cumulateorders = false
defparam preloadbars = 0
defparam flatafter = 220000
// Limitare TS ad 1 solo ordine al giorno
ONCE TradeOn = 1 //abilitare il trading per default
IF IntradayBarIndex = 0 THEN
TradeOn = 1 //abilitare il trading all'inizio di ogni giorno
Condizione = 0
ENDIF
IF StrategyProfit <> StrategyProfit[1] THEN
TradeOn = 0 //disabilitare il trading dopo la prima operazione
ENDIF
//---TF Daily
TIMEFRAME(Daily)
SFMin = 13*POINTSIZE
SFMax = 40*POINTSIZE
myDhigh1 = high[1]
//
TIMEFRAME(default)
//
IF Condizione AND (high > (myDhigh1 + SFMax)) THEN
Condizione = 0
ENDIF
IF not onmarket AND (high > (myDhigh1+SFmin)) AND (high <= (myDhigh1 + SFMax)) AND TradeOn AND (Condizione = 0) THEN
Condizione = 1
EntryPrice = myDhigh1 // Prezzo di ingresso
stoplevel = myDhigh1 + SFMax//EntryPrice + SFMax
// Target di profitto: distanza pari a quella tra il prezzo di ingresso e lo stop loss (rapporto 1:1)
TakeProfit = EntryPrice - (stoplevel - EntryPrice)
ENDIF
IF Condizione AND TradeON THEN
SELLSHORT 1 CONTRACT AT myDhigh1 STOP
set stop price stoplevel
set target price TakeProfit
ENDIF
/////////////////////////////////////////////////
graphonprice stoplevel as "StopLoss" coloured ("red")
graphonprice (myDhigh1+SFmin) as "SFmin x entry" coloured ("orange")
graphonprice EntryPrice as "EntryPrice" coloured("lime")
graphonprice TakeProfit as "TakeProfit" coloured("blue")
graphonprice myDhigh1 as "PDH" coloured("black")
graph Condizione as "Condizione"
graph TradeON as "TradeON" coloured("Red")
Buongiorno Roberto,
scusa una domanda sulla programmazione. nel caso usassi invece, come sotto, updateonclose:
TIMEFRAME(Daily, updateonclose)
SFMin = 13*POINTSIZE
SFMax = 40*POINTSIZE
myDhigh1 = high[1]
bisognerebbe mettere high[0] perchè non essendosi ancora chiusa la candela giornaliera, si riferirebbe al giorno precedente? sbaglio qualcosa? grazie mille in anticipo
Alessio
Sia che tu usi UpdateOnClose che Default (che può essere omesso), l’indice [1] si riferisce alla candela precedente, non quella di oggi.
Invece usando l’indice [0] cambia se usi UpdateOnClose oppure Default, con il primo è l’ultima candela chiusa, quindi NON quella in corso di formazione, mentre col secondo è quella in corso.