Programmazione Amibroker Amibroker, programmazione avanzata

  • Creatore Discussione Creatore Discussione reef
  • Data di Inizio Data di Inizio
Allora... Torniamo sul TS notte come esempio e vediamo un modo per sfruttare le potenzialità di Amibroker.
Fissiamo i seguenti timing:

15.30 Apertura WS
17.30 Chiusura MIB
22.00 Chiusura WS e Chiusura EUX (Eurex Future EuroStoxx)
8.00 Apertura EUX
9.00 Apertura MIB

Facciamo un sistemino che cerca di valutare le opportunità in questi intervalli temporali. In particolare monitoriamo:

Condizioni BUY in closeMIB
a. SP500: OpenWS-OpenWS (-1day)
b. SP500: CloseMIB-OpenWS

Condizioni SELL in openMIB
c. EUX: OpenEUX-CloseMIB (-1day)

Vediamo se è possibile ottimizzare il sistema nei seguenti casi

Buy
a<0 and b>0
a<0 and b<0
Sell
in openMIB secco, oppure ritardate per c maggiore o minore di 0
 
Ultima modifica:
Ecco il codice

La funzione che ci restituisce una serie con la variazione % dell'indice richiesto tra due orari
Codice:
function delta (serie, time1, time2) { //Se c'è solo time1 è day-day(-1), altrimenti incrocia orari distinti
	d= serie * ((TimeNum()==time1) OR (TimeNum()==time2));
	d= ValueWhen(d!=0, d);
	dd= 100*(d - Ref(d,-1))/Ref(d,-1);
	dd=  ValueWhen(dd!=0, dd);
	return dd;
}

Inizializzazione degli orari
Codice:
data=DateNum();
giorno=IIf(data != Ref(data,-1),1,0);

time_opEUX=80000;
time_opMIB=90000;
time_opWS=150000;
time_clMIB=173000;
time_clWS=220000;
time_clEUX=220000

I parametri da ottimizzare
Codice:
// default SP500: OpenWS-OpenWS (-1Day)
// ws_cm_ow SP500: CloseMIB-OpenWS
// eu_oe_cm EUX: OpenEUX-CloseMIB (-1Day)
ws_cm_ow_mag=Optimize("magSP500: CloseMIB-OpenWS (-1Day)",1,0,1,1);
ws_cm_ow_min=Optimize("minSP500: CloseMIB-OpenWS (-1Day)",1,0,1,1);
eu_oe_cm_mag=Optimize("magEUX: OpenEUX-CloseMIB (-1Day)",1,0,1,1);
eu_oe_cm_min=Optimize("minEUX: OpenEUX-CloseMIB (-1Day)",1,0,1,1);

Le serie di dati che utilizziamo
Codice:
s_EUX= Foreign("EUX_5","O"); //Open EUROSTOXX 5 min (Inutile se default)
s_MIB= Foreign("FSPMIB_5","O"); //Open FTSE_MIB 5 min
s_WS= Foreign("SP5I_5","O"); //Open SP500 5 min
s_EUD= Foreign("EURUSD30","O"); //Open EURUSD 3

Le serie di variazione % sugli orari
Codice:
//Buy
WS_oWS_oWS = delta(s_WS, time_opWS, 0); // OpenWS - OpenWS(-1d)
WS_cMIB_oWS = delta(s_WS, time_clMIB, time_opWS); // CloseMIB - OpenWS
//Sell
EUX_oEUX_cMIB=delta(s_WS, time_clMIB, time_opEUX); // OpenEUX - CloseMIB(-1d)

Settiamo come default il FIB per l'acquisto
Codice:
//New Settings
SetForeign ("FSPMIB_5", True, True); //Il default passa a SPMIB

... e questo è il TS da ottimizzare per i diversi indicatori
Codice:
/Sistema Notte
Buy=(WS_oWS_oWS < 0) AND (TimeNum()==173000) AND (WS_cMIB_oWS>0 OR ws_cm_ow_mag) AND (WS_cMIB_oWS<0 OR  ws_cm_ow_min);
Sell=(TimeNum()==100000) OR ((TimeNum()==90000) AND (EUX_oEUX_cMIB>0 OR eu_oe_cm_mag) AND (EUX_oEUX_cMIB<0 OR eu_oe_cm_min)) ;

Ho quasi finito...Resta qualche verifica e gli eventuali approfondimenti
:ciao:
 

Users who are viewing this thread

Back
Alto