Автор |
Сообщение |
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
Кто-нибудь в курсе как заставить АмиБрокер торговать только определенные тикеры? Мне нужно, чтобы каждый день амиброкер отбирал топ-10 акций для лонга и топ-10 акций для шорта. Топ определяеться на основе PositionScore. Например отобрали 10 тикеров для лонга и 10 для шорта и если есть сигналы по каким-то тикерам - торгуем их. Если нет, то нет.
Через Custom Backtester Interface как я понял это реализовать невозможно, так-как там можно работать только с сигналами, а мне нужно еще до сигналов отобрать тикеры. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
SymbolList = CategoryGetSymbols(categoryMarket, 0); // получаем список всех торгуемых символов,
// надо написать номер рынка который у тебя реально используется
NumEl = StrCount(SymbolList, ","); // сколько всего символов торгуется
for(i = 0; i <= NumEl; i++)
{
Symbol = StrExtract(SymbolList, i);
SetForeign(Symbol, 1, 0);
ForeignPS = ...; // расчитываем на основе чего ранжируем символы
RestorePriceArrays();
VarSet("PS" + i, ForeignPS); // запоминаем
if(Name() == Symbol();
SymbolPS = ForeignPS;
}
reit = 0;
for(i = 0; i <= NumEl; i++)
{
Symbol = StrExtract(SymbolList, i);
if(Name() != Symbol)
{
ForeignPS = VarGet("PS" + i);
reit = IIf(SymbolPS > ForeignPS, reit+1, reit);
}
}
// В результате знаем рейтинг каждого символа
BuyCond = reit > NumEl - 5; // тут 5 это число символов с максимальным рейтингом торгуемых в лонг
ShoryCond = reit <= 4-1; // тут 4 это число символов с минимальным рейтингом торгуемых в шорт |
Как то так. Возможно я немного где то ошибся... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
Спасибо, вроде бы то что надо, но тут есть одна проблема - этот код работает очень медленно, так-как на каждом баре перебирает весь вочлист. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не. Ну это для тестирования. Несколько раз протестировать можно и потерпеть...
Может и можно быстрее, но сходу у меня только такое решение.... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
Да, протестил и решил что от идеи нужно отказаться. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|