Buongiorno a tutti
sto cercando di imparare il linguaggio di programmazione di prt ma mi rimane molto ostico. Leggo i post del forum sugli argomenti che mi interessano nello specifico e faccio operazioni di copia e incolla di righe di codice, ma non riesco a far funzionare la strategia che desidero; evidentemente il copia incolla non è dei migliori!
la mia idea è la seguente:
analizzare un qualunque mercato future commodity o indici ( gold, crude oil, dax, us500, etc) per vedere se é adatto ad una strategia trendfollowing attraverso il breakout daily di ieri ( compro/ vendo su supera il massimo/minimo di ieri, esco a fine giornata) sistema sempre a mercato
se l’analisi da segnali positivi ( equity in crescita ) scendo in intraday ( 5,15,30,60 minuti)per trovare le fasce orarie migliori ( dalle 8 alle 11 o dalle 16 alle 18, etc…)
inserisco uno stop loss per gestire il rischio e lo spread per avere risultati puliti
se la strategia è ancora ok la filtro con giorni migliori, volatilità, etc…
in teoria è semplice ma in pratica quasi impossibile percui ho bisogno del vostro aiuto per costruire un codice che mi permetta di fare questi test
allego il codice che uso per l’analisi daily, ma non so se fa quello che vorrei ed in oltre non riesco a trasformarlo in intraday.
uso la v.11
Vi ringrazio anticipatamente per tutto l’aiuto che potete darmi
E’ meglio se posti anche il codice (a meno che non siano oltre 100 righe, in tal caso è difficile da leggere):
// SISTEMA DI BREAKOUT SUL MASSIMO E MINIMO GIORNALIERI
DEFPARAM CUMULATEORDERS= TRUE
//ORARI DI ENTRATA E USCITA
//DEFPARAM FLATBEFORE=072500
//DEFPARAM FLATAFTER=170000
// RICHIAMO L'INDICATORE MASSIMO E MINIMO DELLA GIORNATA DI IERI
HautVeille = DHigh(1)
BasVeille = DLow(1)
// CORRECTIF POUR LE LUNDI
IF dayofweek = 1 Then
HautVeille = DHigh(2)
BasVeille = DLow(2)
ENDIF
// APRO POSIZIONI LONG
IF CLOSE>HAUTVEILLE THEN
BUY 1 CONTRACT AT HAUTVEILLE STOP
ENDIF
//APRO POSIZIONI SHORT
IF CLOSE<BASVEILLE THEN
SELLSHORT 1 CONTRACT AT BASVEILLE STOP
ENDIF
// CHIUDO TUTTE LE POSIZIONI A FINE GIORNATA
IF ONMARKET THEN
SELL AT MARKET
EXITSHORT AT MARKET
ENDIF
E’ già in formato intraday, altrimenti non ci sarebbe bisogno di usare DHigh() o DLow(), basterebbero High o Low.
Scritto così com’è, alle righe 21 e 26 dovresti usare ordini LIMUIT, in quanto operi solo se il prezzo è migliorativo rispetto a quello corrente (per gli ordini STOP deve essere peggiorativo, cioè meno conveniente).
Prova.
Grazie Roberto per l’informazione
provo e ti faccio sapere
Scusa, ho scritto LIMUIT, ma intendevo scrivere LIMIT.