Классическая стратегия двойного отслеживания трендов

Автор:Чао Чжан, Дата: 2023-11-01 16:54:29
Тэги:

img

Обзор

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

Принципы стратегии

Стратегия в основном следует следующим шагам для достижения двойного отслеживания тенденций:

  1. Вычислить классические опорные точки, включая опорные, S1, R1, S2, R2 и т.д.

  2. Используйте индикатор RSI для определения направления ценового тренда.

  3. Судите о направлении суточного тренда. Если цена закрытия больше, чем R2 предыдущего дня, это сильная тенденция. Если цена закрытия меньше, чем S2 предыдущего дня, это слабая тенденция.

  4. Принимайте сегодняшние торговые решения, основываясь на направлении ежедневного тренда, комбинируя Pivot Points и индикатор RSI.

    • Если суточный тренд силен (близкий > R2), ищите точки обратной покупки в разделе Pivot или покупайте ниже S1.

    • Если суточный тренд слабый (близкий < S2), ищите точки обратной продажи выше Pivot или продажи выше R1.

  5. Для сильного тренда стоп-лосс - это S1 предыдущего дня. Для слабого тренда стоп-лосс - R1 предыдущего дня.

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

Анализ преимуществ

Основными преимуществами этой стратегии являются:

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

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

  3. RSI и т.д. могут оценивать краткосрочные уровни перекупленности/перепроданности, что помогает определить конкретные точки входа.

  4. Правила стратегии ясны и просты, легко понять.

  5. Контроль рисков осуществляется с четкими точками остановки потерь.

Анализ рисков

Основными рисками этой стратегии являются:

  1. Пivot Points могут не предсказывать средне-долгосрочную тенденцию. Это может быть улучшено путем корректировки параметров или сочетания с другими показателями.

  2. RSI и т. д. могут давать ложные сигналы.

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

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

  5. Существует риск чрезмерной торговли. Условия открытия могут быть скорректированы, чтобы избежать чрезмерной торговли.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих областях:

  1. Попробуйте различные комбинации параметров, такие как корректировка параметров RSI, оптимизация вычислений Pivot Point и т. Д., Чтобы найти оптимальные параметры.

  2. Добавьте или объедините другие индикаторы, такие как KDJ, MACD и т. Д., Чтобы сделать сигналы более точными и надежными.

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

  4. Оптимизировать размещение позиций, чтобы ограничить влияние потерь одной позиции.

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

  6. Испытать эффективность на различных продуктах и регулировать параметры.

  7. Добавьте автоматические стратегии получения прибыли, чтобы зафиксировать прибыль.

Резюме

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


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="swing trade", shorttitle="vinay_swing", overlay=true)
pf = input(false,title="Show Filtered Pivots")
sd = input(true, title="Show Daily Pivots?")

//moving average
len = input(50, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

//RSI INPUT
length = input( 7 )
overSold = input( 20 )
overBought = input( 80 )
price = close
vrsi = rsi(price, length)


// Classic Pivot
pivot = (high + low + close ) / 3.0
// Filter Cr
bull= pivot > (pivot + pivot[1]) / 2 + .0025
bear= pivot < (pivot + pivot[1]) / 2 - .0025
// Classic Pivots
r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low)
s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot)
r2 = pf ? na : pivot + (high - low)
s2 = pf ? na : pivot - (high - low)
BC = (high + low) / 2.0
TC = (pivot - BC) + pivot

//Pivot Average Calculation
smaP = sma(pivot, 3)

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1])
dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1])
dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) 
dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) 
dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) 
dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1])
dtime_BC = request.security(syminfo.tickerid, 'D', BC[1])
dtime_TC = request.security(syminfo.tickerid, 'D', TC[1])

offs_daily = 0
plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) 
plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) 
plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) 
plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) 
plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1)
plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1)
plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1)

bull1=  (close > dtime_r2)
bull2= (low < dtime_pivot) or (low < dtime_s1) 
bull3= dtime_pivot > dtime_pivot[1]
bullishenglufing=bull2 and bull3
bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought))
longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1))

bear1=  (close < dtime_s2)
bear2= (high > dtime_pivot) or (high < dtime_r1) 
bear3= dtime_pivot < dtime_pivot[1]
bearishenglufing=bear2 and bear3
bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold))
shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1))

plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny)
plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny)

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)


Больше