Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Вывести в файл все сделки в процессе оптимизации Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Marcello



Зарегистрирован: 30.05.2015
Сообщения: 58

СообщениеДобавлено: Вс Фев 11, 2018 7:32 pm Ответить с цитатой Вернуться к началу

Есть системка с 3 параметрами, которые дают ~6000 комбинаций. На периоде, выбранном для оптимизации, делается около 500 сделок. Можно ли в процессе оптимизации вывести в файл все сделки (то, что выводится в режиме PortfolioReportMode = 0) с указанием значений текущих параметров? Цель: получить все сделки для каждой комбиниции параметров для дальнейшего использования в другом приложении.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8409

СообщениеДобавлено: Пн Фев 12, 2018 11:39 am Ответить с цитатой Вернуться к началу

Может попробовать воспользоваться AmiBroker's OLE Automation Object Model
У объекта Analysis есть метод Report....

Analysis.Report( FileName: String ) - saves report to the file or displays it if FileName = ""

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Marcello



Зарегистрирован: 30.05.2015
Сообщения: 58

СообщениеДобавлено: Пн Фев 12, 2018 1:28 pm Ответить с цитатой Вернуться к началу

Analysis. This object is obsolete.

Я думал, что можно как-то использовать статус: https://www.amibroker.com/guide/afl/status.html
Что-то типа
Код:
if( Status("action") == actionExOptimizePortfolio ) {
А дальше использовать свойства объекта Trade:
Код:
string Symbol
float EntryDateTime
float EntryPrice
float ExitDateTime
float ExitPrice
long BarsInTrade

Вот только как сюда прикрутить вывод текущих значений оптимизируемых параметров?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 8409

СообщениеДобавлено: Пн Фев 12, 2018 2:14 pm Ответить с цитатой Вернуться к началу

Если получается вывести список сделок, то прикрутить вывод параметров вроде не должно доставить проблем. Просто дописать их во время формирования строки.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Marcello



Зарегистрирован: 30.05.2015
Сообщения: 58

СообщениеДобавлено: Вт Фев 13, 2018 9:19 pm Ответить с цитатой Вернуться к началу

Все получилось. Вот фрагмент кода, вдруг кому пригодится:
Код:
SetCustomBacktestProc("");
if( Status("action") == actionPortfolio ) {
   bo = GetBacktesterObject();
   bo.Backtest();

   logStr = "";
   strDiv = "\t";
   
   trade = bo.getFirstTrade();
   if ( trade ) fh = fopen( "d:\\" + trade.Symbol + ".txt", "a");

   for ( trade = bo.getFirstTrade(); trade; trade = bo.getNextTrade() ) {
      
      logStr = trade.Symbol + strDiv;
      logStr = logStr + StrFormat( "%g_%g_%g", BR, BP, SR ) + strDiv; // тут перечислены оптимизируемые параметры
      logStr = logStr + DateTimeToStr( trade.EntryDateTime ) + strDiv;
      logStr = logStr + StrFormat( "%g", trade.EntryPrice ) + strDiv;
      logStr = logStr + DateTimeToStr( trade.ExitDateTime ) + strDiv;
      logStr = logStr + StrFormat( "%g", trade.ExitPrice ) + strDiv;
      logStr = logStr + StrFormat( "%g", trade.BarsInTrade ) + "\n";
      
      if ( fh ) fputs( logStr, fh ); else _TRACE( "Error" );
   }

   if ( fh ) fclose( fh );
}
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen