Тестирование на истории

Автор: RusNur

Тестирование на истории - Tue Jan 26 2010 02:32 PM

Подскажите, пожалуйста, каким образом возможно увеличить историю котировок. На минутном графике ставлю максимальное количество свечей 100 000, но прога всё равно дает только 19 478. На дневном графике тоже не получается получить доступ к котировкам до 2009 года.
Автор: Nektodron

Re: Тестирование на истории - Tue Jan 26 2010 02:34 PM

Если вы берете историю с демо-сервера, то там больше просто нет. Скачайте текстовый файл и пользуйтесь им.
Автор: RusNur

Re: Тестирование на истории - Tue Jan 26 2010 02:47 PM

спасибо!
Автор: Savoyar

Re: Тестирование на истории - Wed Feb 03 2010 01:02 PM

А как это делать?
В инструкции не нашел. Ну, есть у меня текстовый файл истории сделок, а дальше?
Автор: ZSE

Re: Тестирование на истории - Wed Feb 03 2010 01:26 PM

http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=635#Post635
Автор: Savoyar

Re: Тестирование на истории - Wed Feb 03 2010 01:38 PM

Большое спасибо!
Автор: uprav

Re: Тестирование на истории - Sun Feb 14 2010 07:08 PM

Уважаемый Nektodron, подскажите пож как использовать болки "Посл. поз. была короткой/длинной"??? Примеров в справке нет. Дело в том что если использовать оба блока, с выражениями "И", они получаются взаимоисключающие, т.е. не может совершиться ПЕРВАЯ СДЕЛКА, относительно которой затем будет отсчитываться какая была последняя сделка, КАК СОВЕРШИТЬ ПЕРВУЮ СДЕЛКУ, как обойти эту проблему? Или как на первом сигнале входа игнорировать это условие, а на последующих его включать?
2. В блоке "Откр.поз. по рынку" ставлю количество 10 (думаю что это 10 контрактов), но результат тестирования выдаёт какую то ерунду - увеличивается количество сделок в N раз на том же промежутке истории. Что за величина "количество"?
Автор: Nektodron

Re: Тестирование на истории - Sun Feb 14 2010 09:25 PM

1. Они были сделаны по просьбе пользователей, чтобы после длинной позиции сразу открывать короткую
2. Количество и есть лоты, очень странно, что меняется количество сделок.
Автор: uprav

Re: Тестирование на истории - Mon Feb 15 2010 08:14 PM

Подскажите пож: например необходимо вычислить выражение в формуле и оптимизировать переменную в этой формуле, как её туда ввести чтобы она попала в оптимизацию (блок константа есть, а блок переменная?)?
Автор: uprav

Re: Тестирование на истории - Mon Feb 15 2010 08:19 PM

Извините...понял, вводим блок "Константа"
Автор: uprav

Re: Тестирование на истории - Mon Feb 15 2010 10:10 PM

Подскажите пож: возможно ли в блок "Трейл Стоп" ввести оптимизируемую переменную(или константу), чтобы оптимизировать трейл-стоп? Или вообще хотя бы как оптимизировать "Стоп"
Автор: uprav

Re: Тестирование на истории - Mon Feb 15 2010 10:26 PM

Originally Posted By: Nektodron

2. Количество и есть лоты, очень странно, что меняется количество сделок.


...Почему всё таки на количество сделок при тестировании влияет "количество" лотов/контрактов. Увеличиваю кол-во сделок с 1 на 5, за год кол-во сделок увеличивается с 2000 на 2700...
Автор: Nektodron

Re: Тестирование на истории - Mon Feb 15 2010 10:32 PM

Originally Posted By: uprav
Подскажите пож: возможно ли в блок "Трейл Стоп" ввести оптимизируемую переменную(или константу), чтобы оптимизировать трейл-стоп? Или вообще хотя бы как оптимизировать "Стоп"


Ну вообще, в блоке трейл-стоп есть 3 параметра оптимизации.

Originally Posted By: uprav

...Почему всё таки на количество сделок при тестировании влияет "количество" лотов/контрактов. Увеличиваю кол-во сделок с 1 на 5, за год кол-во сделок увеличивается с 2000 на 2700...


Не очень понятно, что происходит. Можете прислать этот скрипт на contact@tslab.ru
Автор: uprav

Re: Тестирование на истории - Mon Feb 15 2010 10:34 PM

Подскажите пож, на демо-сервере есть ФОРТС?
Автор: Nektodron

Re: Тестирование на истории - Mon Feb 15 2010 11:23 PM

нет
Автор: uprav

Re: Тестирование на истории - Tue Feb 16 2010 09:11 PM

Originally Posted By: Nektodron
Originally Posted By: uprav
Подскажите пож: возможно ли в блок "Трейл Стоп" ввести оптимизируемую переменную(или константу), чтобы оптимизировать трейл-стоп? Или вообще хотя бы как оптимизировать "Стоп"

