c’è un modo per limitare ad una posizione al giorno in un sistema intraday? so che c’era un modo ma non ricordo come fare
grazie infinite a chi mi aiuta
Paolo
questo è il codice
<<
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False// Posizioni cumulate disattivate
//H L Trading Buy
HLT = DCLOSE(1) >=(DLOW(1)+(DHIGH(1) – DLOW(1)) * 0.75) AND DCLOSE(1) > DOPEN(1)
ENTER= (DLOW(1)+(DHIGH(1) – DLOW(1)) * 0.25)
IF HLT[0] THEN
ENTER=ENTER
ELSE
ENTER=ENTER[1]
ENDIF
IF HLT=1 THEN
OUT=DLOW(1)
ELSE
OUT=OUT[1]
ENDIF
//entry long
IF HLT THEN
BUY AT ENTER LIMIT
ENDIF
//EXIT LONG
SELL AT OUT LIMIT>>
Quando pubblichi del codice, dovresti utilizzare il tasto “Insert PRT code” (<> nella barra grigia) per facilitare la lettura e la comprensione.
Questo è il tuo codice modificato per fare una sola operazione al giorno, provalo:
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False// Posizioni cumulate disattivate
ONCE TradeOn = 1 //abilitare il trading per default
IF IntradayBarIndex = 0 THEN
TradeOn = 1 //abilitare il trading all'inizio di ogni giorno
ENDIF
//H L Trading Buy
HLT = DCLOSE(1) >=(DLOW(1)+(DHIGH(1) - DLOW(1)) * 0.75) AND DCLOSE(1) > DOPEN(1)
ENTER= (DLOW(1)+(DHIGH(1) - DLOW(1)) * 0.25)
IF HLT[0] THEN
ENTER=ENTER
ELSE
ENTER=ENTER[1]
ENDIF
IF HLT=1 THEN
OUT=DLOW(1)
ELSE
OUT=OUT[1]
ENDIF
//entry long
IF HLT AND TradeOn THEN
BUY AT ENTER LIMIT
TradeOn = 0 //disabilitare il trading dopo la prima operazione
ENDIF
//EXIT LONG
SELL AT OUT LIMIT
Roberto
ottimo suggerimento, grazie Roberto!
DEFPARAM CUMULATEORDERS = false
//--------------------------------------------------------------------------
High1 = high[0]
Low1 = low [0]
MyStop = 100
MyProfit = 25
nCON = 1
//--------------------------------------------------------------------------
//LIMITAZIONE OPERAZIONI GIORNALIERE
ONCE TradeOn = 1 //abilitare il trading per default
IF IntradayBarIndex = 0 THEN
TradeOn = 1
endif
//--------------------------------------------------------------------------
if time = 90000 and TradeOn then
buy nCON shares at Low1 limit
TradeOn = 0
endif
//--------------------------------------------------------------------------
if time = 90000 and TradeOn then
sellshort nCON shares at High1 limit
TradeOn = 0
endif
//--------------------------------------------------------------------------
set stop ploss MyStop
set target profit MyProfit
Ciao Roberto ho provato ad usare il blocco di codice che spieghi sopra per il mio sistema. TimeFrame 1H, semplicemente entra buy limit sul minimo e sellshort sul massimo della candela delle 900. Vorrei che una volta entrata la prima operazione l’altra non venga eseguita, invece fino alle 9.59 se esce dalla parte opposta chiude la prima operazione in profitto ed entra al contrario. Se inserisco il tuo codice mi fa solo operazioni long. Grazie
Perché alla riga 17 azzeri la variabile, quindi la riga 20 non sarà mai vera.
Togli le righe 20, 22 e 23, quindi sposta la 21 sotto (o sopra, è indifferente) la 16.
Vedrai che potrà entrare sia Long che Short.
Resta il problema della doppia entrata. Se uno dei due trade entra ed esce prima che termini la candela, può accadere che entri l’altro se raggiunge quel prezzo.
Per evitare questo occorre utilizzare il supporto MTF, Multiple Time Frame, che consente di usare più di un TF per volta, in modo da utilizzare come setup quello ad 1, o anche inferiore, e per piazzare gli ordini pendenti 1 minuto. Ovviamente per fare questo il tuo codice va cambiato sostanzialmente.