더블 이동 평균 전략 360°


생성 날짜: 2024-02-02 14:29:59 마지막으로 수정됨: 2024-02-02 14:29:59
복사: 0 클릭수: 656
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 이동 평균 전략 360°

개요

쌍평선 전략 360°는 쌍평선과 추세 강점을 결정한 양적 거래 전략이다. 이 전략은 다른 주기의 평균선을 계산하여 가격 추세를 판단하며, 절사각을 결합하여 추세 강점을 결정하여 더 정확한 구매 및 판매 시점을 선택한다.

전략 원칙

360도 전략의 핵심 논리는 다음과 같습니다.

  1. 1분과 칼만 파동 이후의 평균선을 계산한다.
  2. 두 개의 평균선의 가격차를 계산하여 절단각을 계산한다.
  3. 이 기호는 동향이 강하거나 약하다는 신호를 얻을 수 있는 단축선 각을 더합니다.
  4. 축적 절개선 각이 설정된 임계치를 초과하는지 여부에 따라 거래 신호를 발산한다.

구체적으로, 전략에는 1분 원초 평균선과 칼만 필러브를 통과한 후의 평균선이 정의되어 있습니다. 칼만 필러브는 평균선에서 일부 잡음을 제거하여 더 부드럽게 만들 수 있습니다. 그리고 가격의 추세를 반영하는 각도인 두 평균선의 절단각을 계산합니다. 예를 들어, 절단각이 적었을 때 가격이 상승하고, 반대로 가격이 하락하는 것을 나타냅니다.

전략은 30분을 계산주기로 선택하고, real summed 이 주기의 모든 양과 음의 절개선 각. 절개선 각과 360도 이상일 때, 트렌드가 매우 강하다는 것을 나타내며, 여러 신호를 발송한다. 반대로 절개선 각과 360도 이하일 때, 트렌드 반전이라는 것을 나타내며, 공백 신호를 발송한다.

우위 분석

이중 평행선 전략 360°의 주요 장점은 다음과 같습니다.

  1. 평행선은 단기시장 소음을 필터링하여 거래결정을 더욱 안정적이고 신뢰할 수 있게 해줍니다.
  2. 세로각은 트렌드 강도를 측정하고, 평형형태로만 판단하는 주관성을 피합니다.
  3. 더 많은 절단 모서리를 선택하여 더 나은 소음 제거 효과를 가지며 거래 신호를 더 안정적으로 발송합니다.
  4. 단일 평평선 전략에 비해, 쌍평평선은 트렌드 강도 판단을 결합하여 전략을 더 포괄적이고 견고하게 만든다.

위험 분석

하지만 360도 전략에는 몇 가지 위험도 있습니다.

  1. 평균선은 지연되어 있고, 단기적 추세 전환점을 놓칠 수 있습니다.
  2. 수만 축적된 트렌드 강도 신호는 시장의 변동에 취약합니다.
  3. 변수 설정 (예: 계산주기 길이) 이 잘못되면 거래 기회를 놓치거나 잘못된 신호를 생성할 수 있다.

위와 같은 위험을 줄이기 위해, 평균주기를 단축하고, 변수조합을 최적화하고, 손해 중지 장치를 증가시킬 수 있다.

최적화 방향

두 개의 평행선 전략 360°에는 더 많은 최적화 가능성은 있습니다:

  1. 시장의 변동에 따라 평균 변수를 조정하는 적응 평균선을 추가합니다.
  2. 여러 평균 주기 참조를 추가하여 최적화된 파라미터 조합을 형성합니다.
  3. 변동성, 거래량 등에 기반한 동적 트렌드 판단 모듈을 추가합니다.
  4. 기계 학습 모델과 결합하여 매개 변수를 조정하거나 거래 결정을 내릴 수 있습니다.

요약하다

쌍평선 전략 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="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角