Ну вообще, в блоке трейл-стоп есть 3 параметра оптимизации.

Что 3 параметра есть - это понятно, но как его внедрить в "свойства" и в "оптимизацию", дело в том что я изначально в этом блоке задал величины - теперь я их удалить оттуда не могу, могу только изменить, блок удлаять и заново его строить???
Автор: Nektodron

Re: Тестирование на истории - Tue Feb 16 2010 11:45 PM

возьмите ночную сборку, это баг просочился в 12й билд, то что нельзя удалить значения параметров, если они уже вбиты, только поменять можно.
Автор: uprav

Re: Тестирование на истории - Thu Feb 18 2010 04:10 PM

Originally Posted By: uprav
Уважаемый Nektodron, подскажите пож как использовать болки "Посл. поз. была короткой/длинной"??? Примеров в справке нет. Дело в том что если использовать оба блока, с выражениями "И", они получаются взаимоисключающие, т.е. не может совершиться ПЕРВАЯ СДЕЛКА, относительно которой затем будет отсчитываться какая была последняя сделка, КАК СОВЕРШИТЬ ПЕРВУЮ СДЕЛКУ, как обойти эту проблему? Или как на первом сигнале входа игнорировать это условие, а на последующих его включать?

Originally Posted By: Nektodron

1. Они были сделаны по просьбе пользователей, чтобы после длинной позиции сразу открывать короткую


Уважаемый Nektodron, подскажите ещё: с какого момента начинает исчисляться "последняя сделка"??? С открытия сессии? Или со вчерашней сессии??? Меня волнует как запустить новый скрипт с таким условием и где он будет брать "последнюю сделку"???
Автор: Nektodron

Re: Тестирование на истории - Thu Feb 18 2010 04:29 PM

Не очень понял, о чем вы. Вероятно о блоках "последняя сделка была короткой" или длинной.
Сделки скрипт из общего списка сделок, которые можно посмотреть в таблице "мои сделки", отфильтровывая свои по комментарию.
Если вы используете блоки типа "последняя сделка..." для открытия позиции в обе стороны, то такой скрипт торговать не будет, т.к. не будет первой сделки. Используйте для открытия в одну сторону блок "последняя сделка...", а для другой блок "Есть активная" с отрицанием.
Автор: uprav

Re: Тестирование на истории - Thu Feb 18 2010 05:40 PM

Дело в том что в тестовом режиме - таблица "свои сделки" пуста, в свойствах ничего не выбрать, я так понимаю что она не настриваемая, это в тестовом режиме только так или что то не настрено, сделка сегодня была - она отображается в скрипте в окне "сделки"? В окне "сделки по инструментам" прут все сделки, какой либо комментарий по которому можно отсортировать я не нашёл, где искать?
Автор: Nektodron

Re: Тестирование на истории - Thu Feb 18 2010 05:47 PM

я понял, вы не включили опции, "исполнять входа автоматически" и "исполнять выхода автоматически".
Т.е. скрипт генерирует команды, но в рынок они не уходят и их нужно подтвержать через "Менеджер команд"
Автор: uprav

Re: Тестирование на истории - Fri Feb 19 2010 07:37 AM

Извините, у меня алгоритм немного "кривой" был, а галочки в свойствах я сразу ставил, но тем не менее на тесте когда сделки начали исполняться, в табличке "свои сделки" они не отображаются, м.б. это на тесте только? Или они на тесте должны отображаться, но не настроено?
Автор: uprav

Re: Тестирование на истории - Fri Feb 19 2010 07:45 AM

Originally Posted By: Nektodron
Не очень понял, о чем вы. Вероятно о блоках "последняя сделка была короткой" или длинной.
=Если вы используете блоки типа "последняя сделка..." для открытия позиции в обе стороны, то такой скрипт торговать не будет, т.к. не будет первой сделки. Используйте для открытия в одну сторону блок "последняя сделка...", а для другой блок "Есть активная" с отрицанием.=

Подскажите, м.б. рассмотрите вопрос о том чтобы в эти блоки ("Посл.сделка была длинной/короткой") ввести имитацию ПЕРВОЙ сделки с возможностью выбора "0"-не было первой сделки, "длинная" или "1" первая была длинная, "короткая" или "-1" первая была короткая? Возможно такое???
Автор: Nektodron

Re: Тестирование на истории - Fri Feb 19 2010 10:12 AM

Сделать можно все, только подумать нужно, что такое имитация? Параметр ввести, что если сделок не было - выдавать "истина", а не "ложь"? Тогда бы можно было выставить одному из блоков такой параметр, а другому нет.
Автор: uprav

Re: Тестирование на истории - Fri Feb 19 2010 10:42 AM

