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



Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва

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

Всем привет,

Что делаю:
тестирую портфель из акций, есть индикатор по которому определяю вес каждой акции.

Значения этого индикатора через addtocomposite передаю в custom backtester interface

И там на втором уровне где используется sig. пытаюсь при входном сигнале указать на сколько рублей надо брать акцию.

Код:

for(sig = bo.GetFirstSignal(i);sig;sig = bo.GetNextSignal(i))
      {               
         
         if(sig.IsEntry())
         {            
            //определяем на какой акции пришел сигнал
            for(j = 0;j<numoftickers;j++)
            {            
               if(sig.Symbol == StrExtract( Tickers_arr, stock_indexes[j] ))
               {
                  symb_ind = j;   
                  break;
               }
            }
            //////////////////расчет размера позиции/////////////////////////
            CapitalW = bo.Equity * stock_size[symb_ind];
                        
            sig.PosSize = CapitalW;   
            _TRACE("size: " + NumToStr(sig.PosSize));         
            /////////////////////////////////////////////////////////////////         
         }      
      }


Делал трассировку, точно правильное кол-во в рублях передается в sig,PosSize, но тестер зараза не всегда покупает там акцию.

В коде самой стратегии ничего про УК не написано, ну т.е. setpositionsize() не пишу, пробовал писать по разному, не помогло.

Сигнал который приходит 100% должен быть взят, т.е. перед этим на акции нет открытой позиции. Портфель весь в деньгах.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Может ограничение по объему срабатывает?
Limit trade size as % of entry bar volume

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



Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва

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

000 писал(а):
Может ограничение по объему срабатывает?
Limit trade size as % of entry bar volume


стоит 0, т.е. отключен


Кстати интересный момент, если в сайз написать просто число, то все сделки берутся.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ну тогда еще глянь
Disable trade size limit when bar volume is zero
и включи report - Detailed log и глянь что пишет в отчете.

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



Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва

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

000 писал(а):
Ну тогда еще глянь
Disable trade size limit when bar volume is zero
и включи report - Detailed log и глянь что пишет в отчете.


Disable trade size limit when bar volume is zero - галка стоит

прикрепил что получилось.

Он на 1 баре мне создал сигналы сразу на 3-х акциях gazp, sber, tatn
лимиты я указал только для tatn. gazp и sber указал 0.

Выглядит так, что он посмотрел только на газпром, а на остальные сигналы забил.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Тогда я пас. Я custom backtester interface не пользуюсь... Sad

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



Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва

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

000 писал(а):
Тогда я пас. Я custom backtester interface не пользуюсь... Sad



жаль, 2-й день парюсь) Ну как рожу напишу решение
Посмотреть профиль Отправить личное сообщение
Alexander_tr



Зарегистрирован: 01.04.2010
Сообщения: 60
Откуда: Москва

СообщениеДобавлено: Вт Мар 27, 2012 10:15 pm Ответить с цитатой Вернуться к началу

Ну что есть решение.

Что бы проигнорировать входной сигнал, в описании custom backtester interface в примере пишут

Код:

sig.PosSize = 0;


Проблема в том, что если в одно время пришло несколько сигналов от разных инструментов, то тестер увидев, что у вас на первом сигнале нет денег, проигнорирует все следующие, подумав автоматом что и на следующие денег быть не должно.

Что бы все работало как надо нужно писать
Код:

sig.PosPrice = -1;


т.е. делать нереальную цену. Тогда все работает как надо.
Оказывается Томас (разраб ами) в своей презентации custom backtester interface именно этот вариант и использовал. А предыдущий актуален, если у вас не будет сразу несколько сигналов в одно время
Посмотреть профиль Отправить личное сообщение
rupiter



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

СообщениеДобавлено: Пт Июл 08, 2016 11:56 am Ответить с цитатой Вернуться к началу

Обнаружились интересные глюки кастомного бэктестера:

1. При использовании low level custom backtesting, независимо от остального кода, в Detail Log отсутствуют даты сделок (просто пустая колонка!). При использовании high и mid уровня все отображается нормально.

2. При использовании low level custom backtesting, при добавлении своего условия (например, выхода на n-ом баре), после тестирования в списке Trade List сделки отображаются правильно. Но если (через правую кнопку мыши) вызвать команду Show arrows for actual trades, на графике отображаются сделки, как если бы они были завершены основными правилами системы. Например, вход и выход в нашей системе предусмотрен через пересечение скользящих. Мы добавили временной стоп внутри цикла кода кастомного бэктестера. По указанной команде на графике отобразятся входы и выходы по пересечению скользящих - кастомный выход будет проигнорирован. Хотя в списке сделок выходы отображены с учетом стопов.

Что интересно, если вызвать другую команду - Show current trade arrows, то текущая сделка на графике будет показана правильно.

UPD. 1. Нашел в сети письмо Томаша, что при low level вообще не подразумевается правильная работа Detail Log. То есть, его надо заполнять "ручками". На то, мол, и low level.
2. Со стрелками вообще какой-то кошмар. Они живут какой-то своей жизнью... Вот у нас список Trade List. Казалось бы, самое логичное это проставить стрелки в соответствии со списком. Ан нет. Стрелки можно отобразить только по условиям входов / выходов их основного кода либо сделки Raw. Правильно лишь отображаются индивидуальные сделки.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen