Шаблон на основе цены и одной скользящей средней (в. 1)

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 13 фев 2022, 10:41

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

В данной теме мы рассмотрим самый жесткий шаблон для проведения подобных торговых операций. Прежде всего нам нужно определиться с тем каким образом мы будем представлять готовый программный код. Как обычно, я предлагаю формировать его в виде отдельных функций. Если функция возвращать должна три варианта результата выполнения или более и при этом эти результаты отличны от математических величин, то я создаю функцию строкового типа и результат её выполнения это строка и, поскольку, для торговой операции нужно лишь знать в данном контексте покупать, продавать или быть вне рынка, то я так и формирую возвращаемые значения:
"UP", "DN", "NO" ("вверх", "вниз", "нет").

Таким образом, мы должны в соответствие с условиями определить какой шаблон складывается: бычий, медвежий или вне рынка.

Рассмотрим условия бычьего шаблона

0 свеча (текущая, на которой возможно открывать будем сделку)
1) Open[0] > MA[0].
Открытие свечи на которой будет откываться покупка должно быть больше значения МАшки.

1 свеча назад:
1) Low[1] <= MA[1] (факт касания, теста МАшки);
2) Close[1] > MA[1] (ни в коем случае не должны пробить закрытием МАшку);
3) Open[1] > MA[1] (т.е. подошли к МАшке сверху, значит бычий паттерн).
Мы требуем факта тестирования ценой МАшки и дополнительно это скажет нам о том, что цена возле МАшки и сверху. Открытие и закрытие 1-ой свечи должно быть выше МАшки, это значит мы цена находится в бычьем положении.

2 свеча назад:
1) Open[2] > MA[2] (т.е. находимся выше МАшки);
2) Close[2] > MA[2] (ни в коем случае не должны были пробить МАшку и ранее).

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

Почему мы вообще требуем условия не пробития ценой закрытия МАшки? Да потому, что если этого не требовать, то как тогда фильтровать флет? Флет просто убьет депозит, т.к. будет так или иначе при торговле до нескольких десятков пересечений ценой МАшки.

Рассмотрим условия медвежьего шаблона

0 свеча (текущая, на которой возможно открывать будем сделку)
1) Open[0] < MA[0].
Открытие свечи на которой будет откываться продажа должно быть меньше значения МАшки.

1 свеча назад:
1) High[1] >= MA[1];
2) Close[1] < MA[1];
3) Open[1] < MA[1].

2 свеча назад:
1) Open[2] < MA[2];
2) Close[2] < MA[2].

Код данной функции выглядит так:
Код: выделить все
string f_PatMAPrice(int pe, int me, int ap)
{
   double dblMA0 = iMA(NULL, 0, pe, 0, me, ap, 0);
   double dblMA1 = iMA(NULL, 0, pe, 0, me, ap, 1);
   double dblMA2 = iMA(NULL, 0, pe, 0, me, ap, 2);
   bool bolA = false, bolB = false, bolC = false;
   
   // Бычий паттерн рассматриваем:
   if(Open[0] > dblMA0) bolA = true;
   if((Low[1] <= dblMA1) && (Open[1] > dblMA1) && (Close[1] > dblMA1)) bolB = true;
   if((Open[2] > dblMA2) && (Close[2] > dblMA2)) bolC = true;
   if(bolA && bolB && bolC) return("UP");
   
   // Медвежий паттерн рассматриваем:
   bolA = false; bolB = false; bolC = false;   
   if(Open[0] < dblMA0) bolA = true;
   if((High[1] >= dblMA1) && (Open[1] < dblMA1) && (Close[1] < dblMA1)) bolB = true;
   if((Open[2] < dblMA2) && (Close[2] < dblMA2)) bolC = true;
   if(bolA && bolB && bolC) return("DN");
   
return("NO");
}

В функцию f_PatMAPrice() мы передаем параметры:
- pe - период МАшки;
- me - метод усреднения МАшки;
- ap - тип цены МАшки.

В основном коде программы для использования данного шаблона нужно создать строковую переменную и присвоить ей значение данной функции, передав в неё соответствующие параметры скользящей средней. Данная переменная получит значения:
- "UP" - появился бычий шаблон и можно открывать покупку:
- "DN" - появился медвежий шаблон и можно открывать продажу;
- "NO" - шаблон оставаться вне рынка.

На скрине ниже мы видим пример работы по данному шаблону. Есть прибыльные входы, но также есть и убыточные. Полностью избежать убытков не удается. Также многое зависит от правильного подбора периода и типа скользящей средней.
Вложения
Снимок экрана от 2022-02-13 13-44-39.png
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение babij » 13 фев 2022, 20:41

Я проанализировал 33 сделки которые закрылись на прошлой неделе, чтобы понять как лучше находить точку входа. Или на пробое МА, или на отбое с тестированием, или с закреплением, или ложным пробоем, также пробовал к сигналу входа прикручивать уровни, также свечные паттерны, потом менял таймфрейм на М15 и пробовал там найти какие-то паттерны, после пробовал играться с стопами, чтобы увеличить соотношение прибыли и стопа 2 к 1, а не как у меня 1 к 1. И что после этого всего я хочу сказать: я не нашел оптимального варианта, который мог бы дать самый лучший результат по тесту. Все эти подходы ничем почти не отличались от моего простого подхода - это вход в сделку при касании цены к ЕМА.
Пока тест продолжается по ранее определенным правилам.
Вложения
222.png
111.png
Последний раз редактировалось Haos 14 фев 2022, 07:11, всего редактировалось 1 раз.
Причина: Только по теме
Аватар пользователя
babij
 
Сообщений: 5262
Зарегистрирован: 13 апр 2016, 11:38
Средств на руках: 289.00 Доллар
Награды: 2
Ветеран II (1) Высокая активность. Серебро (1)
Группа: Базовая
Благодарил (а): 716 раз.
Поблагодарили: 589 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 14 фев 2022, 07:35

Если торговать без условий, лишь на подходе цены к средней, то это игра в 50 на 50. В теме рассматривается конретный паттерн. Тема подразумевает, обсуждение данного паттерна или предложение иных паттернов. Нет идей - не пишем, есть идеи - пишем. Только идеи, конретно.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 14 фев 2022, 08:10

Идея на основе ТС на одной EMA выглядит простой, но на самом деле, она сложная. Нужно формализовать много сложных правил, т.е. создать шаблон.
1. Что значит приближение ценой к МА?
2. Что считать приближением цены к МА?
3. Как быть на флете, когда цена постоянно пересекает МА?
4. Как фильтровать входы?
5. Что считать приближением на тренде, а что на флете?
....
Это лишь часть вопросов. Здесь интуитивно не получится найти решение. Поэтому создания этого шаблона я пока оставляю в стороне, как очень сложного.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 19 фев 2022, 15:10

Всё-таки, думается так: если цена при подходе к МАшек пробивает её, то это не может быть сигналом к продолжению тренда, даже если она после этого снова пересекает МАшку в обратном направлении.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 19 фев 2022, 15:12

На данном скрине видно, что если МАшка отреагировала так, что цена только тенью её пробила, то цена может дальше пойти по тренду, который был до этого. Ключевое слово может. Но если цена пробила МАшку, то цена точно уже не может пойти по тренду, т.к. во-первых, ей нужно обратно пробить МАшку, а во-вторых, начало тренда нас в данном контексте не интересует. Мы ищем, отбоя от МАшки по тренду уже имеющемся.
Вложения
Снимок экрана от 2022-02-19 18-06-44.png
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 19 фев 2022, 15:15

И вот как быть? Ясно, что если есть закрытие выше / ниже МАшки при подходе цены к ней, то сделку открывать нелепо. Но, нужно еще что-то, чтобы отфильтровывать блуждание цены вокруг МАшки, флет или нарезку как на скрине выше. Думается, что одним из таких фильтров может быть время пребывания цены в стороне от МАшки. Т.е. если цена уже долго с одной стороны МАшки, то можно считать это условно наличием тренда. А если она недолго, то это или флет или только зарождение тренда, а это нес не должно интересовать (в данном контексте).
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 19 фев 2022, 15:18

Таким образом, идея в том, что мы:
1. Торгуем только если цена тенью пробила МАшку;
2. Если цена достаточно долго была с одной стороны МАшки.
Вуа-ля! Идея интересная. Почему она раньше не приходила? Да, мы пропустим начало тренда и пропустим тренды без коррекции к МАшке. Но мы также пропустим и кучу ложных входов на флете, причем не зависимо от того, тенью ли только коснулись МАшки или пробили её. Вот такой фильтр можно оформить в виде шаблона и потом протестировать его.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Шаблон на основе цены и одной скользящей средней (в. 1)

Сообщение Haos » 19 фев 2022, 15:35

Сигналов, однако, таких будет очень мало. Поэтому есть еще идея более демократичного шаблона: цена всё же может пробить МАшку, но только одной свечой и не сильно, а уже следуеющей свечой, вернуть цену обратно.
На скрине ниже мы видим всего две продажи, т.к. фильтр на длительное пребываение с одной стороны МАшки должен быть, как выясняется. Значит этот фильтр главный! Сделок уже больше может быть. Флет чуть хуже, но будет отсеиваться всё равно за счет этого фильтра.
Вложения
Снимок экрана от 2022-02-19 18-30-10.png
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения