Автор |
Сообщение |
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
При бектестинге пар, заметил, что иногда одна сделка открывается по одной акции, а по другой не открывается, хотя условие задано так, что этого вообще не может быть в принципе. Решил покопаться и нашел, что амиброкер знатно искажает цены, вплоть до 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
|
Кинь мне эти 2 символа. |
_________________ 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
Откуда: ЕС
|
Просто использую SPY в качестве эталона для выравнивания в Backtester Settings. А что можно еще как-то по-другому? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Хм. И не работает такой метод?
Это странно и плохо. |
_________________ 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
Откуда: ЕС
|
Пока ничего внятного не ответили. Пробовал и так и сяк. Не помогает.
Цитата: |
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
Откуда: ЕС
|
Обнаружил, что если использовать старый алгоритм выравинивания (fixup = 2), то все работает как нужно. Цены совпадают на 100%. Выходит, что это баг в новом алгоитме выравнивания (fixup = 1). |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А код который я тебе прислал с фиксап=2 работает нормально? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
Саппорт жжот
Цитата: |
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 - нет, когда эти два метода делают одну и ту же логику (забить отсутствующие бары предыдущим)
Да, работает, вродь. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А ведь точно. Если fixup = 1 то ами поля OHLC заполняет предыдущим значением Close. Соответственно и результат будет разный в зависимости от того какой символ базовый. Т.е. по Close должно быть все ОК, а по OHL нет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Nergal
Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС
|
Я сделал проще - тупо отключил эти алгоритмы выравнивания и просто добавил условие: Если у пары в обоих акциях есть хоть один отсутствующий бар в это же самое время - то не торгуем. Торгуем только тогда, когда в обеих акциях есть этот бар. Это ближе к реальности. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|