anatolyutkin
anatolyutkin личный блог
30 мая 2014, 13:03

Осознанность при построении систем

Рассмотрим вот такой инструмент:

1
Видно, что за несколько месяцев акция очень существенно выросла. Значит, это волатильная и достаточно трендовая вещь. Поэтому логично ее торговать при помощи трендовой системы. Нетрудно построить простейшую трендовуху. По классике будем входить на пересечении скользящих средних, а выходить по трейлинг-стопу--вариации люстры Чака Лебо. Путем небольшой оптимизации легко получить следующую систему:

//////////////////////////////////////////////////////////////////////
if MarketPosition=0 and average(close,3)>average(close,30) then buy next bar 1 share at open;
if MarketPosition=1 then sell next bar 1 share at Highest(high,barssinceentry)*0.92 stop;

////////////////////////////////////////////////////////////////////////////////



Эквити и параметры:
2


3

Это типичные для трендовух параметры--меньше половины прибыльных сделок (42.2%), но большое (3.15) отношение средней прибыльной к средней убыточной. Как обычно, система отдает понемногу во флэте, но отлично берет трендовые движения. Теперь можно сделать следующее:
1) Отшлифовать входы--возможно, простая средняя не вполне улавливает особенности инструмента, может быть, нужна экспоненциальная средняя.
2) Отработать выходы. Например, попробовать в качестве выхода параболик, так как видно, что акция иногда резко ускоряется, а параболик хорошо заточен под получение максимально возможной прибыли в этом случае.
В общем, надо поработать.


Все, на этом прикол заканчивается. Теперь внимание, правильный ответ. Этот инструмент--искусственный. Он получен при помощи генератора случайных чисел следующим кодом:

////////////////////////////////////////////////////
var: s(10),x(0);
x=2*Random(1)-1;
if s[1]-s[2]<-0.9 then x=x+0.8;
if s[1]-s[2]>0.9 then x=x-0.8;
s=s[1]+x;
print(File(«D:\1.txt»), NumtoStr(20000000-1000000+date,0)+","+Numtostr(time,0)+","+Numtostr(s,2)+","+Numtostr(s,2)+","+Numtostr(s,2)+","+Numtostr(s,2));

//////////////////////////////////////////////////////

Если бы не было блока

if s[1]-s[2]<-0.9 then x=x+0.8;
if s[1]-s[2]>0.9 then x=x-0.8;
 
то это было бы просто броуновское движение, на котором заработать нельзя. Поэтому все средние, люстры, итд итп являются просто подгоночным бредом, не имеющим никакого отношения к делу. За счет же этого блока процесс является контртрендовым, поэтому правильная, осознанная, основанная на нормальном понимании процесса стратегия такова--покупай, если упало больше, чем на 0.9 и продавай, если выросло больше, чем на 0.9. Код:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if marketposition=0 and close-close[1]<-0.9 then buy this bar 1 share at close;
if barssinceentry=1 then sell this bar 1 share at close;
if marketposition=0 and close-close[1]>0.9 then sell short this bar 1 share at close;
if barssinceentry=1 then buy to cover this bar 1 share at close;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Эквити и параметры:

4


5

Обратим внимание на среднюю сделку--она равна 0.8, как и должно быть из формулы генерации процесса.

На реальном рынке ситуация во многом похожа. Существует значительное число людей, бродящих в потемках со средними и боллинджерами. Они не понимают, что делают, химича со всякой дурью. Поскольку рынок--это не броуновское движение, то иногда некоторым удается чисто случайно найти что-то рабочее, которое торгуется и в будущем. Но не имея понимания, торгуется некая производная. Что такое торговать производную? Это, на примере нашего инструмента, следующий код, который взялся из блуждания в темноте:

//////////////////////////////////////////////
if marketposition=0 and average(close,3)<average(close,30) then buy this bar 1 share at close;
if barssinceentry=7 then sell this bar 1 share at close;
///////////////////////////////////////////////////

Эквити:
6
7

Вроде, работает, и будет и в будущем работать на радость изобретателю (в отличие от трендилки из начала поста, которая есть просто переподгонка). Но это лишь жалкое подобие того, что должно быть. А поскольку на реальном рынке к таким сильнейшим неэффективностям, как в этом примере, не подступишься, то в реале работать будет еще хуже.

Какие выводы?
1) В реале никакой формулы типа

