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



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

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

Кто-нибудь в курсе как заставить АмиБрокер торговать только определенные тикеры? Мне нужно, чтобы каждый день амиброкер отбирал топ-10 акций для лонга и топ-10 акций для шорта. Топ определяеться на основе PositionScore. Например отобрали 10 тикеров для лонга и 10 для шорта и если есть сигналы по каким-то тикерам - торгуем их. Если нет, то нет.

Через Custom Backtester Interface как я понял это реализовать невозможно, так-как там можно работать только с сигналами, а мне нужно еще до сигналов отобрать тикеры.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Код:

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
Откуда: ЕС

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

Спасибо, вроде бы то что надо, но тут есть одна проблема - этот код работает очень медленно, так-как на каждом баре перебирает весь вочлист.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Не. Ну это для тестирования. Несколько раз протестировать можно и потерпеть...
Может и можно быстрее, но сходу у меня только такое решение....

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



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

СообщениеДобавлено: Вс Дек 23, 2012 8:36 pm Ответить с цитатой Вернуться к началу

Да, протестил и решил что от идеи нужно отказаться. Smile
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen