Автор |
Сообщение |
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
Уважаемые коллеги,
А можно сделать экспорт из Амиброкер в текстовые или любые другие форматы, автоматическим. Самым нужным был бы онлайн экспорт из Амиброкер в Эксель. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Mechanic
Зарегистрирован: 10.06.2008
Сообщения: 359
|
Да, причём легко. Взять любой код, делающий такой экспорт, и запустить его на сканирование в анализаторе с автоповтором каждые n секунд/минут |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
Mechanic писал(а): |
Да, причём легко. Взять любой код, делающий такой экспорт, и запустить его на сканирование в анализаторе с автоповтором каждые n секунд/минут |
АФЛ делающий экспорт в текстовый файл работает при последовательном нажатии кнопок Эксплор и Файл/Экспорт. Загрузке этого же кода и нажатии копки скан Амиброкер выдает сообщение (на приложенном рисунке). Код для разового экспорта в текстовый файл:
Filter=1;
//AddColumn(O,"Open");
AddColumn(H,"High");
AddColumn(L,"Low");
AddColumn(C,"Close");
//AddColumn(V,"Volume",1.0);
//OIRI=Foreign("OIRI","C");
//AddColumn(OIRI,"OIRI"); |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
Tinych писал(а): |
Mechanic писал(а): |
Да, причём легко. Взять любой код, делающий такой экспорт, и запустить его на сканирование в анализаторе с автоповтором каждые n секунд/минут |
АФЛ делающий экспорт в текстовый файл работает при последовательном нажатии кнопок Эксплор и Файл/Экспорт. Загрузке этого же кода и нажатии копки скан Амиброкер выдает сообщение (на приложенном рисунке). Код для разового экспорта в текстовый файл:
Filter=1;
//AddColumn(O,"Open");
AddColumn(H,"High");
AddColumn(L,"Low");
AddColumn(C,"Close");
//AddColumn(V,"Volume",1.0);
//OIRI=Foreign("OIRI","C");
//AddColumn(OIRI,"OIRI"); |
побольше скрина не было?
Код: |
fh = fopen( "DataFor"+Name()+".csv", "w" );
if( fh )
{
fputs("Symbol,Date,Time,Open,High,Low,Close,OpenInt,Volume\n", fh );
dn = DateNum();
tn = TimeNum();
for( i = 0; i < BarCount; i++ )
{
Line = Name() +
StrFormat(",%06.0f,%06.0f,%g,%g,%g,%g,%g,%g\n",
dn[ i ] % 1000000,
tn[ i ],
Open[ i ],
High[ i ],
Low[ i ],
Close[ i ],
OpenInt[ i ],
Volume[ i ] );
fputs( Line, fh );
}
fclose( fh );
}
Buy=Sell=0; // for scan
Filter = Status("lastbarinrange");
AddTextColumn("Export done", "Status"); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
Большое спасибо, MrDrJOKER.
Все прекрасно работает, но это только первый шаг на пути к автоматизации wavelet преобразований, ARIMA и т.д. К сожалению в Амиброкере это напрямую сделать скорей всего невозможно.
Еще раз спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
Столкнулся с проблемой, есть скрипт для автоматического экспорта данных в файл в формате CSV:
OIRI=Foreign("OIRI","C");
fh = fopen( "C:\\Users\\Vladimir\\Documents\\MATLAB\\NN_OHLC_V_OI\\RiR"+Name()+".csv", "w" );
if( fh )
{
fputs("Ticker,Date/Time,Open,High,Low,Close,Volume,OIRI\n", fh );
//dn = Date();
//tn = Time();
d = Day();
m = Month();
y = Year();
r = Hour();
e = Minute();
sn = Second();
for( i = 0; i < BarCount; i++ )
{
Line = Name() +
StrFormat(",%g.%g.%g %g:%g:%g,%g,%g,%g,%g,%g,%g,\n",
//dn[ i ] % 1000000,
//tn[ i ],
d[ i ] % 1000000,
m[ i ],
y[ i ],
r[ i ],
e[ i ],
sn[ i ],
Open[ i ],
High[ i ],
Low[ i ],
Close[ i ],
Volume[ i ],
OIRI[ i ] );
fputs( Line, fh );
}
fclose( fh );
}
Buy=Sell=0; // for scan
Filter = Status("lastbarinrange");
AddTextColumn("Export done", "Status");
По непонятной причине он передает в файл только 81 строку в файл. Первый файл в приложении.
В то время как следующий код для не автоматического экспорта выдает все 278 строк в файле. Второй файл в приложении.
Filter=1;
AddColumn(O,"Open",1.5);
AddColumn(H,"High",1.5);
AddColumn(L,"Low",1.5);
AddColumn(C,"Close",1.5);
AddColumn(V,"Volume",1.0);
OIRI=Foreign("OIRI","C");
AddColumn(OIRI,"OIRI");
Как заставить первый скрипт полностью передавать все строки в CSV файл. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
И еще , в АА в Settings в обеих случаях стоит Hourly, но почему-то первый скрипт упорно экспортирует 5 минутки. Как заставить передавать часы? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А этот первый код для автоматического экспорта. Он у тебя как работает?
Подозреваю, что ты его как индикатор используешь. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Tinych
Зарегистрирован: 08.02.2012
Сообщения: 41
|
000 писал(а): |
А этот первый код для автоматического экспорта. Он у тебя как работает?
Подозреваю, что ты его как индикатор используешь. |
Спасибо за ответ.
Да, я вначале засунул его, как индикатор в отдельное окошко, и он даже проработал один день. Возможно сразу невнимательно посмотрел, так как в Матлабе ряд проблем было с онлайн чтением. Теперь я засунул этот код в график цен и все работает штатным образом.
Вопрос по коду, зачем вот этот миллион здесь: d[ i ] % 1000000,
с остальным понятно все. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
% берет остаток от целочисленного деления. Я не знаю зачем там так сделано. По моему можно % 1000000 убрать |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
отлично работает здесь
Код: |
OIRI = Foreign( "OIRI", "C" );
dt = DateTime();
bir = Status( "BarInRange" );
destination = "C:\\Users\\Vladimir\\Documents\\MATLAB\\NN_OHLC_V_OI\\";
fh = fopen( destination + "RiR" + Name() + ".csv", "w" );
if ( fh )
{
fputs( "Ticker,Date/Time,Open,High,Low,Close,Volume,OIRI\n", fh );
for ( i = 0; i < BarCount; i++ )
{
if( bir[i] ) // export bars of selected analysis range
{
dtstring = DateTimeToStr( dt[i] ); // Datetime to string conversion
Line = Name() + "," + dtstring +
StrFormat( ",%g,%g,%g,%g,%g,%g\n",
Open[ i ],
High[ i ],
Low[ i ],
Close[ i ],
Volume[ i ],
OIRI[ i ] );
fputs( Line, fh );
}
}
fclose( fh );
}
else
{
Error("ERROR: file can not be opened");
}
Buy = 0; // for scan
Filter = Status( "lastbarinrange" );
AddTextColumn( "Export done", "Status" ); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|