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



Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС

СообщениеДобавлено: Пн Окт 08, 2012 5:57 am Ответить с цитатой Вернуться к началу

У меня есть 300 ликвидных бумаг, которые я могу торговать внутри дня.
По разным бумагам генерируються сигналы на лонг и шорт. Мне нужно сделать так, чтобы каждый торговый день у меня был рыночно-нейтральным, т.е. чтобы тестер сам отбирал скажем 10 бумаг на лонг и 10 бумаг на шорт. Далее мне надо чтобы 10 лонговых бумаг были независимы, т.е. некоррелируемые. Далее если бумаг на лонг больше 10, то ранжируем опять и отбираем например самые волатильные. Все тоже самое и с шортовыми бумажками. И так каждый торговый день.

Возможно ли это реплизовать в Amibroker? Или придеться в ручную как-то гемороиться?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Пн Окт 08, 2012 11:22 pm Ответить с цитатой Вернуться к началу

Да можно все, что угодно. Хватило бы терпения и квалификации...
Код:

SetOption("UseCustomBacktestProc", True );

if( Status("action") == actionPortfolio ) {
  bo = GetBacktesterObject();

  bo.PreProcess(); // Initialize backtester

  for(bar = 1; bar < BarCount; bar++)
  {

    for(sig = bo.GetFirstSignal(bar); sig; sig = bo.GetNextSignal(bar))
    {
      if( sig.IsLong() && sig.IsEntry()) // получен сигнал на лонг
      {
        bo.EnterTrade(bar, sig.symbol, sig.IsLong(), sig.Price, sig.PosSize); // можно открыть позицию по  символу на котором получен сигнал
        bo.EnterTrade(bar, qqq, Short, PriceOpen[bar], sig.PosSize); // а можно по любому другому

      }
      if( sig.IsExit() ) // такая же фигня с выходом
      {
        bo.ExitTrade(bar, sig.symbol, sig.Price);
        bo.ExitTrade(bar, qqq, PriceClose[bar]);
      }
    }
    bo.UpdateStats(bar, 2);
  }

  bo.PostProcess(); // Finalize backtester }

  StaticVarRemove("*");
}

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen