Cia a tutti
Mi servirebbe un aiuto a scrivere un codice che preveda di entrare al superamento del close della giornata procedente, e se non si sono verificate certe condizioni di tp o sl, di uscire ad esempio 15 min prima della chiusura del mercato.
Grazie in anticipo
Provalo:
Defparam flatafter 210000
Once TradeON = 1
If IntraDayBarIndex = 0 then
TradeON = 1
Endif
If OnMarket Or STRATEGYPROFIT <> STRATEGYPROFIT[1] then
TradeON = 0
Endif
If TradeON = 1 THEN
Buy 1 contract at Dclose(1) + 1 * pipsize Limit
Set Target pProfit 50
Set Stop pLoss 30
Endif
Metti te la data che desideri per l’uscita, invece delle 210000.
Innanzitutto grazie. Ho provato a replicare il tuo codice, testando la funzione di ingresso e l’uscita. Senza TP o SL.
I livelli in cui entra non mi tornano. Un esempio nell’immagine allegata
DEFPARAM CumulateOrders = FALSE
Defparam flatafter= 163000
Once TradeON = 1
If IntraDayBarIndex = 0 then
TradeON = 1
Endif
If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
TradeON = 0
Endif
If TradeON = 1 THEN
Buy 100 shares at Dclose(1) + 1 * pipsize Limit
Endif
Ho bisogno di sapere li strumento, il TF e l’orario della candela.
Devo poterlo replicare.
il TF è a 10 minuti. L’orario della candela 09 e 10.
Ho provato anche con altri TF. ed in tutti non entra mai nella candela di apertura se si creano le condizioni.
Lo strumento è azionario tedesco.
Intanto il mio è un esempio generico, devi verificare se l’ordine è di tipo LIMIT o STOP, quindi usa questo:
DEFPARAM CumulateOrders = FALSE
Defparam flatafter= 163000
Once TradeON = 1
If IntraDayBarIndex = 0 then
TradeON = 1
Endif
If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
TradeON = 0
Endif
If TradeON = 1 THEN
IF close < Dclose(1) then
Buy 100 shares at Dclose(1) + 1 * pipsize stop
else
Buy 100 shares at Dclose(1) + 1 * pipsize limit
endif
set target pprofit 20
set stop ploss 20
Endif
in ogni caso andrebbe verificato che il prezzo d’entrata non sia inferiore alla distanza minima eventualmente richiesta dal broker.
Tieni presente che gli ordini pendenti, se il prezzo non è alla distanza corretta, oppure l’ordine è di tipo svagliato (LIMIT invece che STOP o viceversa), l’ordine può essere inserito a mercato, al prezzo corrente o rifiutato.
Una soluzione potrebbe essere l’entrata a mercato quando il prezzo supera DCLOSE(1), ma rischi che l’entrata avvenga vari pips dopo il superamento.
Comunque questo è il codice per l’entrata a mercato:
DEFPARAM CumulateOrders = FALSE
Defparam flatafter= 163000
Once TradeON = 1
If IntraDayBarIndex = 0 then
TradeON = 1
Endif
If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
TradeON = 0
Endif
If TradeON = 1 THEN
IF close >= Dclose(1) + (1 * pipsize) then
Buy 100 shares at market
set target pprofit 20
set stop ploss 20
Endif
Endif
Quando devi evidenziare un’operazione che ritieni sbagliata, indica sempre lo strumento esatto, il time frame, la data e l’ora della candela incriminata. Grazie 🙂
Grazie per il codice.
A questo punto un’altra domanda. Come detto il livello l’entrata è data dalla chiusura della giornata precedente. I segnali di entrata però sono a loro volta costruiti sulla base di un time frame giornaliero.
A questo punto però come faccio a far funzionare insieme il modello che definisce i segnali di entrata che funzionano su base giornaliera, e l’uscita che è forzata ad un certo orario e quindi opera su base intraday ? di fatto anche le condizioni di sl e tp che vorrei mettere si basano su un indice di volatilità sempre calcolato su base giornaliera.
E’ necessario costruire un modello con due time frame diversi ?
Si, da oltre un anno è disponibile il supporto MTF, Multiple Time Frame, che permette di usare più unità di tempo combinate tra loro.
Grazie Roberto a riguardo ho visto quanto da te postato https://www.prorealcode.com/topic/cowabunga-on-dax-with-multiple-time-frames/
Però non mi riesce far funzionare in una strategia di fatto interamente basata su candele giornaliere, l’unico comando intraday che l’uscita ad una certa ora.
Anche sulla base del codice dei post di sopra potresti farmi un’esempio.
Grazie
Dimmi tu una semplice strategia che vuoi usare su più time frame ed io te la codifico.
Segnale su candele giornaliere Heikin Ashi positive e con close e open (candele standard) sempre giornaliere maggiori di media semplice a 15 gg.
Dati questi segnali entrare nella candela successive al superamento del max(close, open) della candela del giorno prima.
Uscire ad esempio alle 1645.
SL e TP da decidere quindi per ora non importa
Ciao Roberto se possibile potresti indicarmi, a titolo di esempio, in questa strategia daily, cosa devo modificare /inserire per forzare l’uscita ad un orario, tipo le 1700 ?
Grazie
DEFPARAM CumulateOrders = FALSE
//timeframe(1 day,updateonclose)
MediaH=exponentialaverage[15](close)
trend =0
IF HIGH > MediaH THEN
TREND = 1
MioPrezzo=close
ENDIF
IF TREND = 1 THEN
BUY 100 shares AT MioPrezzo stop
SET STOP %LOSS 2
SET TARGET %PROFIT 3
ENDIF
Basta che tu inserisca immediatamente prima, o subito dopo, la riga:
DEFPARAM FaltAfter = 170000
ed ogni operazione aperta verrà chiusa alle 17.