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



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

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

Олег, привет,

Есть вот какой вопрос

Требуется из кода АА в режимах бэктеста/оптимизации вызывать функцию Excel и возвращать результат расчетов в Ami

Как работать с wsh/vba в целом разобрался, однако чтобы вызвать функцию Excel ей требуется передать массив значений цены

При этом передать требуется не весь массив базы, а только ту его часть, которая в данный момент ограничена в настройках бэктестера/wf-оптимизатора, чтобы Excel считал только по тому набору свечей, с которым в данный момент работает бэктестер

Вопрос: как из кода узнать установленный в настройках бэктестера интервал свечей и присвоить его какой-либо переменной-массиву Ami, чтобы передать эту переменную как входной параметр для функции Excel?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Если я правильно понял вопрос, то по моему, никак нельзя.
Вот есть общий массив цены. Даже если ты оставишь кусок этого массива, а остальным элементам присвоишь Null, то длинна массива от этого не измениться и передашь ты длинный массив.
Кроме того из AFL никак не узнать даты начала и конца теста (или я забыл такой способ)
Можно правда запустить тест из стороннего скрипта (через OLE) и при этом задать границы. Тогда, разумеется в этом скрипте будут известны границы.
Код:
Analysis.RangeFromDate - defines "From" date
Analysis.RangeToDate - defines "To" date

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



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

СообщениеДобавлено: Чт Май 09, 2013 12:15 am Ответить с цитатой Вернуться к началу

Здесь основная идея вот в чем

Когда работаешь с бэктестером, ожидаешь, что все его компоненты (включая вызываемые внешними скриптами) работают с одним массивом (интервалом, набором свечей)

То есть ставим, к примеру, 30 свечей в настройках бэктестера, запускаем тест

В ходе выполнения ожидаем, что компоненты внешнего скрипта тоже работают с 30 свечами, а не с массивом С, равным всем ценам закрытия базы данных

Чтобы компоненты внешнего скрипта так делали, им надо как-то сказать, что свечей 30, то есть передать в качестве входного параметра для обработки

Вот вопрос в том как во внешний скрипт сказать "сейчас работаю с 30 свечами, вот тебе 30 свечей, считай", "а вот сейчас работаю с января по май, вот тебе 1200 свечей, считай"
Посмотреть профиль Отправить личное сообщение
sLy



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

СообщениеДобавлено: Чт Май 09, 2013 12:35 am Ответить с цитатой Вернуться к началу

Олег,

Возникла мысль

А не получается ли так, что когда в настройках бэктестера (или wf-оптимизатора) ставишь "с января по май" бэктестер при запуске (или wf-оптимизатор при запуске конкретного шага) встроенным массивам OHLCV присваивает четко значения заданного в настройках интервала, то есть первое значение массива С будет 1 января, последнее значение 31 мая?

Тогда это решает вопрос - можно просто передавать внешнему скрипту для расчета массивы OHLCV

Как думаешь?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Думаю, что нифига. В режиме explore наверняка не так.

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



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

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

Да, проверил, ты прав

В режиме бэктеста последняя свеча массива С равна последней в базе, даже если выставлен конкретный период тестирования

Ну это засада, как тогда скрипту-то говорить что считать!?

Выставил период в настройках, запустил бэктестер считать на этом периоде, а внешнему скрипту свечи этого периода отдать в расчет не можешь...

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen