Salve Roberto,
ho incollato, precedentemente, il codice che non corrisponde alla descrizione che avevo dato.
Aggiungo il codice con il tentativo di operare su Multitimeframe.
DEFPARAM CumulateOrders = False
TimeFrame (1 Hours,Updateonclose)
Once VAR= 1
IF IntraDayBarIndex = 0 THEN
VAR = 1
ENDIF
//TimeFrame (1 Hours,Updateonclose)
MASSIMO = High[0]
minimo = Low[0]
// Condizioni per entrare su posizioni
TimeFrame (5 Minutes,Updateonclose)
COMPRA = MASSIMO
VENDI = minimo
UNO = VAR
IF Time = 090000 AND not OnMarket AND UNO = 1 THEN
BUY 1 CONTRACT AT COMPRA STOP
IF OnMarket THEN
UNO = 0
VENDI = 0
ENDIF
ENDIF
IF Time = 090000 AND not OnMarket AND UNO = 1 THEN
VENDI = Low[0]
SELLSHORT 1 CONTRACT AT VENDI STOP
IF OnMarket THEN
UNO = 0
COMPRA = 0
ENDIF
ENDIF
ATRSU = AverageTrueRange[5] < AverageTrueRange[1]
ATRGIU = AverageTrueRange[5] > AverageTrueRange[1]
IF ATRSU THEN
SET TARGET pPROFIT (100*1.2)
SET STOP pLOSS (100*1.2)
ELSE
IF ATRGIU THEN
SET TARGET pPROFIT 100
SET STOP pLOSS 100
ENDIF
ENDIF
SCA = 80
IF LONGONMARKET AND (close - tradeprice(1)) >= (SCA* pipsize) THEN
breakevenLevel = tradeprice(1) + (SCA* pipsize) //calculate the breakevenLevel
//place the new stop orders on market at breakevenLevel
IF breakevenLevel > 0 THEN
SELL AT breakevenLevel STOP
ENDIF
ENDIF
// --- SHORT side
IF SHORTONMARKET AND (tradeprice(1) - close) >= (SCA* pipsize) THEN
breakevenLevel = tradeprice(1) + (SCA* pipsize) //calculate the breakevenLevel
//place the new stop orders on market at breakevenLevel
IF breakevenLevel > 0 THEN
EXITSHORT AT breakevenLevel STOP
ENDIF
ENDIF
L’altro post l’ho cancellato. Per favore non duplicare i post, se devi aggiungere qualcosa o postare delle modifiche che riguardano lo stesso oggetto, puoi farlo di seguito al primo, non c’è biusogno di creare un nuovo argomento.
Grazie 🙂
Le righe 17-20 vanno spostate tra la 14 e la 15 e va usato LongOnMarket al posto di OnMarket.
Le righe 25-28 vanno spostate tra la 14 e la 15 (prima o dopo quelle di sopra è indifferente) e va usato ShortOnMarket al posto di OnMarket.
Non so se questo basta a farti ottenere ciò che vuoi, perché non ben capito quale sia la tua precisa richiesta.
Chiedo scusa.
Grazie ancora per la risposta.
Buona giornata.
Ciao Roberto,
il quesito che ti avevo posto era già stato trattato in “SISTEMA OIL H1 – Aiuto per unica operazione giornaliera” in cui praticamente confermi che in una candela oraria è praticamente impossibile riuscire ad eseguire 1 sola operazione se il prezzo incrocia , ad esempio, prima il Massimo della candela e successivamente, nella stessa candela oraria, il minimo.
Pensavo che con la possibilità di operare con più TimeFrame si potesse risolvere il problema…
Ultima domanda: Il Massimo o il minimo di una candela oraria si può trasferire in una costante di un TimeFrame di 5 minuti?
Grazie
La tua frase “il quesito che ti avevo posto era già stato trattato in “SISTEMA OIL H1 – Aiuto per unica operazione giornaliera” in cui praticamente confermi che in una candela oraria è praticamente impossibile riuscire ad eseguire 1 sola operazione se il prezzo incrocia , ad esempio, prima il Massimo della candela e successivamente, nella stessa candela oraria, il minimo.” non riesco a comprenderla, puoi spiegarti meglio, magari con un esempio? Forse la soluzione è più semplice di quanto possa sembrare.
Riguardo la tua ultima domanda ecco un esempio di Massimo e Minimo rario che viene usato nel TF a 5 minuti:
Timeframe(1h,UpdateOnClose)
MassimoH1 = high
MinimoH1 = low
Timeframe(5 minute,UpdateOnClose)
IF close CROSSES OVER MassimoH1 THEN
. //qui metterai il codice da eseguire quando il prezzo rompe il massimo orario
ENDIF
Premetto che nel mio codice cerco di aprire la posizione con un ordine pendente
In una candela oraria, dovendo aspettare la chiusura della stessa, potrebbe accadere che venga violato sia il Massimo che il minimo.
Ho notato che i vari filtri tipo STRATEGYPROFIT o INTRADAYBARINDEX in pratica non aiutano a limitare il numero delle operazioni.
L’unico rimedio è usare il supporto MTF, in tal modo usi un TF piccolo (anche 1 minuto o meno) e sarà difficile che in quel breve lasso di tempo siano entrambi violati.
Praticamente nel timeframe H1 predisponi solo i valori e le condizioini orarie, ma l’entrata la fai sul TF più piccolo (io ho messo 5 minute, ma è meglio usare Default, senza UpdateOnClose, in modo da usarlo su qualunque TF inferiore ad 1 ora) in modo che alla violazione di uno dei due non piazzi più ordini, fino ad un certo periodo che vuoi tu….. fino all’ora successiva fino al giorno successivo o per N barre, scegli tu.
L’unico inconveniente è che le barre di storico caricate sonoquelle relative al TF più piccolo usato, quello che è sul grafico, quindi, ad esempio 200K barre da 1 minuto sono molte meno di 200K barre orarie!
Ti ringrazio molto per la disponibilità ed il chiarimento.
Buona serata.