
Эта стратегия является индикаторной стратегией, которая использует краткосрочные высокие и низкие точки и расхождение между средними и долгосрочными средними затратами для определения тенденции. Стратегия направлена на повышение чувствительности коротких линий, чтобы снизить потери в сборе путем увеличения средней функции плавления до и после, чтобы уменьшить небольшие потери в сборе, сохраняя при этом большую прибыль при появлении волновой полосы.
Расчет краткосрочных затрат: используйте функции ta.highest и ta.lowest, чтобы вычислить самые высокие и самые низкие цены на последних коротких корнях K, а затем усредните их как краткосрочные затраты
Расчет долгосрочных затрат: использование функции ta.sma для вычисления простого скользящего среднего от цены закрытия последней линии longTerm root K как долгосрочных затрат
Расчет средней разницы: краткосрочные затраты минус долгосрочные затраты
Сглаженное среднее: сглаженное среднее для уменьшения ошибочных выводов, здесь используется ta.sma в качестве простого движущегося среднего
Определение тренда: установление порогового значения, когда скольжение превышает пороговое значение, и определяется как восходящий тренд, а когда пороговое значение меньше отрицательного значения, определяется как понижающий тренд
Вход и выход: при большом количестве времени следите за тенденцией к росту, при коротком - за тенденцией к снижению
Решение риска:
Эта стратегия в целом является очень простой и прямой стратегией отслеживания тенденций. По сравнению с обычными подвижными средними и прочими показателями, ее можно быстрее оценить, исходя из средней разницы между краткосрочными и долгосрочными затратами. В то же время сглаживание также дает большую возможность оптимизировать параметры, которые можно сбалансировать с чувствительностью и погрешностью, регулируя параметры сглаживания.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dead0001ing1
//@version=5
strategy("Trend-Following Indicator", overlay=true)
// 設置參數
shortTerm = input(5, "Short Term")
longTerm = input(20, "Long Term")
smooth = input(5, "Smoothing")
threshold = input(0, "Threshold")
// 計算短期成本
shortH = ta.highest(high, shortTerm)
shortL = ta.lowest(low, shortTerm)
shortCost = (shortH + shortL) / 2
// 計算長期成本
longCost = ta.sma(close, longTerm)
// 計算均差
deviation = shortCost - longCost
// 平滑均差
smoothedDeviation = ta.sma(deviation, smooth)
// 判斷順勢
isTrendingUp = smoothedDeviation > threshold
isTrendingDown = smoothedDeviation < -threshold
// 顯示順勢信號
plotshape(isTrendingUp, title="Trending Up", location=location.belowbar, color=color.green, style=shape.labelup, text="Up", size=size.small)
plotshape(isTrendingDown, title="Trending Down", location=location.abovebar, color=color.red, style=shape.labeldown, text="Down", size=size.small)
// 定義進出場策略
if isTrendingUp
strategy.entry("Long", strategy.long)
strategy.close("Long", when=isTrendingDown)
if isTrendingDown
strategy.entry("Short", strategy.short)
strategy.close("Short", when=isTrendingUp)