Werner Heisenberg
Werner Heisenberg личный блог
18 апреля 2012, 09:26

Конструктор торгового робота

Сразу скажу — стратегия трендовая.
И главное -тут изложен принцип подхода к созданию своей торговой системы,а не сама система. Пример который я привожу, в общем, имеет право на жизнь, но лучше использовать все таки что-то поинтереснее.

Вот на рождение интереса и мотивацию этот пост и расчитан!

Сегодня я решил изложить свои основные принципы к подходу создания торговой системы. Но подход таким образом, что бы можно сразу переложить его в код, а не так: «вот тут похоже надо бы купить, а закрыться…. ну вот процента 3% получу от сделки а раньше даже и не ждите». Это пахнет несознательностью. Сразу разделим торговую систему на две части:

  • Risk менеджмент (РМ)
  • Money менеджмент (ММ)
Что мы вкладываем в этим понятия. РМ – стоит ли вообще входить в сделку. Что мы от нее ждем? На сколько вход в позицию именно сейчас будет успешен? ММ – если мы решили сейчас открыть позицию, то на какой объем? Какие условия должны наступить для увеличения объема а какие для сокращения? Думаю это всем понятно. Теперь основная мысль. Торгового робота можно сделать на любых индикаторах придерживаясь этих двух принципов. Что нам может помочь? Для начала определим, что у нас трендовая торговая стратегия. И мы будем искать начало тренда и дальше сопровождать его или выходить при неблагоприятных обстоятельствах. Будем искать индикаторы силы тренда и определения самого тренда. Сила тренда будет руководить нашим ММ. Если тренд сильный, то можно и увеличить объем. Если слабый, объем уменьшим или вообще не будем делать сделок. За что отвечает Риск менеджмент? Определение тренда нужно для открытия позиции. Собственно что делать сейчас:

  • Купить
  • Продать
Это наш Риск менеджмент – определение направления открытия позиции.

Теперь небольшой пример.

Для тренда возьмем одну SMA. Цена выше – покупаем. Ниже – продаем. Ничего хитрого. Так мы определили тренд.

Что с ММ? Берем индикатор указывающий СИЛУ тренда. Обращаю внимание — именно силу а не направление.
В общем этим индикатором может быть та же SMA, а точнее уровень ее наклона (на самом деле тут лучше использовать соответствующие индикаторы, но для примера и понимания логики этого достаточно).

С силе тренда мы привязываем торгуемый объем. Причем, если мы сможем выделить флэт, то объем желательно поставить на 0.
При нарастании силы тренда мы увеличиваем объем, и наоборот.

Что у нас вышло:

  • мы определили основной тренд: только long или только short.
  • мы понимаем, когда мы меняем объем торгов.
  • мы заходим не на пересечени ценой линии SMA, а тогда, когда позволяет это сделать ее наклон. Если наклон (сила тренда) и пересечение SMA оба достаточны для сделки — мы ее тут же делаем.
В общем то трендовый робот готов!
Поздравляю!

PS
эта статья была написана не как руководство к действию, а как мотивация с созданию своих собственных торговых систем, логика которых не такая уж и сложная.
Если у Вас уже есть идеи, или вы хотите их обсудить или уже хотите наконец переложить свою стратегию в цифровой код — свяжитесь со мной.

Окружите себя друзьями с общим интересом. На начальном этапе всегда нужно советоваться с опытными людьми, ибо мы уже совершили множество ошибок.
27 Комментариев
  • Тимофей Мартынов
    18 апреля 2012, 10:03
    на главную и в избранное!
  • acula_fx
    18 апреля 2012, 10:44
    К сожалению, 80% сложностей возникает не в том, что здесь описано (все это интуитивно ясно и без особой формализации), а как раз, когда доходит до перевода сущностей (сила тренда, направление и т.д.) — в осязаемые инструменты торговли…
    МА,ADX, etc — имеют склонность к запаздыванию. И тогда в лучшем случае удается встать далеко не в начало тренда, в худшем — попасть на разворот…

    Есть какие-нибудь готовые реализации?
      • acula_fx
        18 апреля 2012, 12:06
        Dimanite, еще небольшой вопросик (вдруг у Вас наработки на этот счет имеются). Знаете ли Вы механизм раннего определения тренда (путем доп. фильтрации или без неё) на трендовых и свинговых инструментах?
  • shizafrenik
    18 апреля 2012, 11:19
    под SMA подразумевается Simple MovAvg?
  • Владимир Сарнацкий
    18 апреля 2012, 11:43
    протестировать на истории забыли )
    и чувствую, что не обойдётся тут без подгонки.
    а система реверсная, я так понимаю? )
    • acula_fx
      18 апреля 2012, 11:50
      Convertor, из сказанного вроде вытекает что реверсная. А реверсная трендовая система на флэте — самая раззорительная, по крайней мере из того что мне приходилось видеть.

      Хотя, на трендовых инструментах — вполне.

      Ув. Dimanite, пару слов бы о доп. фильтрации тренда и точках выхода, если можно.
    • shizafrenik
      18 апреля 2012, 11:51
      Convertor, я для подтверждения уточнил, просто не совсем согласен с SMA, склоняюсь к EMA ибо она подает гораздо меньше ложных сигналов чем SMA проверено и не однократно, разница ощутимая. SMA наводит панику при гэпах.
      • acula_fx
        18 апреля 2012, 12:24
        Dimanite, есть какая-нибудь готовая реализация или просто статистика по этой (или подобной ей) умнице?
  • zhekatreidforts
    18 апреля 2012, 13:01
    Отлично, если хоть один трейдер новичок вникнет в эти слова, то всё не зря.
  • gq55
    18 апреля 2012, 13:11
    для меня главная проблема в создании самого робота, я совсем не дружу с програмированием. Не знаете где в сети есть люди которые пишут роботов по твоим идеям?
  • Spiritschaser
    18 апреля 2012, 16:03
    Отлично! РМ я худо-бедно реализовал, теперь добавлю ММ!
      • Кузькин Юрий
        19 апреля 2012, 02:04
        Dimanite, статья отличная. РМ и ММ никогда не дадут слить депозит. У меня работает робот, но я пока не пользуюсь управлению рисками. Защитой у меня является диверсификация по инструментам, робот торгует по 5-ти наиболее ликвидным фьючерсам. Таймфрейм 5 минут, стратегия элементарная и она одна для всех бумаг, но с разными параметрами. Стопов нет, индикаторы быстро переворачиваются в направлении тренда. Пока за апрель +20%. Единственное я иногда сам закрываю очень прибыльные сделки. Для фильтрации флэта использую Fractal Adaptive Moving Average (FRAMA), но все еще в поисках оптимального его использования.
          • Кузькин Юрий
            19 апреля 2012, 22:11
            Dimanite, самая проблема, что флэт определяещь когда он уже настал. С короткими флэтами лучше не бороться, могут потеряться важные сигналы или отработаются очень поздно. Некоторые бумаги лучше вообще не фильтровать по флэту
  • k-09
    19 апреля 2012, 15:58
    коллеги, а где (в Квике или в МТ-4)есть Fractal Adaptive Moving Average (FRAMA)
    И какие еще индикаторы или стратегии порекомендуете от флэта
    • Кузькин Юрий
      19 апреля 2012, 22:12
      k-09, я использую AmiBroker, формула в нем такая:
      // FRAMA — Fractal Adaptive Moving Average
      Price = (H+L)/2;
      N = Param( «N», 16, 2, 40, 2 ); // must be even

      N3 = ( HHV( High, N ) — LLV( Low, N ) ) / N;

      HH = HHV( High, N / 2 );
      LL = LLV( Low, N / 2 );

      N1 = ( HH — LL ) / ( N / 2 );

      HH = HHV( Ref( High, — N/2 ), N/2 );
      LL = LLV( Ref( Low, — N/2 ), N/ 2 );

      N2 = ( HH — LL ) / ( N / 2 );

      Dimen = IIf( N1 > 0 AND N2 > 0 AND N3 > 0, ( log( N1+N2) — log( N3 ) )/log( 2 ), Null );

      alpha = exp( -4.6 * (Dimen -1 ) );
      alpha = Min( Max( alpha, 0.01 ), 1 ); // bound to 0.01...1 range

      Frama = AMA( Price, alpha );

      Plot( Frama, «FRAMA(»+N+")", colorRed, styleThick );

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

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