Главная > Торговые стратегии > Торговые стратегии

Торговые стратегии

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

Как найти свою торговую стратегию?

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

Как автоматизировать торговую стратегию?

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

  • покупаем, если значение цены выше, чем значение скользящей средней;
  • продаем, если значение цены ниже, чем значение скользящей средней.

Визуально на графике это будет выглядеть так:

График цены и скользящей средней

График цены и скользящей средней

А алгоритмическая схема (ветвление) будет выглядеть так:

Ветвление алгоритма

Ветвление алгоритма

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

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

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

  1. CA$H
    18 Март 2009 в 19:03 | #1

    Конечно, публикуй код. Простой робот, а по графику вроде, даже прибыльный получиться.

    Ещё хотелось бы узнать про автоватизацию. Интересует трейлинг-стоп как в МТ4, или это не по твоей части?

  2. Евгений
    18 Март 2009 в 19:47 | #2

    Да, код обязательно опубликую.

    Трейлинг-стоп интересует именно реализация для QUIK? не совсем понял вопрос...

  3. мужык
    19 Март 2009 в 03:08 | #3

    Давно хотел разобраться со встроеным языком, да всё руки не доходили. Добавил блог себе в закладки, буду внимательно следить.

    Спасибо автору.

  4. Евгений
    19 Март 2009 в 10:31 | #4

    Спасибо за комментарий!

    Торговый робот «Пробойный» написан и протестирован, вчера начал описывать алгоритмы и комментарии, сегодня вечером постараюсь выложить п.2 из «Плана публикаций».

    Заходите почаще, буду стараться обновлять ежедневно!

  5. CA$H
    20 Март 2009 в 18:57 | #5

    Про трейлинг стоп: Конечно для Квика. Там есть функция Тейк-профит, но её быстро не выставишь, надо несколько цифр вводить. На форуме стокпортала прочитал что трал уже есть в «Монолите». Но Монолит слишком тяжёл для моего компа (монитор моргает). Хотелось что-то проще. Например открываешь позу, жмёшь хоткей и ставиться тейк-профит с заранее заданными условиями, отступом и спрэдом.

  6. CA$H
    20 Март 2009 в 19:53 | #6

    Или ещё даже лучше: Открываем позу — и робот начинает следить за текущей ценой, как только она идёт против нас выставляет заявку на закрытие.

    Алексей Reply:

    Добрый день.

    Хочу сделать комментарий. Я тоже решил сделать похожий робот на QPILE суть алгоритма была в следующем

    когда цена пересекает простую среднюю снизу вверх то покупка, продажа если цена следующего таймфрейма ниже предыдущего.

    направление тренда для определения позиции long|short рассчитывал по формуле

    предыдущая цена ниже текущей — long, и short — наоборот

    кстати в Metastock такая система на разных инструментах дает прибыль и чем меньше диапазон скользящей средней тем вроде как она выше

    в качестве таймфреймов я протестировал 1 минутки и 5 минутки на газпроме, как на акциях у которых маленький спред, чтобы не делать поправку на проскальзываение

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

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

    хотя может конечно надо было больше тестов проводить

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

    можете что либо посоветовать на этот счет?

    Евгений Reply:

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

    Во вторых я не понял, как вы тестировали реал? Роботом?

    Посоветовать могу одно — прочитать новую статью «Как тестировать на истории» и таким же образом организовать тест в реал тайме готового робота. Полученный результат будет на 100% верным при реальной торговле. Отсюда и смотрите как модифицировать вашу стратегию.

    П.С. В скользящие средние я не верю:-)

    Алексей Reply:

    да я тестировал сначала в Metastock общие принципы, а затем конкретно роботом написанным на QPILE под QUIK 5.12 на реальном аккаунте на ММВБ

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

    почему не верите в скользящие средние? усреднение позволяет определить позицию к которой по идее привязана цена с некоторым смещением. конечно я осознаю, что средняя — это производная от цены, но и эффект мячика на резинке имеет место, т.е. цена всегда возвращается к средней.

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

    Евгений Reply:

    Ну то что я не верю в домового, еще не означает что его нет)) Это мое субъективное мнение, сложившееся в результате крайнего несовпадения результатов теста в том же MultiCharts и теста в реале простых стратегий, где 99% невозможно двойное толкование. Также последнее время я сторонник хитрых систем, типа скальпинга, арбитража и т.п.

    Проскальзывание из теста в реале можно исключить, если рассчитывать вход и выход не от LAST а от Бидов/Асков с контролем размера текущего предложения.

    Алексей Reply:

    да согласен в разочаровании тестирования на исторических данных

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

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

    Евгений Reply:

    Ссылка в разделе «Скачать» самая верхняя.

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

  7. Евгений
    20 Март 2009 в 19:54 | #7

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

  8. Евгений
    20 Март 2009 в 20:49 | #8

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

  9. Саша
    22 Март 2009 в 19:33 | #9

    Действительно, код программы со скользящей не помешал бы...))

    Щас, вот сижу голову ломаю... Есть не плохая стратегия: Два мувинга с периодами 30 и 5 на 5ти минутном графике, надо что бы заявки прога выставляла по пересечению двух мувингов) может кто что знает, подскажет?

  10. Евгений
    22 Март 2009 в 19:38 | #10

    Так эта стратегия и есть классическая по мувингам! Я в скором времени выложу код на этот сайт!

  11. Евгений
    22 Март 2009 в 19:41 | #11

    Пишите техзадание и описание стратегии, Саша!

  12. Олег
    24 Март 2009 в 15:34 | #12

    А мне хотелось бы увидеть робота, который использует исключительно исторические данные цены :) Ну т.е. вот тот, с пробитиями, мне как раз был бы инетресен. Я скользящие средние не люблю :)

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

  13. Евгений
    24 Март 2009 в 15:55 | #13

    Подсчитать средневзвешенную цену — легко, исторические данные — легко, вне зависимости от таймфрейма.

    Скользящие средние тоже хороший инструмент :)

  14. Сергей
    24 Март 2009 в 20:24 | #14

    QPILE стал изучать недавно, т.к. замучался ставить стопы руками

    и часто(т.к. начинаюший) банально путал покупку с продажей :)

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

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

    Мои достижения в QPILE конечно смешные, но я учусь. Всецело поддерживаю тебя Евгений. Удачи в твоих начинаниях.

    Сергей Reply:

    Здравствуйте!Сам только начинаю торговать и путаюсь с выставлением стопов, не могли бы поделиться программмой, которя ставит стоп со связкой в зависимости от позы, очень бы облегчила работу.

    Евгений Reply:

    К сожалению, готового решения у меня нет.

  15. Евгений
    25 Март 2009 в 17:29 | #15

    Спасибо за поддержку!

  16. CA$H
    25 Март 2009 в 18:48 | #16

    «Скользящий стоп»(типа техзадания):

    1.Открывается позиция.

    2.Робот начинает отслеживать текущую цену и запоминать новые максимумы(в случае покупки).

    3.В случае когда разница между достигнутым максимумом (для покупки) и текущей ценой сравняется с значением трала — выставляется заявка на продажу с заданным отступом.

    Для продажи, соответственно зеркально.

    Закрывающая заявка выставляется только при наступлении условий, а не сразу при открытии позиции.

    Как мог описал, думаю должно быть более менее понятно.

  17. Евгений
    25 Март 2009 в 19:57 | #17

    1. Позиция открывается в ручную?

    2. Про максимумы понятно. Это по сути текущий хай дня, либо максимальная цена из текущей таблицы. подойдет?

    3. Трал устанавливается целочисленным параметром. Также ка и отступ, желательно если Вы формулу напишите расчета цены заявки.

    4. Заявка выставляется в виде заявки или стопзаявки (зависит от величины отступа, чтобы поместиться в лимит цены)

    В кратце это все легко выполнимо, требуются небольшие уточнения и я напишу код и выложу в отдельной статье, с указанием авторства алгоритма :)

  18. CA$H
    26 Март 2009 в 19:20 | #18

    1.Это имеет значение? Пусть будет вручную.

    2-3.Причём тут хай дня? Эта приблуда нужна прежде всего для скальпа-интрадея. Простыми словами: Купили, цена пошла вверх, достигла определённого значения Х и стала падать (Может и сразу против нас пойти, тогда X = цене открытия). Падение на величину трала Y генерирует и выставляет заявку на продажу по цене X-Y-Z (где Z — отступ). Все числа целые.

    4.Только заявка, стоп-заявки ещё и удалять надо не забывать, и деньги они вроде на ГО резервируют.

    Наиболее часто используемые значения для трала у меня будут Y= 70...100, Z= 5...15.

  19. Евгений
    26 Март 2009 в 20:18 | #19

    1. В принципе не имеет, задал вопрос для уточнения.

    2-3. Да, я неверно Вас понял, максимум отслеживается начиная с момента открытия позы. По поводу формулы понятно.

    4. конечно не проблема и стоп удалить, но заявка так заявка.

    Е-майл который Вы указали при отправке сообщений сюда верный? Я напишу код и отправлю Вам для теста, если все нормально — выложу код на сайт.

  20. CA$H
    27 Март 2009 в 18:51 | #20

    Майл верный, выкладывать только не спеши. Умные люди в таких случаях делают демо версию, с жёстко прописанным максимальным лотом = 1, её и выкладывают. А версия без ограничений максимального лота продаётся. Думаю за такую программку 300 руб. не стыдно просить.

  21. Евгений
    27 Март 2009 в 19:59 | #21

    Ну во-первых код QPILE открытый, и изменить 1 на нужное кол-во лотов легко, во-вторых мне не жалко, у меня иные цели для этого ресурса. Для соблюдение авторства для создания и публикации здесь кода, нужно Ваше согласие, на использование алгоритма. Да/нет.

  22. CA$H
    28 Март 2009 в 18:56 | #22

    ДА.

    Это разве алгоритм? Простейшая вещь, Его все знают, в принципе. В МетаТрейдере он даже есть в самой программе, без всяких приблуд.

    «мне не жалко, у меня иные цели для этого ресурса» — Какие, если не секрет? А то потом и прибыльного робота совместными усилиями создадим и тоже выложим? В чём смысл?

  23. Евгений
    29 Март 2009 в 00:06 | #23

    Когда я начинал изучать QPILE я нигде, кроме руководства не мог найти информацию, о том как на этом языке программировать. сейчас я решил исправить эту несправедливость, для тех, кто также начинает изучать его.

    Что касается «Трала» в ближайшее время выложу код.

  24. CA$H
    29 Март 2009 в 19:03 | #24

    Ну обучение обучением, но надо и делом заниматься.

    Моё предложение: На твоём сайте с помощью «коллективного разума» создать робота с названием «HiroBot» для участия в «ЛЧИ-2009». Если есть желание создавай тему «В поисках прибыльной стратегии» — и вперёд.

  25. Евгений
    29 Март 2009 в 20:37 | #25

    Можно попробовать!

  26. Сергей
    28 Май 2009 в 13:37 | #26

    @Сергей

    Здравствуйте,Сергей!Сам только начинаю торговать и путаюсь с выставлением стопов, не могли бы поделиться программмой, которя ставит стоп со связкой в зависимости от позы, очень бы облегчила работу.

  27. Владимир
    17 Июнь 2009 в 23:32 | #27

    Здравствуйте, Евгений !

    Очень понравился Ваш сайт ! Почерпнул массу полезной инормации ; для начинающего роботостроителя Ваш сайт — очень ценная находка !

    У меня к Вам 2 вопроса :

    1) Вы пишете роботы только на QPILE ? Если да — то почему ?

    2) Скажите, пожалуйста, планируете ли Вы выложить на сайте код робота, который работает по свинговой стратегии, основанной на пересечении двух ЕМА с разными периодами ?

    Если нужно подробное описание этой стратегии — дайте знать, оперативно пришлю !

    Заранее — спасибо !

    С уважением,

    Владимир.

    Евгений Reply:

    Спасибо за оценку.

    1. На купайл роботы получаются без посторонней связки, что для меня достаточно удобно.

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

    Владимир Reply:

    Здравствуйте, Евгений !

    Стратегия, на мой взгляд, очевидна — весь вопрос в её практической реализации. Попытаюсь переделать Ваш «Торговый робот для QUIK — Mooving» в нужный мне «Робот на пересекающихся ЕМА».

    Если всё получится — стану Вашим спонсором ( я не халявщик, я — партнёр ! :-) ).

    Ещё раз — спасибо !

    Удачи Вам во всех делах !

    С уважением,

    Владимир.

    Евгений Reply:

    Спасибо.

    Обращайтесь — помогу.

Необходимо войти на сайт, чтобы написать комментарий.