리소스 로딩... 로딩...

G 채널 트렌드 탐지 전략

저자:차오장, 날짜: 2024-05-29 17:06:13
태그:MATPSL

img

전반적인 설명

G-채널 트렌드 탐지 전략은 G-채널 지표에 기반한 양적 거래 전략이다. 전략은 G-채널의 상단과 하단 끝을 계산하고 가격의 교차와 G-채널 이동 평균에 기초하여 현재 시장 트렌드를 결정하여 이에 따라 구매 및 판매 신호를 생성합니다. 또한 전략 세트는 위험을 제어하기 위해 수익 및 스톱 손실 조건을 취합니다.

전략 원칙

  1. G 채널의 상단과 하단 a와 b를 계산합니다. 여기서 a는 이전 기간의 a값과 현재 기간의 a값의 차이점을 빼고, b는 과거 낮은 가격과 이전 기간의 a값과 b값의 차이점을 나누고,
  2. G 채널 이동 평균 AVG, 즉 (a+b) /2를 계산합니다.
  3. 가격과 b값 사이의 교차 상황을 결정합니다. 가격이 b값을 넘으면 상승 추세로 간주되며 가격이 a값을 넘으면 하락 추세로 간주됩니다.
  4. 상승 트렌드에서, 이전 촛불이 하락하고 현재 촛불이 상승하면 구매 신호가 생성됩니다. 하락 트렌드에서, 이전 촛불이 상승하고 현재 촛불이 하락하면 판매 신호가 생성됩니다.
  5. 수익을 취하고 손실을 멈추는 조건을 설정합니다. 긴 포지션을 보유할 때, 수익을 취하는 가격은 구매 가격 곱하기 (1+이익을 차지하는 비율) 이며, 손실을 멈추는 가격은 구매 가격 곱하기 (1-손실 비율) 이며, 짧은 포지션을 보유할 때, 수익을 취하는 가격은 판매 가격 곱하기 (1-이익을 차지하는 비율) 이며, 손실을 멈추는 가격은 판매 가격 곱하기 (1+손실 비율) 입니다.

전략적 장점

  1. G 채널 지표는 시장 동향을 효과적으로 파악하고 가격과 G 채널 이동 평균의 교차를 기반으로 구매 및 판매 신호를 생성하여 간단하고 사용하기 쉽습니다.
  2. 이윤을 취하고 손실을 멈추는 설정은 위험을 효과적으로 제어하고 단일 거래에서 과도한 손실을 방지 할 수 있습니다.
  3. 전략 논리는 명확하고 이해하기 쉽고 구현하기 쉽기 때문에 양적 거래의 초보자도 배울 수 있고 사용할 수 있습니다.

전략 위험

  1. G 채널 지표는 시장 변동 중에 더 많은 잘못된 신호를 생성하여 빈번한 거래 및 높은 미끄러짐 비용을 초래할 수 있습니다.
  2. 이윤을 취하고 손실을 멈추는 비율의 설정은 시장 특성과 개인 위험 선호도에 따라 조정되어야하며 부적절한 매개 변수 설정은 전략 수익률이 낮을 수 있습니다.
  3. 이 전략은 거래 자산의 특수성을 고려하지 않습니다. 예를 들어 거래 중단, 주식 전략의 가격 제한 상승과 하락, 추가 최적화가 필요합니다.

전략 최적화 방향

  1. 다른 기술 지표, 예를 들어 ATR 및 RSI는 G 채널 지표에 의해 생성되는 신호의 2차 확인을 수행하기 위해 도입될 수 있으며, 신호의 신뢰성을 향상시킵니다.
  2. 이윤을 취하고 손실을 멈추는 비율에 대해 동적 조정 접근 방식을 채택하여 시장 변동성 및 보유 기간과 같은 요인에 따라 적응적으로 조정하여 전략의 적응성을 향상시킬 수 있습니다.
  3. 거래 자산의 특성에 따라 대응한 위험 관리 모듈을 추가 할 수 있습니다. 예를 들어 주식 전략의 경우 거래 중단 및 가격 제한 상승과 하락과 같은 특수 상황에 대한 처리 논리를 설정 할 수 있습니다.

요약

G-채널 트렌드 탐지 전략은 G-채널 지표에 기반을 둔 간단한 양적 거래 전략으로 시장 트렌드를 포착하고 위험을 제어하기 위해 수익을 취하고 손실을 중지하는 조건을 설정하여 구매 및 판매 신호를 생성합니다. 전략 논리는 명확하고 구현하기가 쉽습니다. 양적 거래에 초보자도 배울 수 있도록 적합합니다. 그러나 전략은 변동하는 시장에서 더 많은 잘못된 신호를 생성 할 수 있으며 수익을 취하고 손실을 중지하는 비율은 시장 특성에 따라 조정해야합니다. 게다가 거래 자산의 특수성을 고려하지 않습니다. 미래에 전략의 안정성과 수익성을 향상시키기 위해 다른 기술 지표를 도입하고 수익을 취하고 손실을 중지하는 비율을 동적으로 조정하며 위험 제어 모듈을 추가하여 전략을 최적화 할 수 있습니다.


//@version=5
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy("G-Channel Trend Detection Strategy", shorttitle="G-Trend", overlay=true)

// Input parameters
length = input.int(100, title="Length")
src = input(close, title="Source")
take_profit_percent = input.float(5.0, title="Take Profit (%)")
stop_loss_percent = input.float(2.0, title="Stop Loss (%)")
showcross = input.bool(true, title="Show Cross")

// Initialize variables
var float a = na
var float b = na

// Calculate a and b
a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length
b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length

// Calculate average
avg = (a + b) / 2

// Determine trend and color
crossup = ta.crossunder(b, close)
crossdn = ta.crossunder(a, close)
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
c = bullish ? color.lime : color.red

// Plotting
p1 = plot(avg, "Average", color=c, linewidth=1)
p2 = plot(close, "Close price", color=c, linewidth=1)
fill(p1, p2, c)

// Generate buy and sell signals
buy_signal = showcross and bullish and not bullish[1]
sell_signal = showcross and not bullish and bullish[1]

// Plot buy and sell signals on chart
plotshape(buy_signal ? avg : na, location=location.belowbar, style=shape.labeldown, color=color.new(color.lime, 0), size=size.tiny, text="Buy", textcolor=color.white, offset=-1)
plotshape(sell_signal ? avg : na, location=location.abovebar, style=shape.labelup, color=color.new(color.red, 0), size=size.tiny, text="Sell", textcolor=color.white, offset=-1)

// Alerts
alertcondition(buy_signal, title="Buy Signal", message="Buy Signal Detected")
alertcondition(sell_signal, title="Sell Signal", message="Sell Signal Detected")

// Calculate take profit and stop loss levels
take_profit_level = close * (1 + take_profit_percent / 100)
stop_loss_level = close * (1 - stop_loss_percent / 100)

// Strategy Entry and Exit
if (buy_signal)
    strategy.entry("Buy", strategy.long)

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

// Define the take profit and stop loss conditions for long positions
strategy.exit("Take Profit/Stop Loss", "Buy", limit=take_profit_level, stop=stop_loss_level)

// Define the take profit and stop loss conditions for short positions
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close * (1 - take_profit_percent / 100), stop=close * (1 + stop_loss_percent / 100))


관련

더 많은