Автор |
Сообщение |
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
Можно ли реализовать обратную связь между АА и кодом afl то есть, например если тестирование идет по группе тикеров - получить в afl название группы?
в GetOption такого нету...
А то сделана система с пирамидингом, так как здесь на сайте и посоветовано - несколько одинаковых тикеров в одну группу (гениально) вот только сравнивать ряд параметров с ее "мамой" т.е. без пирамидинга - сложно. Все время крутить параметры депо и размера поз замучился. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если чесно, то не совсем понятно, что и зачем надо. Ведь тест или исследование в АА запускается для конкретной(ых) группы и по идее имя группы задает пользователь. Тогда зачем надо еще раз узнавать имя?
Но скорее всего можно в AFL вставить кусок на JS и в нем через COM (ActiveXObject) узнать имя группы и передать в АФЛ. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
Если чесно, то не совсем понятно, что и зачем надо. Ведь тест или исследование в АА запускается для конкретной(ых) группы и по идее имя группы задает пользователь. Тогда зачем надо еще раз узнавать имя?
Но скорее всего можно в AFL вставить кусок на JS и в нем через COM (ActiveXObject) узнать имя группы и передать в АФЛ. |
попробую объяснить зачем.
есть система, на один тикер. работает на 100% депо.
размер депо и лот определяются самой системой (допустип по эквити)
Пробуем потестировать ее на группе тикеров и что?
Первая сделка по первому тикеру блокирует сделки по остальным. Ага! У нас запрещены плечи... стоп! Мы тестируем систему без плеч... так так, лезем в afl ставим в размере лота х/количество тестируемых тикеров. Отлично, заработало! Ага, теперь надо опять посмотреть по одному тикеру... ой... чо та у нас доходность возрасла в 10 раз.... и просадка... а! блин! лезем в Afl убираем х/количество тикеров....
И такая дребедень целый день (с) чуковский.
пользоваться АА-шными установками неудобно и не получится, потому что при тестировании по ряду тикеров размер капитала на систему разный, в зависимости от риска и эффективности. Так что вариантов кроме как выставить руками в afl я боле не вижу.
На счет JS - был бы очень благодарен за пример, получающий текущий WatchList из АА (с джавой не дружу ). |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Завтра попробую написать |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
К сожалению сегодня не получилось. Обязательно постараюсь завтра (в четверг) вечером. Вообще поразмылил на этот счет. Запустить оптимизатор или тестер из скрипта не вопрос (попадались мне примеры). При этом очень просто ему задать на каких символах делать тест и другие установки. Я так понимаю, что при таком задании АА полностью забьет на установки сделанные руками в Ами.
А вот получить из скрипта значения сделанных установок (в часности список тикеров на которых проходит тест) это вопрос.... Положительный результат не гарантирую. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
Запустить оптимизатор или тестер из скрипта не вопрос (попадались мне примеры). При этом очень просто ему задать на каких символах делать тест и другие установки.
|
если можно - то и это тоже. а результаты сваливаться в репорт будут?
а то меня интересует тестирование "помесячно" для интрадэйных систем. потому как просто тестирование на периоде картины не дает нормальной, период выбираешь "подлинее", в итоге просадка может очень меняться (в начале периода получили хороший плюс, потом еще более хороший минус. Суммарно просадка не более чем -0.х% а реально она для меня тот самый - хороший "-". А максимально плохой трейд - этого мало, интересна череда плохих трэйдов. Вобщем рассматриваем ситуацию когда профит выводится раз в месяц.)
000 писал(а): |
А вот получить из скрипта значения сделанных установок (в часности список тикеров на которых проходит тест) это вопрос.... Положительный результат не гарантирую. |
ну чтож, попытка не пытка. Если это удастся - я окончательно убедюсь, что в ами можно если не все, то почти все... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
pitero писал(а): |
000 писал(а): |
Запустить оптимизатор или тестер из скрипта не вопрос (попадались мне примеры). При этом очень просто ему задать на каких символах делать тест и другие установки.
|
если можно - то и это тоже. а результаты сваливаться в репорт будут?
а то меня интересует тестирование "помесячно" для интрадэйных систем. потому как просто тестирование на периоде картины не дает нормальной, период выбираешь "подлинее", в итоге просадка может очень меняться (в начале периода получили хороший плюс, потом еще более хороший минус. Суммарно просадка не более чем -0.х% а реально она для меня тот самый - хороший "-". А максимально плохой трейд - этого мало, интересна череда плохих трэйдов. Вобщем рассматриваем ситуацию когда профит выводится раз в месяц.) |
Самый простой пример из хелпера Ами
Код: |
/* create AB object */
AB = new ActiveXObject("Broker.Application");
/* retrieve automatic analysis object */
AA = AB.Analysis;
/* load formula from external file */
AA.LoadFormula("afl\\macd_c.afl");
/* optional: load settings. опционально: можно загрузить настройки АА */
// AA.LoadSettings("the_path_to_the_settings_file.abs");
/* setup filters */
/* установка фильтра */
/* backtest over symbols present in market 0 only (zero-based number) */
/* тест символов входящих в маркет 0 */
AA.ClearFilters();
AA.Filter( 0, "market" ) = 0;
// uncomment line below to
// AA.Filter( 1, "market" ) = 2; // exclude 2nd market
/* set apply to and range */
AA.ApplyTo = 2; // use filters
AA.RangeMode = 0; // use all available quotes
/* run backtest and display report */
AA.Backtest();
AA.Report(""); // empty file name means display report
|
А вот пошаманить на счет получить значение фильтров в АА опять не успел. И завтра тоже не смогу ( |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Все оказалось довольно просто
Вот этот код исследования
Код: |
Filter = 1;
AB = CreateObject("Broker.Application");
AA = AB.Analysis;
if(AA.ApplyTo == 1)
AddTextColumn("Только активный символ", "исследуется");
else
AddTextColumn("не только активный", "исследуется");
|
легко определяет установлено ли в АА только активный символ (current symbol) или другие установки. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Соответственно можно прямо в коде задать настройки АА для Apply to: |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
Соответственно можно прямо в коде задать настройки АА для Apply to: |
это хорошо, спасибо понял где копать (правда в хэлпе нет ничего про ИМЯ группы, но думаю выкручусь) вот только непонятно вот что:
данный код что делает? Инициализирует окно АА ?
я вставил код в afl сижу правлю, а это окно АА у меня вылезает каждые 3 секунды. хоть закрывай хоть убирай на задний план. мож как то можно не открывать его а брать текущее (если оно открыто в данный момент) т.е. искать АА, а если не открыто - то ничего не делать.... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
На счет имени группы не подскажу.
Цитата: |
данный код что делает? Инициализирует окно АА ?
|
Этот код создает объект АА. Вот оно и вылазит. Надо было этот код пихать в АА и использовать в качестве исследования (explore). При переключении Apply to с current symbol на другие установки это сразу видно по таблице результатов исследования. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
На счет имени группы не подскажу.
Цитата: |
данный код что делает? Инициализирует окно АА ?
|
Этот код создает объект АА. Вот оно и вылазит. Надо было этот код пихать в АА и использовать в качестве исследования (explore).
|
куда пихать? В АА я могу открыть любой индикатор или систему или еще что, лишь бы было написано на языке afl. Я видел что в принципе работает и определяет в explore-, я тока не понял - он новый анализатор открывает что ли (новый АА всегда помнит настройки с какими был закрыт старый АА поэтому корректно все получается) закрыв старый? хм. А найти АА, а не создавать можно? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
pitero писал(а): |
А найти АА, а не создавать можно? |
Вроде нашел решение - может кому пригодится.
AAAction = Status("action");
if(AAAction == actionScan) { /* код если мы сканим*/}
else if (AAAction == actionExplore) { /*код если мы эксплорим*/
Filter = 1;
AB = CreateObject("Broker.Application");
AA = AB.Analysis;
if(AA.ApplyTo == 1)
AddTextColumn("Только активный символ", "исследуется");
else
AddTextColumn("не только активный", "исследуется");
}
ну и аналогично можно прописать для
actionBacktest
actionExOptimizePortfolio
Спасибо, думаю можно вздохнуть спокойно |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Ничего не понял. Тот код который я дал - это пример. Подобную фигню можно вставить в любой код системы которую тестируешь в АА и тогда появится возможность узнавать настройки АА. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
pitero
Зарегистрирован: 09.06.2008
Сообщения: 65
Откуда: Екатеринбург
|
000 писал(а): |
Ничего не понял. Тот код который я дал - это пример. Подобную фигню можно вставить в любой код системы которую тестируешь в АА и тогда появится возможность узнавать настройки АА. |
Да все понятно и даже работает. Спасибо.
А чтб понять то что я говорю - вставь код себе в код системы и открой ее в редакторе формул. а потом попробуй что-нибудь в редакторе поделать.
постоянно вылезающий каждые 3 сек. АА заколебет... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|