я думаю так (если всё правильно понял): если сделки эти блоки берут из таблички "сделки", ну или ещё из какой таблицы, значит первое условие проверки - это наличие в этой самой таблице сделок - если они есть, значит этот параметр берёт данные оттуда, если их нет, то он "смотрит" на этот задаваемый параметр и соответственно после этого он выводит "истину" или "ложь" в зависимости от этого задаваемого параметра, после этого начнут появляться седлки в таблице и он будет "смотреть" уже таблицу. Те кто этими блоками пользовался раньше, для них будет стоять "0" - т.е. первой сделки нет, на их результаты в этом случае ничего повлияет и всё останется как прежде, думаю так===А параметры эти думаю нужно выставлять обоим блокам(по 2 параметра "0" и "-1" для "посл.длинная" и "0" и "1" для "посл.короткая"), т.к. первая сделка может быть и длинная и короткая - это вопрос к тому как игнорировать это условие на ПЕРВОЙ сделке, а на последющих включать. Уважаемый Nektodron это условие очень неоценимо бы добавило гибкости при умелом использовании
Автор: uprav

Re: Тестирование на истории - Sun Feb 21 2010 11:45 AM

Originally Posted By: Nektodron
возьмите ночную сборку, это баг просочился в 12й билд, то что нельзя удалить значения параметров, если они уже вбиты, только поменять можно.

для того чтобы поменять на новую сборку, нужно пакет обновления с сайта разархивировать в каталог, где установлена программа, правильно понимаю?
Автор: andy

Re: Тестирование на истории - Sun Feb 21 2010 11:47 AM

Originally Posted By: uprav
Originally Posted By: Nektodron
возьмите ночную сборку, это баг просочился в 12й билд, то что нельзя удалить значения параметров, если они уже вбиты, только поменять можно.

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


Да.
http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=20#Post20
Автор: usas

Re: Тестирование на истории - Sun Feb 21 2010 08:02 PM

Простите, но из вашей дискуссии я так и не понял, как при первоначальном запуске оживить блк"Есть активная позиция". При вызове скрипта на редактирование выходит ошибка "NO_INPUT".
До считывания последней сборки эта проблема не выскакивала, но нельзя было оптимизировать, т.к. не стирались параметры. Теперь параметры стираются, но...no_input!
Выходные пропадают..:-(((
Автор: Nektodron

Re: Тестирование на истории - Sun Feb 21 2010 08:27 PM

NO_INPUT - означает, что блок ни с чем не соединен, невозможно построить код скрипта. Перевод я добавлю в новый билд. Блок "есть активная позиция" нужно соединить с источником, для которого эти позиции должны быть просмотрены.
Автор: usas

Re: Тестирование на истории - Sun Feb 21 2010 09:25 PM

Спасибо, все заработало!!
Оптимизируем..
Кстати, какая идея лежит в основе оптимизации?
Простой перебор всех сочетаний параметров? А цель по какому параметру или группе?
Автор: uprav

Re: Тестирование на истории - Wed Feb 24 2010 07:11 PM

При тестировании на демо-сервере скрипта с источником LKOH и с обновлением в интервале 1 минута, с целю уменьшения времени выполнения скрипта (среднее выполнение 100-300 мс- около 7500 баров), уменьшил интервал дат было: с 01.02.10 поменял на: с 05.02.10 (или с 10.02.10), при этом возникла ошибка:
System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
в System.ThrowHelper.ThrowArgumentOutOfRangeException()
в System.SZArrayHelper.get_Item[T](Int32 index)
в TSLab.User.Script.Execute(IContext context, ISecurity var0, ISecurity var1)

пока не вернул дату с 01.02.10. Почему возникает ошибка и какой есть предел уменьшения количества обрабатываемых скриптом баров???
Автор: uprav

Re: Тестирование на истории - Mon Mar 01 2010 07:15 PM

Подскажите,как рассчитывается проседание при тестировании "рынок", с системой вроде как понятно, дата и цифра соответствует картинке в "доходе", а вот "рынок" не совсем понятно почему взято такое проседание, хотя оно намного больше (см.скрины)

Понятно по-моему===при "купил и держи" берётся наибольшее отрицательное значение...
Автор: Nektodron

Re: Тестирование на истории - Mon Mar 01 2010 08:16 PM

Просадка считается от зафиксированного дохода, у рынка зафиксированный доход - начало тестирования.
Автор: uprav

Re: Тестирование на истории - Tue Mar 02 2010 09:03 AM

Подскажите пож, можно как то экспортировать котировки с боевого сервера в файл? Чтобы тестировать и редактировать алгоритмы вне рабочее время сервера
Автор: ZSE

Re: Тестирование на истории - Tue Mar 02 2010 09:09 AM

Вы это имеете в виду http://www.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=635#Post635 ?
С боевого сервера при подключении можно построить график - данные попадут в кэш - и их можно будет использовать. Но тут глубина данных на сервере зависит от интервала.