
쌍평선 전략 360°는 쌍평선과 추세 강점을 결정한 양적 거래 전략이다. 이 전략은 다른 주기의 평균선을 계산하여 가격 추세를 판단하며, 절사각을 결합하여 추세 강점을 결정하여 더 정확한 구매 및 판매 시점을 선택한다.
360도 전략의 핵심 논리는 다음과 같습니다.
구체적으로, 전략에는 1분 원초 평균선과 칼만 필러브를 통과한 후의 평균선이 정의되어 있습니다. 칼만 필러브는 평균선에서 일부 잡음을 제거하여 더 부드럽게 만들 수 있습니다. 그리고 가격의 추세를 반영하는 각도인 두 평균선의 절단각을 계산합니다. 예를 들어, 절단각이 적었을 때 가격이 상승하고, 반대로 가격이 하락하는 것을 나타냅니다.
전략은 30분을 계산주기로 선택하고, real summed 이 주기의 모든 양과 음의 절개선 각. 절개선 각과 360도 이상일 때, 트렌드가 매우 강하다는 것을 나타내며, 여러 신호를 발송한다. 반대로 절개선 각과 360도 이하일 때, 트렌드 반전이라는 것을 나타내며, 공백 신호를 발송한다.
이중 평행선 전략 360°의 주요 장점은 다음과 같습니다.
하지만 360도 전략에는 몇 가지 위험도 있습니다.
위와 같은 위험을 줄이기 위해, 평균주기를 단축하고, 변수조합을 최적화하고, 손해 중지 장치를 증가시킬 수 있다.
두 개의 평행선 전략 360°에는 더 많은 최적화 가능성은 있습니다:
쌍평선 전략 360° 종합 적용평선 필터와 절단선 각도 정량 판단 경향,보다 안정적인 정량 거래 전략을 실현한다. 단일 기술 지표에 비해,이 전략은 더 포괄적인 고려를 형성하고, 강한 실용성을 가지고 있다. 그러나 여전히 파라미터 조정 및 위험 제어에 주의를 기울여야 하며, 향후 계속 최적화하여 전략 효과를 더 좋게 할 수 있다.
/*backtest
start: 2024-01-25 00:00:00
end: 2024-01-30 08:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)
// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")
// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) =>
kf = 0.0
dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
velo = 0.0
velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
kf := smooth + velo
kf
// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01)
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")
// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数
// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数
// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数
// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加
// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360
// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)
// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角