Devi spostare l’ENDIF dalla riga 27 del tuo codice alla riga 17 (subito dopo BUY).
Hai messo le condizioni di uscita all’interno di quelle d’entrata.
Fatto questo funziona perfettamente.
Grazie infinite Roberto ; il codice l’ho modificato mettendo endif alla riga 17 togliendone un endif dalla 27
pero’ noto che acquista solo in contemporanea con C1 e C2 (solo Macd e sopra 75 )e non con C1 e C3 (macd e sopra 25)
quindi entra in ritardo in buy….;
ho allegato 2 attachments di situazioni come quella descritta sopra dove noterai che C1 e C3 non entrano ma segnale entra solo con C1 e C2…...
grazie mille ancora del tempo
Perché quando C3 è vera, è vera anche la C5, quindi esegue l’entrata ma immediatamente dopo esegue anche l’uscita, quindi l’operazione viene annullata.
Grazie mille Roberto gentilissimo dopo quando torno a casa provo a mettere lscindizione iflongonmarket x vedere se c5 lo annulla assieme al c3
grazie mille ancora
Gentilissimo Roberto ,ho messo nelle condizioni per uscire da posizioni long IF LONGONMARKET then!!
facendo cosi’ se ho capito la c3 e la c5 dovrebbero essere indipendenti e non dovrebbero anullarsi a vicenda
,puo’ essere giusto e corretta questo script finale?grazie mille ancora
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = MACDline[12,26,8](close)
indicator2 = MACDSignal[12,26,8](close)
c1 = (indicator1 >= indicator2)
indicator9, ignored, ignored = CALL "schaff tom"
c2=indicator9 >=75
c3=indicator9>25
IF c1 and (c2 or c3) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Condizioni per uscire da posizioni long
IF LONGONMARKET then
c4 = (indicator1 <= indicator2)
c5=indicator9 <=75
c6=indicator9 <=25
IF c4 or c5 or c6 THEN
SELL AT MARKET
ENDIF
ENDIF
Si, va bene, perché LONGONMARKET diventa vero quando l’operazione è già avvenuta, quindi nella barra successiva, per cui almeno una barra l’operazione resta aperta.