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