Ciao Roberto, mi sono spiegato male, anzi malissimo…. la faccio Piu semplice, ho messo il codice di una strategia fatta proprio al volo, solo long e una foto.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = Average[200](close)
c1 = (close CROSSES OVER indicator1)
indicator2 = Average[100](close)
c2 = (close CROSSES under indicator2)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Stop e target
SET STOP %LOSS 1.5
SET TARGET %PROFIT 3
se eseguo il codice, sopra il 6 aprile 2023 viene aperta una posizione e viene chiusa il 24 maggio 2023 (trade 1A) nel riquadro centrale della foto.
ora faccio una “modifica” nella strategia :inserisco una condizione di uscita c2.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
// Condizioni per entrare su posizioni long
indicator1 = Average[200](close)
c1 = (close CROSSES OVER indicator1)
indicator2 = Average[100](close)
c2 = (close CROSSES under indicator2)
IF c1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF c2 THEN
sell 1 CONTRACT AT MARKET
ENDIF
// Stop e target
SET STOP %LOSS 1.5
SET TARGET %PROFIT 3
e succede che il 6 aprile mi apre la posizione e me la chiude giustamente il 26 aprile quando è soddisfatta la condizione di uscita c2 (trade 1).
poi siccome si ripresentano le condizioni per un buy apre il trade 2, il 5 maggio e lo chiude il 19 maggio, riquadro superiore della foto.
la modifica funziona ma non è quello che voglio, io vorrei che la modifica eseguisse il trade 1 ma non il 2, cioè deve aprire la posizione quando si verificano le condizioni di acquisto, ma se chiude la posizione perché si verifica c2, anche se si verificano le condizioni di acquisto non deve riaprire posizioni per tutto il tempo che la strategia ” senza modifica” ,cioè senza la condizione di uscita c2, sarebbe stata onmarket
vorrei sapere se c’è un modo, inserendo un flag, o il codice di ordini simulati, per fare questa cosa , ovvio io adesso ho scritto una strategia stupida ma era per cercare di far capire quello che voglio….
non si può mettere in un unico codice una strategia(strat1) che esegue ordini “reali” e una strategia (strat2)che esegue ordini “simulati”, quando si verificano le condizioni di acquisto, prima di andare long, controlla la strat2,quella simulata, se la simulata non è onmarket allora compera, se invece è onmarker non compera. o se non è onmarker alla barra precedente se interferisce con il “primo” ordine long