////////////////////////////////
var: s(10),x(0);
x=2*Random(1)-1;
if s[1]-s[2]<-0.9 then x=x+0.8;
if s[1]-s[2]>0.9 then x=x-0.8;
s=s[1]+x;
////////////////////////////////

не существует. Поэтому реально ситуация значительно сложней этого примера. В реале все, что у нас есть, это лишь история.

2) Однако, неэффективности существуют и имеют вполне конкретную природу. В значительном числе случаев можно довести понимание природы неэффективности практически до формульного уровня. Но для этого нужны труд и время.

3) Основное в системостроении--это именно понимание, а не жонглирование параболиками. А математика, тестирование, статистика--это лишь инструменты для приобретения понимания.

Файл котировок инструмента: http://www.fayloobmennik.net/3839838
55 Комментариев
  • Swan
    30 мая 2014, 13:51
    ++++
    а ещё интересно было бы почитать про анализ реальной ленты сделок (нашего всего — фртс), например, на трендовость или антитрендовость (а то у самого всё руки никак не дойдут ))))
      • anvil
        23 января 2019, 19:52
        anatolyutkin, вы имели ввиду вот этого Старченко
          • anvil
            26 января 2019, 23:56
            anatolyutkin, спасибо
  • Иосич
    30 мая 2014, 13:57
    ГуД)
    Если значение волы прикрутить к работе тренд/флет?
    как будет?)
    • Swan
      30 мая 2014, 14:05
      Иосич, по моему опыту — не влияет, будут те же яйца, вид в профиль. даже бывает и хуже, нормируешь на волу и получаешь распределение ещё более «нормализованое», а это есть ухудшение ситуации.
      • Иосич
        30 мая 2014, 14:31
        Swan, Понял, не буду тратить время тады… хотя, есть мне кажется там изюм)
  • Отличный пост!++++
  • Тимофей Мартынов
    30 мая 2014, 14:14
    криво скопипастил
    • Иосич
      30 мая 2014, 14:31
      Тимофей Мартынов, он вроде алгоритмист.
      или не?)
    • Мурен(а)
      30 мая 2014, 15:01
      Тимофей Мартынов, почитай про него в журнале FO
    • Мурен(а)
      30 мая 2014, 15:12
      Тимофей Мартынов, вот после таких комментов ты теряешь хороших авторов
    • Сергей Грошев
      30 мая 2014, 20:36
      Тимофей Мартынов, по сайту — в разделе «Мой счет» появился вывод изменения счета по дням в рублях — в результате стало сильно тормозить. Пните Вашего программера, пожалуйста.
    • Сергей Грошев
      02 июня 2014, 11:28
      Тимофей Мартынов, зря я на Вашего программера наехал, извините — я смотрел «Мой счет» в IE8, там жутко тормозит, а вот в Хроме все ок.
  • ves2010
    30 мая 2014, 14:40
    1 хы хы… а насколько случаен генератор случайных чисел??? кто-нибудь проверял по критериям Колмагорова или Котельникова???
    2 мало сделок для осмысленной статистики… надо взять стату по 10000 сделкам…
    3 и блин доча кричит мультики включай…
      • ves2010
        31 мая 2014, 00:45
        anatolyutkin, 3) доча мне дописать не дала… мутики требовала… с мысли сбила
  • broker25
    30 мая 2014, 14:44
    Кто же против понимания? Отлично, если оно есть. Но если его нет, то это не повод отказываться от паттернов, которые работают на разных активах в разные периоды времени.
    А параболик в омеге, кстати, косячно выполняется, и его использовать там нельзя.
  • Мурен(а)
    30 мая 2014, 15:01
    Анатолий пытается доказать, что на рынке стабильно не будут работать средние скользящие и болинджер. По-моему при желании можно доказать что угодно. Анатолий пользуется еще тем, что здесь очень мало людей, которые могут спорить на его уровне. был karapuz, да больше нет его тут
    • Мурен(а)
      30 мая 2014, 15:05
      главное -риск-менеджмент и мани-менеджмент. и при желании кривая будет хотя бы горизонтальная, а может даже вверх
      • Мурен(а)
        30 мая 2014, 15:12
        anatolyutkin, про Карапуза 2 варианта.
        1) слился. И решил уйти с фонды навсегда
        2)устроился на хорошую работу, где не приветствуются публичные люди, как он.
  • Фибофан
    30 мая 2014, 15:35
    я по средней стально торгую много лет, за всю историю форекса всегда работают.
    • Сергей Грошев
      30 мая 2014, 21:06
      kos2929, как-то все тут серьёзно, а сегодня — пятница! Астрая позвать, что ли :-)?

      Посмотрел Ваш профиль — 19 лет на рынке, это ж Вы с 14-ти лет в теме!

      Потом почитал Ваш блог: «То есть, вот за плечами много лет трейдинга, ну с 92 года меня ставили у банка скупать валюту уже…» Тогда, по-моему, ещё статья была за валюту? Круто Вы начинали :-)
  • Игорь (ФСБ рулит)
    30 мая 2014, 15:35
    Тоесть черепашки — это подгонка и заработать на тренде нельзя без понимания прцесса?
  • Игорь (ФСБ рулит)
    30 мая 2014, 16:00
    Если взять 10 очень похожмх пробитий уровня за n период, то один чел который понимает процесс — отфильтрует несколько пробитий, согласно своему пониманию, а другой будет торговать тупо их все. И Первый заработает больше?
      • Игорь (ФСБ рулит)
        30 мая 2014, 16:26
        anatolyutkin, такого ответа я не ожидал. Тогда как нам поможет понимание процесса, если мы не можем переиграть первый уровень понимания- пробило, значит кто то вложил миллиарды, значит теперь этот актив будут брать.?
        Во всех своих рассуждениях я оперирую таймфреймом не ниже дневок.
          • Игорь (ФСБ рулит)
            01 июня 2014, 23:06
            anatolyutkin, Ну скорее имел ввиду, что один персонаж торгует не заботясь- это пробойный инструмент или нет, а другой пытается понять применим ли данный метод для торгуемого актива и т.д.(скажем то что вы написали выше). Не обязательно пробой. Можно и ложный пробой использовать: например нефть сейчас — ложные пробои сплошные, а, когда была Ливия — был тренд. Я хотел услышать подтверждение от Вас, что если метод любой применять тупо — то результат если будет — будет посредственный, а если с умом, то он будет намного лучше рынка, ну или шансы на это выше. А что касается пробоев и так далее, имел виду, что в книжках и статьях методы все более менее известны и народ по ним торгует, так применим ли подход с умом к этим популярным методам или надо выдумывать принципиально новое, свое?
  • По сути это два метода индуктивный и дедуктивный.Дедуктивный-это когда мы как бы понимаем, что происходит на рынке и подбираем под это необходимые паттерны, а индуктивный, это когда мы не знаем что происходит, но подбираем паттерны которые ведут нас к «победе».И то и другое под вопросом, сейчас мода на дедукцию…
  • dmbes
    30 мая 2014, 18:53
    А по-моему, не надо ничего понимать на рынке — надо суметь принять его таким как есть, а не тем, каким он кажется
      • dmbes
        30 мая 2014, 20:58
        anatolyutkin, например, у рынка нет направления. Иногда бывает, но куда и сколько продлится заранее неизвестно. Это скорее такой булькающий густой бульон.
          • dmbes
            30 мая 2014, 21:22
            anatolyutkin, можно поставить ловушки на случай выплескивания пузыря из бульона:)
              • dmbes
                30 мая 2014, 21:44
                anatolyutkin, я не спорю а обсуждаю. Я бы по-своему расшифровал понимание — скорее в филосовском смысле
  • ELab
    31 мая 2014, 14:37
    Хороший пост! Поднял бы рейтинг, но увы не позволяет мне карма.
    Мысль понятная всем — входите против рынка, фиксирутесь по профиту (или не фиксируйтесь) и огранивайте позицию во времени. Все! Всем медаль и грааль :)
  • bocha
    02 июня 2014, 23:13
    Люблю Вас читать. Такой ностальгией веет… Вспоминается родная лаборатория лет… цать тому назад. Первая жизнь, в которой я, тогда еще МНС, нудил перед каждым экспериментом маститым мужикам: -«Нет, не надо включать. Давайте сначала обсудим и напишем на бумажке, что именно мы ожидаем от этого эксперимента, а только потом запустим эту шарманку» :)
    А нынче вот майнингом совершенно не стесняюсь заниматься. Чтобы не закиснуть, майнингую попеременно. То модели (идеи), то тупо рынки в рамках модели.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн