Блог им. bsk

Глаза обманывают или почему надо все тестировать

Год назад пришел ко мне клиент и говорит: «Хочу робота для Quik».
Объяснил стратегии — очень простую:
Берем фьючерс на доллар-рубль Si, таймфрейм 30 или 60 минут, строим машку.
Ниже нее еще одну на 1-2% ниже, Выше -соответсвенно, т.е. получаем канал из трех машек.
От верхней шортим, от нижней лонгуем.
Система реверсная — переворотная.
Я клиента спрашиваю — стопы нужны?
Он — зачем, все равно все возвращается к средней, а стопы постоянно будут выбивать.
Я спрашиваю, надо ли тестировать систему?
Он — зачем я и так глазами вижу, что система прибыльная и будет колбасить мне бабло, т.к. очень много прибыльных сделок.

Я все таки уговорил его посидеть 30 минут и подождать, накидал в wealth-lab код и показал ему результаты:

Глаза обманывают или почему надо все тестировать

66% прибыльных сделок, т.е. 2 из 3-х  -  круто, но система, то сливает:

Глаза обманывают или почему надо все тестировать

Я говорю клиенту, что во флете он зарабатывает часто и по чуть-чуть, а в трендах очень сильно сливает.
Давайте перевернем систему:

Глаза обманывают или почему надо все тестировать
Всего 33% прибыльных сделок, но система зарабатывает:

Глаза обманывают или почему надо все тестировать

В итоге клиент вообще отказался от робота, т.к. его система сливает,
а наоборот он не готов был психологически торговать, при 1-й прибыльной сделке из 3-х.

P.S. Прежде чем торговать на реал, нужно тестировать стратегию в специализированном ПО (wealth-lab, amibroker и т.д.)
      или если не умеете програмить, то на бумаге или в Excel.

P.S.S. Код:
{#OptVar1 20;8;30;2}
{#OptVar2 2;1;20;1}
var Bar,MA,MAD,MAU:integer;
MA:=EMASeries(#Close,#OptVar1);
MAD:=CreateSeries;
MAU:=CreateSeries;
for Bar := 100 to BarCount — 1 do begin
@MAD[bar]:=@MA[bar]*(1-#OptVar2/1000);
@MAU[bar]:=@MA[bar]*(1+#OptVar2/1000);
if LastShortPositionActive then
if CoverAtStop( Bar, @MAU[bar-1],LastPosition, 'Sell' ) then
BuyAtStop(Bar, @MAU[bar-1], 'Short' );
if LastLongPositionActive then
if SellAtStop (Bar, @MAD[bar-1],LastPosition,'Cover' ) then
ShortAtStop (Bar, @MAD[bar-1],'Buy' );
if not lastpositionactive then begin
ShortAtStop(Bar, @MAD[bar-1], 'Short1' );
BuyAtStop (Bar, @MAU[bar-1],'Buy1' );
end;
end;
PlotSeries( MAD, 0, #Red, #Thick );
PlotSeries( MA, 0, #Blue, #Thick );
PlotSeries( MAU, 0, #Green, #Thick ); 
★26
58 комментариев
Лучше бы сделал робота, добавил бы ликвидности, да и что пилить))
Терентьев Владимир, Si — самый трендовый инструмент на рашке, а он хотел торговать контр-тренд. Зачем было обманывать человека? Я за своей кармой пытаюсь следить.
avatar
robot_bsk, сбер самый трендовый из ликвидных, если уж на то пошло…
Ну если «карма» имеется ввиду консультанта по роботостроению, то да, наверное, так правильно. Но если с точки зрения спекулянта, то должно быть плевать, кто там выигрывает, а кто проигрывает.
Терентьев Владимир, С этим я не соглашусь. На Si практически любая трендовая стратегия работает, а на Сбере нет. На сбере Макд хорошо работает — а это контр-тренд
avatar
robot_bsk, еще вопрос таймфрема, но я думаю, смысла спорить нет)) у каждого уже есть свое мнение))
Терентьев Владимир, Согласен, а на каком таймфрейме сбер трендовый, если не секрет?
avatar
robot_bsk, считайте, ничего личного :)
robot_bsk, приветствую, на мыло скинь пожалуйста текст для WelthLab mike.usachev@gmail.com
Заранее спасибо.
Усачёв Михаил, Отправил
avatar
«Всего 33% прибыльных сделок, но система зарабатывает:»

так это на истории зарабатывает, а на реале сливать скорее всего будет. 99%
avatar
Cokol23, Лучше торговать то, что на истории зарабатывало и при max drawdown отключить и сказать себе, что рынок поменялся. Чем торговать то, что проигрывало и при проигрыше в реале понять что ты баран
avatar
клиент правильно все говорит, стопы не нужны да и робота тестить это только время зря тратить
avatar
SHCHUTUSHCHA, Абсолютно согласен :-))). Также считают 95%
avatar
А как это МАшка на 1-2% ниже, просто с другим периодом что ли? Или сами считаете среднюю цену и отбрасываете 1-2%?
avatar
home30, Строите Машку в Quik, во вкладке «Дополнительно», ставите галку «Процентное изменение» и вписываете в поле 98 или 102 — это и будут 2 машки на 2 процента ниже и выше средней.
avatar
robot_bsk, похоже на Envelope (конверты).
avatar
Serg, Да получиться то же самое, только что проверил.
avatar
robot_bsk, ok
avatar
А штука интерестная… Было бы прикольно глянуть чтонибудь такое в хеджированием по виксу. Или контр тренд исклучительно в afterhours в направлении закрытия.
avatar
тестить тоже по разному можно, если стратегия среднесрочной торговли и устойчивая на длительном интервале, то и запускать на реал можно после теста, есть конечно вероятность слива, но заработка то выше гораздо.Сам вот несколько лет искал стратегию, в итоге не являясь каким то супер пупер программистом нашёл довольно простую для программирования закономерность на фРТС, которая зарабатывает стабильно каждый год, написал сам в ТСлабе запустил в феврале, вот уже второй фьючерс в плюс торгует, так что далеко не всегда бэктестинг — чушь)
Asket_m_pro, все правильно делаете, сначала тест, а потом торговля. Выборку необходимо брать с 2008 года или раньше, чтобы было жесткое падение, бурные рост в 2009-10 и флет 12 и 13 годах.
avatar
robot_bsk, так и тестирую, даже с 2006 у меня данные по пятиминуткам, каждый год базовая доходность без учёта плеча выходит от 20 до 50%, и просадка около 10%, при проскальзывании в 30пт забивал, на реале проскальзывание пока даже меньше выходит, но даже при 60пт доходность сохраняется по тестам, причем самые лучшие года для заработка — с движением но не сильно крутым, как 2011,2012
совсем другое дело — краткосрочка, тут закономерности меняются быстрее чем их можно отследить запрогить и протестировать, поэтому проще самому их выторговывать, но для этого нужно быть квалифицированным трейдером
Asket_m_pro, У меня все стратегии на 30 минутных барах. По каждой стратегии в среднем 1-2 сделки в день.
avatar
robot_bsk, помимо робота счас торговать на минутке учусь, есть возможности, но тяжело
Asket_m_pro, Я руками не торгую, т.к. начинаю тильтовать. Только роботы, к тому же есть положительный опыт — в 2011 году 12 место по доходу в % на ЛЧИ investor.rts.ru/ru/statistics/2011/default.aspx
avatar
robot_bsk, а у меня наконец то скальпинг начал удаваться, но я себя счас строго лимитирующие по объёмам и времени в торговле, максимум адекватно беспрерывно анализировать рынок 2 часа пока выходит… Интересно конечно как на 30минутках выходит 2 сделки в день, у меня на 5 минутки в среднем меньше выходит)))
Asket_m_pro, 1-2, т.е. 1,5 в день. Робот может 2-3 дня позицию держать, а может 2-3 сделки в день сделать. Не от таймфрейма частота сделок зависит, а от временного окна, который анализируется. Например на 5 минутке можно 2000 барную машку построить и будет мало сделок :-)
avatar
robot_bsk, ну у меня где то так же значит)
доброе.) а можно код? я только начинаю с роботами разбираться, как пример, так сказать. )
avatar
Андрэ, Посмотри в личку
avatar
тестирование ни о чем не говорит… Один и тот же алгоритм в разное время даёт разные результаты.
avatar
Bock, Согласен, но можно с какой-то доверительной вероятностью считать, что то что работало раньше, будет работать и в будущем. Нужно делать форвардное тестирование и запускать несколько стратегий, чтобы при флете флетовые зарабатывали больше трендовых, а при трендах наоборот.
avatar
robot_bsk, на мыло скиньте пожалуйста код tim@starnet.ru Заранее спасибо.
Сергей Грошев, В самом топике код в конце
avatar
robot_bsk, на мыло скиньте пожалуйста код redvvard@gmail.com
Заранее спасибо.
Отправил
avatar
robot_bsk, спасибо б ольшое!
avatar
Может стоит «глазами смотреть» в другие строки?!

i63.fastpic.ru/big/2014/0602/76/ce03ae27a38be300451648ae2fa4e576.png
Константин, Все верно, но обычный человек, смотрит на количество прибыльных сделок и не знает, что такое Профит фактор, макс дравдаун и т.д. :-)))
avatar
Спасибо! Полезный пост!
avatar
Никки, Спасибо :-)
avatar
ахахаха они же все равно возвращаются))) блин… ладно промолчу)
avatar
Приветствую, коллега:) Как к тслаб относитесь? я просто с велзлабом еще не имел дело, всего год на рынке)
avatar
Иванов Василий, ТСлаб — хорошее ПО для тех кто не умеет программировать.
avatar
robot_bsk, а где лучше тестировать. в какой проге? в тслабе есть апи, можно писать на си шарпе, не обязательно кубиками пользоваться)
avatar
Иванов Василий, я в тслабе и тестирую и торгует у меня счас робот, бывают проблемы коннекта с квиком, когда буду запускать нормальный объем на робота, надо задумываться о плазе… но в целом тс лаб весьма неплох, robot_bsk рекомендует wealth-lab, в целом тс-лаб разрабатывался как его русскоязычный аналог
Asket_m_pro, Я не рекомендовал именно wealth-lab, а рекомендовал тестировать стратегии, прежде чем в реале торговать. Когда я решаю, что стратегию можно торговать то програмлю ее на Qpile, т.к. дополнительные коннекты с Quik по закону подлости в самые нужные моменты отваливаются. Про LUA знаю, но мне Qpile проще.
avatar
Asket_m_pro, вы используете коннектор для квика? прямой доступ разве не лучше?
avatar
Иванов Василий, конечно лучше, но алгоритм в состоянии теста, торгует небольшое количество контрактов, соответственно прямой доступ окупаться не будет, как тест закончу, буду думать о прямом доступе
Иванов Василий, В любой :-). ТСлаб, вев-лаб, амиброкер, омега, метасток, метатрейдер и т.д. К чему душа лежит, и какой язык Вам проще освоить там и надо.
avatar
robot_bsk, в ТСе неплохая APIшка и для программёров, всё необходимое есть, единственное — для работы со стаканом очень мало возможностей, но насколько я имею представление чтоб роботов для стакана делать и wealth не подходит, нужен stocksharp
Asket_m_pro, Стратегии со стаканом я не делал по множеству причин. Только OHLCV.
avatar
robot_bsk, хотел Вас в друзья добавить, но рейтинг не позволяет, в любом случае пишите статьи, будем ждать и читать)
avatar
интересная тема, приятно было почитать, спасибо
avatar

теги блога robot_bsk

....все тэги



UPDONW
Новый дизайн