Сегодня мы рассмотрим индикатор Stochastic. Узнаем историю создания индикатора и то, как он рассчитывается.
Также к данной статье будут прикреплены готовые скрипты роботов на этом индикаторе с возможностью торговать на нашей платформе OsEngine.
Оглавление
1. История создания индикатора.
2. Как проводятся расчеты индикатора Stochastic.
3. Какие сигналы может подавать индикатор.
4. Роботы для OsEngine на индикаторе Stochastic.
4.1. Стратегия, основанная на двух индикаторах Stochastic.
4.2. Стратегия, основанная на дивергенции индикатора Stochastic.
4.3. Стратегия на индикаторах Stochastic и MACD.
4.4. Контертрендовая стратегия на индикаторах Stochastic и Bollinger.
5. Итоговая таблица результатов.
1. История создания индикатора Stochastic.
Индикатор Stochastic был разработан в 1950-х годах Джорджем Лейном. Лейн был финансовым аналитиком и трейдером, который работал на Уолл-стрит. Он заметил, что цена закрытия актива чаще всего находится ближе к верхней или нижней части ценового диапазона за определенный период времени.
Из этого наблюдения Лейн создал формулу для расчета индикатора Stochastic, который измеряет относительное положение текущей цены закрытия к минимальной и максимальной цене за определенный период времени. Индикатор Stochastic позволяет трейдерам определить возможное изменение направления цены актива и выявить перекупленные или перепроданные зоны.
Индикатор Stochastic основан на двух линиях — %K и %D, которые движутся между уровнями 0 и 100. Линия %K показывает текущее положение цены в отношении ее нижней и верхней границы за определенный период времени. Линия %D является скользящей средней линией, которая сглаживает изменения линии %K.
Индикатор Stochastic стал одним из самых распространенных технических индикаторов и используется как начинающими, так и опытными трейдерами. Он широко применяется в различных рыночных сегментах, включая форекс, фьючерсы, акции и другие.
2. Как проводятся расчеты индикатора Stochastic.
1. Рассчитаем разность между ценой закрытия каждой свечи за выбранный период 1 и минимальной ценой за этот период.
t1 = candles[i].Close – low
где
- candles[i].Close — цена закрытия свечи.
- low — минимум за период.
2. Рассчитаем разность между максимальной и минимальной ценами за период 1.
t2 = high – low
где
- high — максимум за период.
- low — минимум за период.
3. Усредняем найденные значения t1 и t2 за период 2.
tm1 = Σ t1[i] / Period, tm2 = Σ t2[i] / Period
4. Рассчитываем линию К.
K = tm1[i]/ tm2[i] * 100
5. Рассчитываем линию D. Это усреднение линии К за период 3.
D = Σ К[i] / Period
Расчёт индикатора в OsEngine можно посмотреть вот в этом файле:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Stochastic.cs
3. Какие сигналы может подавать индикатор Stochastic.
Индикатор Stochastic может дать различные сигналы:
1. Перекупленность и перепроданность: когда линия K пересекает верхнюю границу (обычно 80), это может сигнализировать о том, что актив перекуплен, и вероятно начнет снижаться. Когда линия K пересекает нижнюю границу (обычно 20), это может указывать на перепроданность актива, и он, вероятно, начнет расти.
2. Пересечение линий: когда линия K пересекает линию D сверху вниз, это может быть сигналом к продаже. А если линия K пересекает линию D снизу вверх, это может быть сигналом к покупке.
3. Дивергенция: дивергенция между ценой актива и индикатором Stochastic может указывать на изменение тренда. Например, если цена актива устанавливает новый максимум, а Stochastic не подтверждает этот максимум, это может быть сигналом о возможном развороте тренда.
4. Уровни поддержки и сопротивления: индикатор Stochastic также может помочь определить уровни поддержки и сопротивления на графике. При достижении уровня поддержки или сопротивления индикатор может дать сигнал о том, будет ли цена актива отскакивать от этих уровней или пробивать их.
4. Роботы для OsEngine на индикаторе Stochastic.
4.1. Стратегия, основанная на двух индикаторах Stochastic.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyTwoStochastic.cs
Логика входа:
- Покупаем, когда быстрый Stochastic ниже 30 и основная линия выше сигнальной, и медленный Stochastic ниже 20 и основная линия выше сигнальной.
- Продаём, когда быстрый Stochastic выше 70 и основная линия ниже сигнальной, и медленный Stochastic выше 80 и основная линия ниже сигнальной.
Выход:
- Из покупки, устанавливаем трейлинг-стоп в процентах от минимума свечи, на которой вошли.
- Из продажи, устанавливаем трейлинг-стоп в процентах от максимума свечи, на которой вошли.
Рис. 1. Пример логики.
Рис. 2. Si, TF15 min, 2021-23, P/L 1 contract: 0,18%
Рис. 3. BR, TF15 min, 2021-23, P/L 1 contract: 0,25%
Рис. 4. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,36%
Рис. 5. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,86%
4.2. Стратегия, основанная на дивергенции индикатора Stochastic.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceStochastic.cs
Ссылка на ZigZag:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZag.cs
Ссылка на ZigZagStochastic (отдельный индикатор):
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZagStochastic.cs
Для осуществления этой стратегии наша команда совместила индикатор Stochastic и ZigZag для более правильного определения дивергенции. На этот индикатор также будет ссылка, и он уже встроен в нашу платформу OsEngine. И также на графике мы используем обычный индикатор ZigZag.
Логика входа:
- Покупаем, когда на графике цены минимум за определенный отрезок времени ниже предыдущего минимума, а на индикаторе минимум выше предыдущего.
- Продаём, когда на графике цены максимум за определенное количество времени выше предыдущего максимума, а на индикаторе максимум ниже предыдущего.
Выход:
- Из покупки. Устанавливаем стоп на минимум за указанный для стопа период, а профит равен размеру стопа, умноженного на коэффициент из параметров.
- Из продажи. Устанавливаем стоп на максимум за указанный для стопа период, а профит равен размеру стопа, умноженного на коэффициент из параметров.
Рис. 6. Пример логики.
Рис. 7. Si, TF15 min, 2021-23, P/L 1 contract: 0,21%
Рис. 8. BR, TF15 min, 2021-23, P/L 1 contract: 0,64%
Рис. 9. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,95%
Рис. 10. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,46%
4.3. Стратегия на индикаторах Stochastic и MACD.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyStochasticAndMACD.cs
Ссылка на MACD:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/MACD.cs
Логика входа:
- Покупаем, когда основная линия Stochastic находится выше сигнальной и её значение выше 20, и на индикаторе MACD гистограмма пересекает сигнальную линию снизу вверх.
- Продаем, когда основная линия Stochastic находится ниже сигнальной и её значение ниже 80, и на индикаторе MACD гистограмма пересекает сигнальную линию сверху вниз.
Выход:
- Из покупки. Устанавливаем трейлинг-стоп на минимум за указанный для трейлинг-стопа период и переносим к новым минимумам цены, также за указанный период.
- Из продажи. Устанавливаем трейлинг-стоп на максимум за указанный для трейлинг стопа период и переносим к новым максимумам цены, также за указанный период.
Рис. 11. Пример логики.
Рис. 12. Si, TF15 min, 2021-23, P/L 1 contract: 0,56%
Рис. 13. Br, TF15 min, 2021-23, P/L 1 contract: 0,35%
Рис. 14. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,31%
Рис. 15. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,36%
4.4. Контртрендовая стратегия на индикаторах Stochastic и Bollinger.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyBollingerAndStochatic.cs
Ссылка на Bollinger:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Bollinger.cs
Логика входа:
- Покупаем, когда основная линия Stochastic выше сигнальной, и предыдущая свеча закрылась ниже нижней линии Bollinger, а текущая закрылась выше нижней линии.
- Продаем, когда основная линия Stochastic ниже сигнальной, и предыдущая свеча закрылась выше верхней линии Bollinger, а текущая закрылась ниже верхней линии.
Выход:
- Из покупки. Устанавливаем трейлинг-стоп на минимум за указанный для трейлинг-стопа период и переносим к новым минимумам цены, также за указанный период.
- Из продажи. Устанавливаем трейлинг-стоп на максимум за указанный для трейлинг стопа период и переносим к новым максимумам цены, также за указанный период.
Рис. 16. Пример логики.
Рис. 17. Si, TF15 min, 2021-23, P/L 1 contract: 0,36%
Рис. 18. Br, TF15 min, 2021-23, P/L 1 contract: 0,37%
Рис. 19. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,46%
Рис. 20. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 1,17%
5. Итоговая таблица результатов.
Лучшие результаты у нас показала контртрендовая стратегия, основанная на индикаторах Bollinger и Stochastic.
* Информация представлена по расчетам OsEngine https://github.com/AlexWan/OsEngine
Ссылки на роботов на GitHub:
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyTwoStochastic.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceStochastic.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyStochasticAndMACD.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyBollingerAndStochatic.cs
Пост из серии «Роботы и индикаторы»
Из данных статей Вы узнаете базовую информацию о том или ином индикаторе. А также можно посмотреть роботов на данных индикаторах с исходным кодом.
Оглавление здесь: https://smart-lab.ru/company/os_engine/blog
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php