이중 이동 평균을 기반으로 전략에 따라


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

이중 이동 평균을 기반으로 전략에 따라

개요

이중 평행선 따라하는 전략은 이동 평균을 기반으로 한 추세 따라하는 전략이다. 그것은 다른 주기의 이동 평균을 계산하여, 시장의 추세 방향을 판단하여 거래 신호를 발산한다. 단기 이동 평균 위에 장기 이동 평균을 통과하면, 더 많이; 단기 이동 평균 아래에 장기 이동 평균을 통과하면, 공백. 이 전략은 추세에 따라 작동하여 이익을 얻는다.

전략 원칙

이중 평행선은 14주기 및 28주기 간단한 이동 평균 (SMA) 을 계산하여 트렌드 방향을 판단하는 전략을 따릅니다. 구체적으로, 각 주기의 끝에서 14주기 SMA와 28주기 SMA의 근접 가격을 계산합니다. 14주기 SMA에서 28주기 SMA를 통과하면 다중 신호를 발산하고 긴 위치를 열고 14주기 SMA에서 28주기 SMA를 통과하면 빈 신호를 발산하고 짧은 위치를 열습니다.

포지션에 진입하면, 스톱 및 스톱 손실을 설정하여 위험을 제어합니다. 스톱 및 스톱 손실의 점수는 입력된 파라미터를 통해 가격으로 변환됩니다. 또한, 차트에 스톱 라인, 스톱 손실 라인 및 입시 평균 가격의 참조 라인을 그리기 때문에 포지션의 이익과 위험을 직관적으로 판단 할 수 있습니다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 조작과 실행이 가능합니다.
  2. 추세에 따른 운행, 회수 가능성은 낮다.
  3. 주기 변수를 조정하여 거래 빈도를 제어할 수 있다.
  4. 스톱패스포인트 제어 리스크를 유연하게 설정할 수 있다.

위험 분석

이 전략은 위험도 있습니다.

  1. 갑작스러운 사건이 시장의 흐름을 방해할 때 큰 손실이 발생할 수 있습니다.
  2. 만약 스톱포인트가 너무 작다면, 너무 일찍 스톱포인트가 발생할 수 있다.
  3. 만약 스톱포인트가 너무 커진다면 손실의 범위를 넓힐 수 있다.
  4. 거래 빈도가 너무 높거나 너무 낮아지거나, 자금 효율성에 영향을 미칠 수 있습니다.

위와 같은 위험을 통제하기 위해, 다음과 같은 측면에서 최적화할 수 있습니다:

  1. 변동률 지표와 결합하여 스톱포드를 판단한다.
  2. 이동 평균의 주기적 변수를 최적화한다.
  3. 트렌드 필터를 추가하여 트렌드 끝의 가짜 신호를 피하십시오.

최적화 방향

이중 일률적 추적 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 변동률 지표를 늘리고, 동적으로 중지점을 조정한다. 예를 들어, ATR 지표와 결합하여 시장 변동이 증가할 때 중지점을 확장하여 조기 중단을 피한다.

  2. 이동 평균 주기 변수를 최적화한다. 더 많은 조합을 테스트할 수 있고, 거래 신호를 생성하는 더 적절한 주기들을 선택한다.

  3. 트렌드 필터를 추가한다. 예를 들어 MACD, DMI 등의 지표를 추가하여 트렌드 말기에 발생하는 가짜 신호를 방지하고 불필요한 거래를 줄인다.

  4. 기계 학습 모델을 추가한다. LSTM, GRU 등의 딥 러닝 모델을 사용하여 가격 흐름을 예측하고, 전통적인 평행법칙을 대체하여 더 나은 효과를 얻을 수 있다.

  5. 다중 품종 거래 전략이 더 많은 품종에 적용되고, 무관성을 활용하여 전체적인 회수량을 줄인다

요약하다

이중 평행선 따라가는 전략은 전체적으로 간단하고 실용적인 트렌드 전략이다. 그것은 추세에 따라 움직이며, 회수 위험은 작고, 실행하기가 쉽습니다. 우리는 주기 파라미터를 조정하고, 스톱로스 스톱을 설정하고, 트렌드 판단 지표를 추가하는 등의 방법으로 이 전략을 최적화하여 더 많은 시장 환경에 적응할 수 있도록 하며, 더 안정적인 투자 수익을 얻을 수 있다.

전략 소스 코드
/*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/
// © coinilandBot
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

// @description
// 

//@version=4
strategy("coiniland  copy trading platform", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)