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



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

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

При бектестинге пар, заметил, что иногда одна сделка открывается по одной акции, а по другой не открывается, хотя условие задано так, что этого вообще не может быть в принципе. Решил покопаться и нашел, что амиброкер знатно искажает цены, вплоть до 8 центов. В зависимости от того, какая сейчас текущая акция. Т.е. 100% симметрия отсутствует.

Проверял этим кодом:

Код:

SymbolA = "CNL";
SymbolB = "WEC";


// data of symbol A
aIsSymbolExists = SetForeign(SymbolA, True, False);
aOpen = Open;
aHigh = High;
aLow = Low;
aClose = Close;
RestorePriceArrays(False);

// data of symbol B
bIsSymbolExists = SetForeign(SymbolB, True, False);
bOpen = Open;
bHigh = High;
bLow = Low;
bClose = Close;
RestorePriceArrays(False);

AddColumn(aOpen, "aOpen" ,1.3);
AddColumn(bOpen, "bOpen" ,1.3);
AddColumn(aHigh, "aHigh" ,1.3);
AddColumn(bHigh, "bHigh" ,1.3);
AddColumn(aLow, "aLow" ,1.3);
AddColumn(bLow, "bLow" ,1.3);
AddColumn(aClose, "aClose" ,1.3);
AddColumn(bClose, "bClose" ,1.3);

Filter = Name() == SymbolA;
//Filter = Name() == SymbolB;


Далее сравнивал в Экселе. В моем примере если эксплорим CNL то цены одни, если WEC - цены становяться другие на некоторых барах. Как такое возможно - хз. Использую всегда выравнивание (data holes aligning)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Кинь мне эти 2 символа.

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



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

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

Держи. Это база данных Амиброкера. Сразу можешь открывать ее. Я нашел причину. Это криво работает выравниватель отсутствующих баров. На ликвидных акциях, где все бары на месте - все работает нормально.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Тогда и качать не буду. Зачем? если и так понятно.
Разве что поковыряться с выравнивателем.
А ты как выравниваешь?

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



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

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

Просто использую SPY в качестве эталона для выравнивания в Backtester Settings. А что можно еще как-то по-другому? Smile
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Хм. И не работает такой метод?
Это странно и плохо.

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



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

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

Не, не работает. Отписался опять в саппорт. Посмотрим, что скажут.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Держи в курсе.

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



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

СообщениеДобавлено: Ср Сен 24, 2014 2:19 pm Ответить с цитатой Вернуться к началу

Пока ничего внятного не ответили. Пробовал и так и сяк. Не помогает.
Цитата:

Thank you very much for your e-mail. Please note that you can use PAD AND ALIGN to force the same set of bars for both tickers. That will however distort the quotes of one of these symbols (i.e. the one which is not used as a reference ticker in pad and align), but anyway - you still need some kind of synchronization for FOREIGN, so that happens anyway.
Remember also that you can reduce the impact of different timestamps if you use START TIME OF INTERVAL or END TIME OF INTERVAL in Tools -> Preferences -> Intraday, as the same minute bars will be stamped identically (so differences will only occur when the whole bar is missing in one of the tickers).
Посмотреть профиль Отправить личное сообщение
Nergal



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

СообщениеДобавлено: Ср Сен 24, 2014 6:13 pm Ответить с цитатой Вернуться к началу

Обнаружил, что если использовать старый алгоритм выравинивания (fixup = 2), то все работает как нужно. Цены совпадают на 100%. Выходит, что это баг в новом алгоитме выравнивания (fixup = 1).
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А код который я тебе прислал с фиксап=2 работает нормально?

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



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

СообщениеДобавлено: Чт Сен 25, 2014 1:55 am Ответить с цитатой Вернуться к началу

Саппорт жжот Laughing Laughing

Цитата:
There is NO BUG in alignment algorithm.

You have BUG in your BRAIN if you think that it is fine to fix holes and assume that everything is fine.
If your formula works "correct" with fixup = 2 it means that you are trading ON NON EXISTING DATA
- you take volume from previous bar, fill the hole and assume that everything is right. It is not.

But keep on living in fantasy world. A market would give you some lessons once you start trading this live.


Какая нафиг разница, торгует ли бектестер на несуществующих данных или нет. Вопрос был не в этом. А в том, какого хера, при торговле пары A/B, когда текущий обрабатываемый тикер А, то выравнивание одно, а когда тикер B - то другое? Почему fixup=2 работает, а fixup=1 - нет, когда эти два метода делают одну и ту же логику (забить отсутствующие бары предыдущим) Very Happy

Да, работает, вродь.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Сен 25, 2014 7:28 am Ответить с цитатой Вернуться к началу

А ведь точно. Если fixup = 1 то ами поля OHLC заполняет предыдущим значением Close. Соответственно и результат будет разный в зависимости от того какой символ базовый. Т.е. по Close должно быть все ОК, а по OHL нет.

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



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

СообщениеДобавлено: Чт Сен 25, 2014 2:20 pm Ответить с цитатой Вернуться к началу

Я сделал проще - тупо отключил эти алгоритмы выравнивания и просто добавил условие: Если у пары в обоих акциях есть хоть один отсутствующий бар в это же самое время - то не торгуем. Торгуем только тогда, когда в обеих акциях есть этот бар. Это ближе к реальности.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen