동적 이동 평균 및 셀틱 채널 거래 전략


생성 날짜: 2023-12-25 13:36:40 마지막으로 수정됨: 2023-12-25 13:36:40
복사: 0 클릭수: 701
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

동적 이동 평균 및 셀틱 채널 거래 전략

설명: 이 전략은 동적 이동 평균, 슈퍼 트렌드 지표, 잠재적인 지원 및 저항 수준 및 켈트 통로를 통합하여 가격 변화에 대한 다단계 판단을 수행하고 자동화 된 트렌드 추적 거래를 구현합니다. 전략의 장점은 거래 신호가 명확하고 승률이 높으며 위험 관리 조치와 결합하여 단일 거래 위험을 제어 할 수 있습니다.

전략적 원칙: 이 전략은 동적 이동 평균을 사용하여 가격의 단기 트렌드 방향을 판단한다. 구체적으로, 사용자의 선택에 따라 스크립트는 간단한 이동 평균 또는 지수 이동 평균을 사용합니다. 최고 가격, 최저 가격 및 폐쇄 가격이 어제보다 높을 때 다단계 트렌드라고 판단하고 최고 가격, 최저 가격 및 폐쇄 가격이 어제보다 낮을 때 공백 트렌드라고 판단합니다.

또한, 전략은 수퍼 트렌드 지표를 사용하여 장기적인 트렌드를 식별합니다. 수퍼 트렌드 지표는 평균 실제 변동의 폭과 결합하여, 가격이 상승 궤도 위에 움직이고 어제의 종료 가격이 상승 궤도보다 낮을 때 구매 신호를 발생시킵니다. 가격이 하향 궤도를 벗어나고 어제의 종료 가격이 하향 궤도보다 높을 때 판매 신호를 발생시킵니다.

가짜 신호를 필터하기 위해, 이 전략은 컬트 통로를 사용하여 통로 오르락 내리락을 도출한다. 통로 범위를 슈퍼 트렌드 지표와 결합하여 트렌드 추적 거래를 구현할 수 있다. 구체적으로, 가격이 아래로 올라 오르락 돌파하고, 어제 종료 가격이 위 궤도보다 낮으면 강력한 구매 신호가 발생한다. 가격이 위로 내려 오르락 돌파하고, 어제 종료 가격이 하향 궤도보다 높으면 강력한 판매 신호가 발생한다.

또한, 스크립트는 잠재적인 지원 및 저항 지점을 도출하는 데 도움을 주며, 중요한 가격 지점을 추가로 결정합니다. 전반적으로, 다층 지표 조합, 엄격한 돌파 조건은 거래 신호의 품질을 근본적으로 향상시킵니다.

전략적 장점:

  1. 다중 전략 지표 조합, 거래 신호 생성이 명확하다. 켈트 통로는 중요한 가격 범위를 결정하고, 동적 이동 평균과 슈퍼 트렌드 지표가 결합되어 트렌드 방향을 엄격하게 결정하여 시장의 가짜 돌파구를 효과적으로 필터링한다.

  2. 엄격한 브레이크 조건은 거래 신호의 품질을 보장한다. 가격은 채널의 상하 궤도를 실제로 뚫고, 어제의 종결 가격의 위치를 결합하여 고정되는 것을 피한다.

  3. 슈퍼 트렌드 지표는 장기적인 트렌드를 포착하고, 긴 선 방향의 행동을 추적한다.

  4. 잠재적인 지원과 저항 지점은 가격의 핵심 지점을 판단하는데 도움을 주며, 역전 기회를 발견할 수 있다.

  5. 전체적인 거래 빈도는 적당하고, 너무 밀도 높은 거래는 하지 않는다. 오직 중요한 지점에서만 높은 품질의 신호를 발산하고, 승률이 높다.

전략적 위험:

  1. 충격적인 상황에서는 지표가 잘못된 신호를 내보낼 수 있으며, 이로 인해 유효하지 않은 브레이크 거래 손실이 발생할 수 있다. 매개 변수를 조정하여 최적화하거나, 인공적인 개입으로 SetPosition에서 탈퇴할 수 있다.

  2. 돌파 통로 상하의 스톱포인트는 너무 커서 단독 손실 위험이 높다. 스톱포인트는 적절히 축소하거나, 시간 스톱포인트는 적용할 수 있다.

  3. 장선 트렌드를 추적할 때, 일부 중단선 반전 기회를 놓칠 수 있다.

  4. 이동 평균 시스템은 때때로 급격한 사건에 반응하는 데 느리다. 이 경우 이동 평균 파라미터를 낮추거나 다른 지표 보조를 채택하는 것을 고려할 수 있다.

전략적 최적화 방향: 이 전략은 다양한 시장 환경과 거래 선호도에 따라 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. 이동 평균 변수를 조정하여 가격 변화에 대한 지표 시스템의 민감성을 최적화합니다.

  2. 슈퍼 트렌드 지표의 ATR 주기 및 인수 파라미터를 조정하고 슈퍼 트렌드 지표의 역할을 최적화한다.

  3. 스톱포인트를 조정하고, 단위 손실 비율을 균형을 잡는다. 또한 시간 스톱포인을 사용하여 단위 손실 위험을 더 제어할 수 있다.

  4. 다른 보조적인 지표들을 추가하여, 예를 들어, 브린 밴드, KD 지표 등으로, 지역적 조정과 반전의 기회를 더 판단할 수 있다.

  5. 오픈, 클로즈와 같은 변수를 사용하여 K선 그래프를 그리며, 가격 상황을 직관적으로 판단한다.

  6. 매개 변수를 최적화하고, 다른 매개 변수 조합에 대한 효과를 재검토한다.

결론: 이 전략은 동적 이동 평균, 슈퍼 트렌드 지표 및 켈트 채널과 같은 다중 지표를 통합하여 트렌드 추적 거래를 자동화합니다. 주요 장점은 다음과 같습니다. 신호 생성 명확하고, 높은 승률; 긴 선의 추세를 추적하고, 방향성 기회를 잡습니다.

전략 소스 코드
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
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/
// © mahesh_linux1989

//@version=5
strategy("Intraday Trend Identifier with Dynamic Moving Averages, Super Trend, VWAP, and Keltner Signals", overlay=true, shorttitle="ITI Keltner")

// Input for Moving Average Type
maType = input("SMA", title="Moving Average Type")

// Input for SMA Length
smaLength = input.int(20, title="SMA Length", minval=1, maxval=200)

// Input for EMA Length
emaLength = input.int(20, title="EMA Length", minval=1, maxval=200)

// Selecting Moving Average
selectedMA = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)

// Bullish conditions
bullish = high > high[1] and low > low[1] and close > high[1]

// Bearish conditions
bearish = high < high[1] and low < low[1] and close < low[1]

// Strategy logic
longCondition = bullish and not bearish and close > selectedMA
shortCondition = bearish and not bullish and close < selectedMA

if (longCondition)
    strategy.entry("Buy", strategy.long)

if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Exit conditions
bullishExit = close < selectedMA
bearishExit = close > selectedMA

if (bullishExit)
    strategy.close("Buy")

if (bearishExit)
    strategy.close("Sell")

// Keltner Channels
basisKC = maType == "SMA" ? ta.sma(close, smaLength) : ta.ema(close, emaLength)
atrKC = ta.atr(14)
upperKC = basisKC + atrKC
lowerKC = basisKC - atrKC

// Super Trend
atrLengthST = input.int(7, title="ATR Length for Super Trend")
factorST = input.int(2, title="Factor for Super Trend")

atrValueST = ta.atr(atrLengthST)

var float upperST = na
var float lowerST = na

if (close[1] > upperST[1])
    upperST := close[1] - factorST * atrValueST
else
    upperST := close - factorST * atrValueST

if (close[1] < lowerST[1])
    lowerST := close[1] + factorST * atrValueST
else
    lowerST := close + factorST * atrValueST

// Potential Support and Resistance
potentialSupport = ta.lowest(low, smaLength)
potentialResistance = ta.highest(high, smaLength)

// VWAP
//vwapValue = ta.vwap(close, volume)

// Keltner Signals
buySignalKC = close > upperKC and close[1] <= upperKC[1]
sellSignalKC = close < lowerKC and close[1] >= lowerKC[1]

// Super Trend Signals
buySignalST = close > upperST and close[1] <= upperST[1]
sellSignalST = close < lowerST and close[1] >= lowerST[1]

// Plotting
plot(basisKC, color=color.gray, title="Keltner Channel Basis")
plot(upperKC, color=color.blue, title="Upper Keltner Channel")
plot(lowerKC, color=color.blue, title="Lower Keltner Channel")

plot(upperST, color=color.green, title="Super Trend Upper")
plot(lowerST, color=color.red, title="Super Trend Lower")

plot(potentialSupport, color=color.green, title="Potential Support")
plot(potentialResistance, color=color.red, title="Potential Resistance")

//plot(vwapValue, color=color.orange, title="VWAP")

// Plot Bullish and Bearish arrows
plotarrow(buySignalST ? 1 : na, colorup=color.green, offset=-1, title="Bullish Arrow ST")
plotarrow(sellSignalST ? -1 : na, colordown=color.red, offset=-1, title="Bearish Arrow ST")

plotarrow(buySignalKC ? 1 : na, colorup=color.blue, offset=-1, title="Bullish Arrow KC")
plotarrow(sellSignalKC ? -1 : na, colordown=color.orange, offset=-1, title="Bearish Arrow KC")

// Plot candlesticks
plot(open, color=color.gray)
plot(close, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(high, color=bullish ? color.green : bearish ? color.red : color.gray)
plot(low, color=bullish ? color.green : bearish ? color.red : color.gray)