Buonasera Roberto,
chiedo cortesemente ancora aiuto….
come faccio a scrivere quanto in allegato???
ringrazio per l’aiuto
max
Eccolo (non l’ho provato):
ONCE Incrocio = 0
Media = average[20,0](close)
IF close crosses over Media OR OnMarket THEN
Incrocio = 0
ENDIF
IF Incrocio = 0 THEN
Incrocio = close crosses under Media
ENDIF
IF Incrocio AND Not OnMarket AND close > high[1] THEN
BUY 1 CONTRACT AT MARKET
Incrocio = 0
ENDIF
IF OnMarket AND close < low[1] THEN
SELL AT MARKET
ENDIF
Salve Roberto
grazie si è quello……ma possiamo inserire una entrata AT STOP anzichè at market?
ho provato come sotto ma niente.
mi servirebbe l’entrata come nell’allegato precedente.
Ancora grazie per la disponibilità.
max
Prezzolong = high + 1 * pipsize
IF NOT OnMarket AND INCROCIO=0 THEN
BUY 1 CONTRACTS AT Prezzolong stop
endif
Puoi provare così:
ONCE Incrocio = 0
IF StrategyProfit <> StrategyProfit[1] THEN
Incrocio = 0
ENDIF
Media = average[20,0](close)
IF close crosses over Media OR OnMarket THEN
Incrocio = 0
ENDIF
IF Incrocio = 0 THEN
Incrocio = close crosses under Media
ENDIF
IF Incrocio AND Not OnMarket THEN
BUY 1 CONTRACT AT high[1] + (1 * pipsize)
ENDIF
IF OnMarket AND close < low[1] THEN
SELL AT MARKET
ENDIF
Buongiorno Roberto,
ho dei problemi con il funzionamento in reale
una domanda……
ma…. onMarket….funziona solo in bektest ed in real lo devo sostituire con longonmarket??
grazie per la pazienza
max
OnMarket è generico, significa “A Mercato”, qualunque direzione sia e lo usi quando non t’interessa sapere sel Long o Short
LongOnMarket serve per sapere quando sei ma mercato LONG
ShortOnMarket serve per sapere quando si a mercato SHORT.
Tieni presente che ProOrder ha bisogno di una candela per conoscere lo status di “OnMarket” (e degli altri due, ovviamente, che non sono altro che dettagli del primo), per cui quando entri a mercato puoi saperlo solo alla candela successiva. Nel caso l’operazione apre e chiude nella stessa candela, OnMarket non funziona e per sapere se sei entrato o meno devi usare STRATEGYPROFIT, cioè il risultato complessivo della strategia fino all’ultima operazione chiusa. Se è diverso dalla candela precedente significa che in quella candela c’è stata un’entrata ed un’uscita.
Buongiorno Roberto e grazie,
ho trovato dove sta la magagna.
guarda il codice … ho aggiunto un orario di attività ma si genera una magagna !!!(vedi allegato).
In pratica avrei bisogno che il TS non inizi ad entrare dalle 7:40 ma che iniziassero a verificarsi le condizioni dalle 7:40.
Secondo te si può fare??
ringrazio anticipatamente
max
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 074000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 215900
ONCE Incrocio = 0
IF StrategyProfit <> StrategyProfit[1] THEN
Incrocio = 0
ENDIF
Media = average[20,0](close)
IF close crosses over Media OR OnMarket THEN
Incrocio = 0
ENDIF
IF Incrocio = 0 THEN
Incrocio = close crosses under Media
ENDIF
IF Incrocio AND Not OnMarket THEN
BUY 1 CONTRACT AT high + (1 * pipsize) stop
ENDIF
IF OnMarket AND close < low[1] THEN
SELL AT MARKET
ENDIF
Devi usare TIME oppure OPENTIME, DEFPARAM serve solo ritardare l’apetura o anticipare la chiusura:
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 074000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 215900
ONCE Incrocio = 0
IF StrategyProfit <> StrategyProfit[1] THEN
Incrocio = 0
ENDIF
Media = 0
IF Time >= 074000 THEN
Media = average[20,0](close)
ENDIF
IF close crosses over Media OR OnMarket THEN
Incrocio = 0
ENDIF
IF Incrocio = 0 THEN
Incrocio = close crosses under Media
ENDIF
IF Incrocio AND Not OnMarket THEN
BUY 1 CONTRACT AT high + (1 * pipsize) stop
ENDIF
IF OnMarket AND close < low[1] THEN
SELL AT MARKET
ENDIF
DEFPARAM CumulateOrders = false // Posizioni cumulate disattivate
// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 074000
// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
DEFPARAM FLATAFTER = 215900
go =time > 074000 and time < 173000
ONCE Incrocio = 0
IF StrategyProfit <> StrategyProfit[1] and go THEN
Incrocio = 0
ENDIF
Media = average[20,0](close)
IF close crosses over Media OR OnMarket and go THEN
Incrocio = 0
ENDIF
IF Incrocio = 0 and go THEN
Incrocio = close crosses under Media
ENDIF
IF Incrocio AND Not OnMarket and go THEN
BUY 1 CONTRACT AT high + (1 * pipsize) stop
ENDIF
IF OnMarket AND close < low[1] THEN
SELL AT MARKET
ENDIF
Di nuovo buonasera Roberto,
grazie per tutto.
avrei fatto come sopra,
mi sembra un pò roccambolesco .
forse c’è un modo per rendere più pulito il codice??
grazie e buon week
max
Non mi sembra si possa cambiare cambiare molto, forse le righe 8-14 si possono riscrivere così, risparmiando 3 righe, ma non cambia molto, anche sotto l’aspetto estetico:
Media = average[20,0](close)
IF ((close crosses over Media) OR OnMarket OR (StrategyProfit <> StrategyProfit[1])) and go THEN
Incrocio = 0
ENDIF