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



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

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

Имеется пробойная систем, для снижения просадок хотелось бы протестировать данную систему фильтруя сигналы индикатором Avg Win%/Los%.
Немного о системе:
-система работает и в лонг и в шорт, сигналами являются пробой mах(min) за определенное количество баров .
-сигналы на выход: стоп профит, стоп лосс, стоп через N баров, а также переворот по противоположному сигналу.
-стопы организованы через ApplyStop ( полагаю для расчета индикатора придется избавляться от ApplyStop).
Возможно ли вести просчет Avg Win%/Los% внутри кода системы?
Если возможно, помогите плз...
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Вообще сложно. Работая с циклами, ты можешь запоминать эффективную цену входа и считать результат сделки по цене выхода. Далее вести счет переменным числа профитных сделок и убыточных -> индюк.
Вопрос за какой период ты будешь считать этот индюк и, учитывая что точно придется юзать SetBarsRequired(sbrall, sbrall), как будет считаться в коде этот индюк с периодом скажем месяц/полгода/год. Проблема в том что в конструкции For(i=0...) для номеров баров Ами возьмет то ли первый бар с даты теста, то ли первый бар с того места, когда она посчитает что все индюки рассчитаны, во втором случае у тебя тогда в массивы могут записаться лишние сделки. Как то пробовал решать эту задачу чисто afl-ными средствами, ничего нормального не получилось, форвардный тест точно не сделать.
Единственное решение на мой взгляд это сделать бектест, выгрузить в текстовый файл сделки в формате дата,результат. Потом сделать код с фильтром, который будет считывать этот файл, считать индюк и принимать решение о фильтрации, после чего это сделать бектест этого варианта. И сравнить.
Посмотреть профиль Отправить личное сообщение ICQ Number
Sergеi



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

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

Честно признаюсь, в АМИ далеко не специалист, и написание цикла для того чтобы
Цитата:

запоминать эффективную цену входа и считать результат сделки по цене выхода. Далее вести счет переменным числа профитных сделок и убыточных -> индюк.

для меня большая проблема...
Хотя примерно такой расчет я и предполагал, только период для расчета индикатора считается не по барам, а по количеству сделок

Например: по предварительному тестированию выяснили что при снижении средней прибыли%/убыток% за 100 сделок ниже порогового значения сделки не совершаем.
С начала истории система работает без индикатора пока не совершит 100 сделок(назовем периодом), после того как совершилось 100 сделок включается в работу индикатор и входы приобретают фильтр AvgWin%/Loss%(за 100 предыдущих сделок) > порогового значения... с таким фильтром система прогоняется до конца тестового периода.
Посмотреть профиль Отправить личное сообщение
spitfire



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Разбери код системы, написанной в цикле, в этой статье:
http://robostroy.ru/community/article.aspx?id=429
В самом низу приложен архив.
В твоем случае тогда даже не надо считать результат сделки так как он уже будет в файле сделок, куда ты их экспортируешь после бектеста. Тебе надо написать функцию, которая смотрит на дату входа в рынок, и считывает из файла 100 сделок до этой даты, подсчитывая число прибылей и убыток, а дальше считает индюк, после чего обнуляет сигнал входа или не обнуляет. С функцией считывания из файла справишься?
Посмотреть профиль Отправить личное сообщение ICQ Number
Sergеi



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

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

может есть у когот еще варианты решения такой задачки?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Самый "простой" способ описан тут
Самый простой вариант вывести нужный параметр в таблицу отчета тестера.

См
Ex 1: High level - custom metrics - cont.

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



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

СообщениеДобавлено: Сб Окт 06, 2012 12:51 am Ответить с цитатой Вернуться к началу

Sergеi писал(а):
Возможно ли вести просчет Avg Win%/Los% внутри кода системы?

Не совсем понятно зачем? Ведь АА считает этот параметр. Не проще ли в таком случае провести Walk-Forward Optimization?

Как мне кажется, если суть в том, чтобы останавливать систему и менять параметры это точно к Walk-Forward Optimization.
И осторожнее с ApplyStop, у ами с ними и командами Sell Cover разные приоритеты и он выходит по стопам и только потом смотрит сигналы на выход.
spitfire писал(а):
Разбери код системы, написанной в цикле, в этой статье:
http://robostroy.ru/community/article.aspx?id=429
В самом низу приложен архив.
Там регаться надо, не выложишь тут?
000 писал(а):
Самый "простой" способ описан тут
Да там же про ООП уже разговоры! Короче кончится всё С++ у Томаша)))


Последний раз редактировалось: kosbar (Сб Окт 06, 2012 1:13 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение ICQ Number
Sergеi



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

СообщениеДобавлено: Ср Окт 10, 2012 8:25 am Ответить с цитатой Вернуться к началу

Цитата:

Там регаться надо, не выложишь тут?

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen