НейроГалактика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » НейроГалактика » Торговые стратегии » Пища для размышлений: стратегия на скользящих (кодовое имя СПОТ)


Пища для размышлений: стратегия на скользящих (кодовое имя СПОТ)

Сообщений 1 страница 20 из 23

1

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

По предложению автора стратегия получила кодовое имя СПОТ (Стратегия Прибыльная Обыкновенная Трендовая). В текущей реализации для упрощения ориентируется по MACD. Из подобранных параметров я выделю пожалй только 2: самый прибыльный и наименее просадочный (что ещё для счастья нужно?).
Подробнее я рассмотрю ниже.

Принцип работы стратегии следующий:
1) Сигнал покупки - быстрая средняя пересекает медленную снизу вверх.
2) Сигнал продажи - быстрая средняя пересекает медленную сверху вниз.
3) Закрытие - SL, TP и противоположный сигнал.

Тепрь внимание вопрос знатокам - почему стратегия выдаёт результат (самый прибыльный и наименее просадочный) с автоматически подобранными параметрами период быстрой скользящей средней больше медленной? Т.е. система более эффективна когда действовать ПРОТИВ алгоритма. Может быть я в коде накосячил?

Ссылка на исходник стратегии (версия 0.1)

P.S. Если всё хорошо поёдёт, можно развить проект на радость всем участникам и сконцентрироваться на улучшении стратегии.

Отредактировано Gray (2006-12-06 16:25:25)

0

2

Подбор проводился на периоде с января этого года по конец прошлого месяца по данным Альпари. Инструмент - часовые европецы.

Критерий - Наибольшая прибыль

FastMA = 40
SlowMA = 31
StopLoss = 60
TakeProfit = 100

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

0

3

Критерий - Наименьшая просадка

FastMA = 40
SlowMA = 33
StopLoss = 30
TakeProfit = 10

Гляньте на результат - ну чем не грааль? Заоблачный процент успешных сделок, мизерная просадка и ниодного (!!!!) неприрывного проигрыша. Несмотря на то, что прибыль в 3 раза меньше чем в предыдущем посте, ту тоже можно над чем подумать. Прибыль срезается только на начальном сигнальном участке, внедрение элементов ММ (зафиксировалл прибыль, открывай ордер в догонку) может увеличить прибыль без ощутимых потерь в безопасности.

Жду ваши комментарии и идеи.

0

4

отвечаю - тема!!!!!!!! вот тока я ещё воткнуть не могу что куда лепить, что куда засовывать и вааабсче - чего как куда откуда чем а главное для чего это нужно??? (хотя на последний вопрос ответить могу - для получения прибыли))))

0

5

А на независимой выборке данных стратегия тестировалась?

0

6

А на независимой выборке данных стратегия тестировалась?

Вадим, как всегда, задает вопросы в самую ТОЧКУ! Действительно, тестирование любой системы на независимой выборке... - это очень важно. Обычно, многие корифеи от МТС-строения прекомендуют как минимум, 1/4 всей доступной истории оставлять "нетронутой" при "настройке" стратегии, чтобы потом уже (после настройки) прогнать систему на данных, которые "неизвестны" МТС.

Почему я тут слово "настройка" употребил в кавычках - потому что это - мое такое вот интуитивное понятие "настройка". Точного определения я дать не могу. И не могу быть твердо уверен, что ясно вижу разницу между "настройкой" и "подгонкой" и "оптимизацией".

Поэтому у меня просьба (и это - не единственная просьба, но обо всем - по порядку) к Вадиму... Вадимка... можешь ты нам выдать на-гора пост про то, что такое есть "настройка", почему это - плохо, как добиться того, чтобы оптимизировать параметры системы, но при этом оставить ее робастной и т.д.?? Очень-очень хочется. Был бы тебе респект за такое...

0

7

В данном случае скорее всего мы видим классический подгон параметров под историю.

0

8

Ну, а теперь... - описание, собственно, стратегии, которую использует Луана для торговли на своем счете. Она, конечно же очень много седалала в ветке "Немного о ММ"... но, видать, выдохлась, и пока что описала не все. (Не совсем все).

Не обрывая в себе надежду на то, что она когда-нибудь опишет это так же кропотливо и подробно, как начинала, я пока что постараюсь изложть то же самое, как бы, забегая вперед, кратко и сжато.

Итак, система, которая показала свою работоспособность на реальном счете в течение 3-х месяцев (см. "Месяцовые отчеты", а также "Немного о ММ") выглядит таким образом:

1) Тактика входов/выходов:
1.1. Выход в рынок осуществляется только при условии поступления сигнала на вход. Причем, требуется фактическое наличие сигнала, а не домыслы о том, что сигнал может в ближайшее время поступить.
1.2. Выход из рынка осуществляется только по одной из следующих причин:
  1.2.1. Поступил (фактически) противоположный сигнал.
  1.2.2. Сделка закрылась автоматически по стоп-лоссу.
  1.2.3. Сделка закрылась автоматически по тейк-профиту.

2) Метод определения сигнала:
2.1. Для определения сигнала используется пара скользящих средних, строящихся от третьей (базовой) скользящей средней, следующим образом:
  2.1.1. Базовая скользящая средняя (у меня она рисуется на графике пунктирной линией):
   2.1.1.1. Период = 2.
   2.1.1.2. Смещение = 0.
   2.1.1.3. Метод = простая.
   2.1.1.4. Применить к "типичной цене" (типичная цена = (О+H+L)/3)
  2.1.2. Быстрая скользящая средняя (у меня она рисуется красной сплошной линией):
   2.1.2.1. Период = 3.
   2.1.2.2. Смещение = 0.
   2.1.2.3. Метод = простая.
   2.1.2.4. Применить к "Базовой скользящей средней"
  2.1.3. Медленная скользящая средняя (у меня она рисуется синей сплошной линией):
   2.1.3.1. Период = 12.
   2.1.3.2. Смещение = 0.
   2.1.3.3. Метод = простая.
   2.1.3.4. Применить к "Базовой скользящей средней"
2.2. Сигнал "засчитывается", когда:
  2.2.1. Быстрая скользящая средняя, ранее находившаяся ниже медленной, пересекла ее и оказалась выше (медленной), т.е., произошло пересечение снизу вверх. (Сигнал к покупке).
  2.2.2. Быстрая скользящая средняя, ранее находившаяся выше медленной, пересекла ее и оказалась ниже (медленной), т.е., произошло пересечение сверху вниз. (Сигнал к продаже).
  2.2.3. Замечание: строго говоря, если не отбрасывать цифры после запятой, то вероятность того, что медленная скользящая средняя в какой-то момент времени будет ТОЧНО равна быстрой - исчезающе мала. Однако, такая вероятность есть, и она тем более высока, что в МТ отбрасываются все цифры, кроме четырех (после запятой). Следовательно, в МТС (если кто будет реализовывать это все "по уму") - следовало бы учесть такие возможности:
  2.2.3.1. Быстрая скользящая средняя сначала была выше медленной, потом, в какой-то момент коснулась (совпала с) медленной, но в следующем баре - снова стала выше. (Пересечения не произошло, произошло касание).
  2.2.3.2. Быстрая скользящая средняя сначала была ниже медленной, потом, в какой-то момент коснулась (совпала с) медленной, но в следующем баре снова стала ниже. (Пересечения не произошло, произошло касание).
  2.2.3.3. Быстрая скользящая средняя сначала была выше медленной, потом, в какой-то момент коснулась, а потом (в следующем баре) уже пересекла. (пересечение произошло, таки... но только если к такому пересечению применять условие 2.2.2., то оно не будет идентифицировано системой).
  2.2.3.4. Быстрая скользящая средняя сначала была ниже медленной, потом, в какой-то момент, коснулась, а потом (в следующем баре) уже пересекла.
(пересечение произошло, таки... но только если к такому пересечению применять условие 2.2.1., то оно не будет идентифицировано системой).

3) Метод ввода капитала в рынок:
3.1. Капитал вводится в рынок не единым объемом, а по частям.
  3.1.1. Первая часть - это "маркет"-ордер - он выставляется по цене открытия (или по той, которую даст брокер) в момент начала формирования следующего бара после того, на котором было идентифицировано пересечение.
  3.1.2. Вторая часть - это "GTC"-ордер - он выставляется на 20 пунктов "лучше" от фактического открытия маркета. Т.е., если мы покупаем, то GTC выставляется на 20 пунктов ниже. Если мы продаем, то GTC выставляется на 20 пунктов выше.
  3.1.3. Как только выставлены оба ордера, устанавливается для них стоп:
   3.1.3.1. Для маркет-ордера = 60 п. (-60 п.)
   3.1.3.2. Для GTC-ордера = 40 п. (-40). (Таким образом, стопы по обоим ордерам оказываются на одной цене).
  3.1.4. Как только выставлены стоп-ордера, устанавливаем тейк-профиты:
   3.1.4.1. Для маркет-ордера = 160 п. (+160 п.).
   3.1.4.2. Для GTC-ордера = 180 п. (+180 п.). (Таким образом, "лимиты" по обоим ордерам также оказываются на одной цене, а, соответственно, соотношение потенциального убытка и потенциальной прибыльности по GTC-ордеру оказывается намного лучше. Этим компенсируется то, что вероятность его срабатывания не равна 100%).
3.2. Объем для каждой части рассчитывается отдельно (независимо): для серии маркет-ордеров - отдельно, и для серии GTC-ордеров - тоже отдельно.

4) Метод ведения позиций:
4.1. В случае, если по маркет-ордеру достигается плавающий профит в размере 50 п. (+50 п.), а GTC-ордер еще не активирован, то GTC-ордер отменяется.
4.2. В случае, если по маркет-ордеру достигается плавающий профит в размере 100 п. (+100 п.), то стоп-лосс по этому ордеру (а также, по GTC-ордеру) переносится на отметку +10 п. (Для GTC-ордера стоп-лосс переносится на ту же самую отметку, что и для маркет-ордера).
4.3. В случае, если позиция не закрыта более одного дня, и начислен отрицательный своп, то тейк-профит (лимит) по обеим позициям переносится на +3 п. (для маркета он становится +163 п., а для GTC, если он сработал - +183 п.). Если начилсен положительный свпо - ничего не делаем.

5) Метод рассчета объема позиции:
5.1. Исходя из имеющегося депозита рассчитывается "рабочий объем". Мы с Луаной выбрали в качестве такового 0.3 лота (для депозита размером 40000 единиц). Т.е., приблизительно у нас получается, что "рабочий объем" составляет 0.0075 от "максимального". Т.е., вот, при депозите 40000 можно было бы максимально открыть 40 лотов одной позицией.
5.2. Прогрессия (ведем ее для каждой серии: для сеии маркет-ордеров и для серии GTC-ордеров - отдельно) у меня получилась такой: 1, 2, 3, 5, 8, 12, 17, и т.д.. ... Т.е., вплоть до 3 (включительно) мы прибавляем по "единичке" (здесь под "единичкой" подразумевается один базовый объем). А после 3 мы начинаем увеличивать еще и сумму "прибавки".... Иными словами: 1, 2 (1+1), 3 (2+1), 5 (3+2), 8 (5+3), 12 (8+4), 17 (12+5) и т.д. В пересчете на лоты это будет выглядеть таким образом: 0.3 лота, 0.6 лота, 0.9 лота, 1.5 лота, 2.4 лота, 3.6 лота и т.д..
5.3. Если по одной из серий (по серии маркет-ордеров или по серии GTC-оредров) получен убыток, то мы "сдвигаемся" на один шаг по прогрессии для этой серии.
5.4. Если по серии получена прибыль (по моим подсчетам, если, конечно, там не закралась ошибка нигде, прибыль по серии должна приносить любая очередная прибыльная позиция...Во всяком случае, на практике так и было), то мы по данной серии вновь возвращаемся к "рабочему" (исходному) объему.

----
Все.... насколько мог - описал формально. Если какие-то вопросы есть - задавайте.
Да, конечно... - самое главное чуть не забыл: применяется это все для фунтика (GBPUSD) H4.
Шаблон можно взять тут. (придется, конечно, малость поприкалываться: надо будет создать текстовый документ, скопировать в него текст, потом переименовать это все в файл *.tpl, и размеситить его в папку C:\Program Files\ВАШ_ТОРГОВЫЙ_ТЕРМИНАЛ\templates).

0

9

СПОТ 0.2

change log
1) Алгоритм определения входов соответствует стратегии NeuroMaximus

Т.е. на текущий момент реализовано 1 по 2 пункты. Протестировать можно в Метатрейдере 4. Включив опцию "Визуализация" и применив к сгенерированному графику шаблон Максима, можно убедится что сигналы поступают согласно намеченоому алгоритму. Тока там есть небольшой баг - при старте стратегия ловит сигнал на продажу (видимо из за того что набор значений ещё не заполнен реальными данными), в след. релизе починю. Параметры пока не задействованы.

Ссылка на СПОТ v0.2

0

10

:yahoo:  :yu:  :yahoo:  :dance:  :yahoo:  :yu:  :yahoo:

УРРРААА!!!! З А Р А Б О Т А Л О!!!!  :hi: Респект Грэю!

0

11

В данном случае скорее всего мы видим классический подгон параметров под историю

Это не оч. хорошо. Про это будет. Прямо вот следующую тему и сделаю.

0

12

СПОТ 0.3     
Мы всё ближе к победе.

change log
1) Реализован Расчёт объёма лота (пункт 5)
2) Баг с продажей вылазит у меня тока на определённом промежутке (тестирую с начала года со 2 января). При установки начальной даты 3 января всё фурыкает, так что считаем пока это недокументированной фишкой.

Ссылка на СПОТ 0.3

0

13

СПОТ 0.4   

change log
1) Реализован Метод ввода капитала в рынок (пункт 3)
2) Тейки, стопы и смещение GTC-ордера вынесены в параметры, если комы поигратся вздумается.

Ссылка на СПОТ 0.4

0

14

:yahoo:  :hi:  :friends:  :bravo:

ОГРОМНОЕ СПАСИБО!

0

15

Не за что. Обенно учитывая, что на истории СПОТ сливает.
4-ый пункт по сути корректирующий и на расстановку сил не влияет. У меня история что ли такая гнилая? Просьба форумчанам попробовать погонять у себя с визуализацией, может свежий взгляд найдёт неточности. Гонять лучше с ранних версий, так удобнее проверять пункты поотдельности.

Отредактировано Gray (2006-12-13 15:31:06)

0

16

Результаты прогона с начала года

0

17

А вот что получается если работать ПРОТИВ системы

0

18

:beta: Идет процесс написания Дельфийской версии SPOTа.

Идея .......................................................... комплит
Задумка ..................................................... комплит
Процесс стартед ......................................... комплит
Програм андер констракшн ... 5%  :beta:

0

19

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

Буду исходить из того, что процесс пересечения скользящих средних, как сигнал для открытия сделки - всем уже ясен. Это очевидно и из того, что торговая стратегия С.П.О.Т, написанная Грэем показывает ТОЧНО моменты входа и выхода.

Дальше начинаются какие-то косяки... вероятно, проблема в открытии или ведении позиций. Пытаемся выловить баги.

Ну, вот, на языке программистов процесс открытия позиции выглядит таким образом:

0

20

Продолжение, как говорится, следует... (тут будет продолжение алгоритма)

0


Вы здесь » НейроГалактика » Торговые стратегии » Пища для размышлений: стратегия на скользящих (кодовое имя СПОТ)