Стратегия следования за трендом на основе двойного разворотного осциллятора


Дата создания: 2024-01-25 16:01:04 Последнее изменение: 2024-01-25 16:01:04
Копировать: 0 Количество просмотров: 652
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе двойного разворотного осциллятора

Обзор

Двойная стратегия отслеживания трендов с помощью двойного отклонения и индикатора отклонения. Сначала она использует систему 123 для создания отклонений, а затем использует индикатор Fractal Chaos Bands для фильтрации сигналов. Эта стратегия позволяет идентифицировать возможности для отклонения и отслеживать тенденцию.

Стратегический принцип

123 обратная система

123 обратная система происходит от Ульфа Дженсена на странице 183 в книге “Как я могу получить три раза больше прибыли на рынке фьючерсов”.

Когда цена закрытия 2 дня подряд выше цены закрытия предыдущего дня, и когда линия Slow K на 9 день ниже 50, делайте больше; когда цена закрытия 2 дня подряд ниже цены закрытия предыдущего дня, и когда линия Fast K на 9 день выше 50, делайте больше.

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

Показатель Fractal Chaos Bands

Индекс Fractal Chaos Bands определяет тенденции рынка, рисуя самые высокие и самые низкие точки цен на акции, формируя верхние и нижние полосы. Конкретные правила:

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

Эта часть используется в основном в качестве фильтра тренда в сочетании с 123 обратным сигналом. Позиции открываются только тогда, когда оба сигнала совпадают.

Стратегические преимущества

  1. Вместе с обратными тенденциями и возможностями

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

  1. Уменьшение ложных сигналов и повышение шансов на победу

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

  1. Гибкость и адаптивность регулирования параметров

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

Риск и оптимизация

  1. Невозможность адаптироваться к тенденциям

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

  1. Необходимость в маргинальном финансировании

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

  1. Фильтрация на другие показатели

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/09/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
//  Stock market moves in a highly chaotic way, but at a larger scale, the movements 
// follow a certain pattern that can be applied to shorter or longer periods of time 
// and we can use Fractal Chaos Bands Indicator to identify those patterns. Basically, 
// the Fractal Chaos Bands Indicator helps us to identify whether the stock market is 
// trending or not. When a market is trending, the bands will have a slope and if market 
// is not trending the bands will flatten out. As the slope of the bands decreases, it 
// signifies that the market is choppy, insecure and variable. As the graph becomes more 
// and more abrupt, be it going up or down, the significance is that the market becomes 
// trendy, or stable. Fractal Chaos Bands Indicator is used similarly to other bands-indicator 
// (Bollinger bands for instance), offering trading opportunities when price moves above or 
// under the fractal lines.
//
// The FCB indicator looks back in time depending on the number of time periods trader selected 
// to plot the indicator. The upper fractal line is made by plotting stock price highs and the 
// lower fractal line is made by plotting stock price lows. Essentially, the Fractal Chaos Bands 
// show an overall panorama of the price movement, as they filter out the insignificant fluctuations 
// of the stock price.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
    res = 0.0
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
    res =0.0
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res := iff(okl == 1 and okr == 1, p, res[1])
    res

FCB(Pattern) =>
    pos = 0.0
    xUpper = fractalUp(Pattern)
    xLower = fractalDn(Pattern)    
    pos := iff(close > xUpper, 1,
             iff(close < xLower, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Fractal Chaos Bands", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFCB = FCB(Pattern)
pos = iff(posReversal123 == 1 and posFCB == 1 , 1,
	   iff(posReversal123 == -1 and posFCB == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )