salve, usando questo semplice codice con ordine pendente su dax ad 1 ora mi sono accorto che non sempre compra al valore esatto dettato dall’ordine pendente, che problema può esserci? c’è sicuramente qualcosa che mi sfugge, tral’altro no so il perchè ma non vedo il tasto insert prt code
defparam flatafter=220000
defparam flatbefore=030000
defparam cumulateorders=false
c1 = dhigh(1)
c2 = (dhigh(1) + 10*pipsize)
Timeframe(default)
if not longonmarket and (dayofweek=1 or dayofweek=2 or dayofweek=3 or dayofweek=4 or dayofweek=5 ) then
BUY 1 share AT c2 stop
endif
//set stop loss 550
//set target profit 550
graph c1
graph c2
esempio ingresso di lunedi 21/02/2022 ore 3, entra a 15114.9 anzichè 14978.9
Perché usi sempre un ordine STOP, mentre potrebbe essere necessario LIMIT.
Se il prezzo d’entrata è peggiorativo rispetto a quello corrente, devi usare STOP, altrimenti LIMIT.
come potrei scriverlo in maniera che il sistema riesca a riconoscere se è necessario un ordine stop o limit?
Questo esempio fa la verifica se il prezzo è migliorativo o peggiorativo ed in più verifica che ci sia la distanza minima richiesta dal broker (6 è quella generalmente applicata sul DAX, ma cambia da strumento a strumento e secondo gli orari, va cercata nelle info del broker):
ONCE Distanza = 6 * PipSize
IF Not OnMarket THEN
EntrataLong = 0
EntrataShort = 0
ENDIF
IF MieCondizioniLong THEN
EntrataLong = high + 20 * PipSize
ENDIF
IF MieCondizioniShort THEN
EntrataShort = low - 20 * PipSize
ENDIF
IF EntrataLong THEN
IF (close - Distanza) > EntrataLong THEN
BUY 1 contract at EntrataLong LIMIT
ELSIF (close + Distanza) < EntrataLong THEN
BUY 1 contract at EntrataLong STOP
ELSE
BUY 1 contract AT Market
ENDIF
ELSIF EntrataShort THEN
IF (close + Distanza) < EntrataShort THEN
SELLHORT 1 Contract AT EntrataShort LIMIT
ELSIF (close - Distanza) > EntrataShort THEN
SELLHORT 1 Contract AT EntrataShort STOP
ELSE
SELLHORT 1 Contract AT Market
ENDIF
ENDIF
grazie per l’esempio, tuttavia non ho capito perché dopo l’ordine stop o limit sembra esserci un ordine classico preceduto da else, comunque avevo evitato la funzione close così da avere molto più storico, se uso la funzione close sono poi legato al timeframe
E’ la distanza. Se c’è la distanza minima richiesta dal broker, verifica che l’ordine sia STOP o LIMIT secondo la posizione del punto d’entrata rispetto al prezzo; se la distanza non c’è, alora entra a MERCATO (se non si vuole entrare a mercato basta togliere, o commentare, SELL AT MARKET, in tal caso non entra e non piazzanemmeno l’ordine pendente).