salve, ho scritto un programmino molto semplice per vedere quali strumenti hanno avuto un buon guadagno notturno in passato però non riesco a farlo comprare perfettamente alle 17e29 e vendere alle 09e01 del mattino dopo, dovrei mettere il tf ad 1 minuto sacrificando così quasi tutto lo storico, ho provato con il mtf ms mi è sembrato di capire che funziona al contrario, vuole un tf generale dello strumento inferiore a quello del mtf e quindi non ho risolto nulla, io vorrei adeguare le operazioni ad un tf 1 minuto ed invece caricare un grafico ad 1 ora, è possibile?
timeframe(1 minute,UpdateOnClose)
if time=172900 and (not longonmarket) and (dayofweek=1 or dayofweek=5 or dayofweek=2 or dayofweek=0) then
buy 243 contract at market
endif
if time=090100 and longonmarket then
SELL AT MARKET
ENDIF
MTF prevede che il TF più basso debba essere quello di default (che è sul grafico).
Se, nel codice, utilizzi vari timeframe, essi debbono tutti essere uguali o MULTIPLI del timeframe di default.
Quindi se utilizzi come time frame più piccolo 1 minuto, sul grafico deve esserci 1 minuto. Se vuoi puoi utilizzare altri time frame, quali 2 minuti, 3 minuti, 5 minuti, 10 minuti, 15 minuti, 30 minuti, 1 ora, 2 ore, 4 ore, ecc… in quanto sono tutti multipli di 1 minuto.
Se oltre ad 1 minuto utilizzi anche, ad esempio, 7 minuti, non potrai utilizzare 10, 15, 30, 60 (1 ora), 120, ecc… in quanto NON sono multipli di 7. Devono essere ognuno multiplo di tutti i timeframe inferiori.
ho fatto caso al fatto che anche mettendo lo stop loss a questo sistema non cambia nulla in quanto vende sempre alla candela successiva a quella di apertura, come potrei fare invece per aggiungere uno stop pendende sulla candela stessa di apertura? se il titolo va long chiude all’ora indicata, se invece apre negativo e dovesse fare più di x punti gia la prima candela dovrei chiudere prima, come posso fare? io pensavo ad una roba del genere if time 091000 and longonmarket then sell at market elsif sell at high-30 stop
Se lo usi sul grafico a 1 minuto la riga 1 non serve (servirebbe se tu lo usassi su un grafico a 10 secondi, ad esempio).
Puoi mettere sia uno stop loss che un take profir con ordini pendenti:
timeframe(1 minute,UpdateOnClose)
if time=172900 and (not longonmarket) and (dayofweek=1 or dayofweek=5 or dayofweek=2 or dayofweek=0) then
buy 243 contract at market
tp = high + 20*pipsize
sl = low - 20*pipsize
sell at sl STOP //Stop Loss
sell at tp LIMIT //Take Profit
endif
if LongOnMarket then
sell at sl STOP //Stop Loss
sell at tp LIMIT //Take Profit
endif
if time=090100 and longonmarket then
SELL AT MARKET
ENDIF
Siccome gli ordini pendenti vengono cancellati alla chiusura di ogni barra, occorre piazzarli di nuovo, se necessari.