Cómo exportar datos continuamente desde Amibroker
Necesita probar una herramienta de algotrading que se utilizará para el comercio diario. Para obtener los datos en vivo durante el día deNSE, algunosvendedores están vendiendo complementos de datos paraAmibroker. Para sacar los datos deAmibroker Tengo la intención de usarAFL
(Lenguaje de fórmula Amibroker). El seguimientocódigo enAFL
crea el.csv
archivos para cada símbolo una vez. Pero para usar los datos en vivo necesito agregar datos entrantes al.csv
Archivo continuo durante todo el día. ¿Cómo se puede hacer esto sin estrellarse / sobrecargarse?Amibroker?
// created a directory on your C drive named AmiBroker data backup
dayhours = paramtoggle("Day hours only", "No|Yes");
fmkdir("c:\\AmiBackup\\");
setbarsrequired(100000,100000);
lname = Name(); // gets the name of the symbol
// note: if you have names with invalid characters like / you must rename the
file before you try to create a name
// add an IF line for each symbol you need to rename
if (lname == "ER2U8-GLOBEX-FUT") lname = "ER2U8";
fh = fopen( "c:\\AmiBackup\\" + lname + ".csv", "w");
if( fh )
{
if(interval() == inDaily OR interval() == inMonthly OR interval() == inweekly)
{
fputs( "Ticker,Date,Open,High,Low,Close,Volume \n", fh );
for( i = 0; i < BarCount; i++ )
{
y = Year();
m = Month();
d = Day();
fputs( Name() + "," , fh );
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] );
fputs( ds, fh );
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i
],V[ i ] );
fputs( qs, fh );
if(i == 65500 or i == 130000 or i == 196500 or i == 262000)
{
fclose( fh );
if(i == 65500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " A.csv", "w");
if(i == 130000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " B.csv", "w");
if(i == 196500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " C.csv", "w");
if(i == 262000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " D.csv", "w");
}
}
}
else // intraday so add time field
{
fputs( "Ticker,Date,Time,Open,High,Low,Close,Volume \n", fh );
y = Year();
m = Month();
d = Day();
r = Hour();
e = Minute();
n = Second();
for( i = 1; i < BarCount; i++ )
{
if (dayhours and lastvalue(timenum()) >= 92900 and lastvalue(timenum()) <=
161500)
{
fputs( Name() + "," , fh );
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] );
fputs( ds, fh );
ts = StrFormat("%02.0f:%02.0f:%02.0f,", r[ i ],e[ i ],n[ i ] );
fputs( ts, fh );
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i
],V[ i ] );
fputs( qs, fh );
}
else
{
fputs( Name() + "," , fh );
ds = StrFormat("%02.0f-%02.0f-%02.0f,", m[ i ], d[ i ], y[ i ] );
fputs( ds, fh );
ts = StrFormat("%02.0f:%02.0f:%02.0f,", r[ i ],e[ i ],n[ i ] );
fputs( ts, fh );
qs = StrFormat("%.4f,%.4f,%.4f,%.4f,%.0f\n", O[ i ],H[ i ],L[ i ],C[ i
],V[ i ] );
fputs( qs, fh );
}
if(i == 65500 or i == 130000 or i == 196500 or i == 262000)
{
fclose( fh );
if(i == 65500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " A.csv", "w");
if(i == 130000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " B.csv", "w");
if(i == 196500 ) fh = fopen( "c:\\AmiBackup\\" + lname + " C.csv", "w");
if(i == 262000 ) fh = fopen( "c:\\AmiBackup\\" + lname + " D.csv", "w");
}
}
}
fclose( fh );
}
Buy = 1;