
이 전략은 가격 채널 원리에 기초하여 설계된 트렌드 추적 전략이다. 그것은 특정 역사적 주기 내의 최고 가격과 최저 가격을 계산하여 가격 채널을 형성하고, 채널 경계를 구매 및 판매 신호로 사용하여 가격 트렌드를 추적하는 목적을 달성한다.
가격 통로 전략의 핵심 아이디어는: 주가가 상승 추세에 있어서는 역사적 고점을 돌파하고, 하향 추세에 있어서는 역사적 저점을 돌파한다. 따라서, 특정 역사적 주기 (예: 21일) 의 최고 가격과 최저 가격에 따라 가격 통로를 구성할 수 있으며, 통로 상과 아래로 각각 구매 및 판매 신호로 사용된다.
구체적으로, 이 전략은 highest (), lowest (), 함수를 이용하여 최근 21일간의 최고 가격과 최저 가격을 계산하여 가격 채널을 형성한다. 해당 날의 종결 가격이 최근 21일간의 최고 가격 (), 즉 침투 채널 상단) 보다 높으면 구매 신호를 생성한다. 해당 날의 종결 가격이 최근 21일간의 최저 가격 (), 즉 침투 채널 하단) 보다 낮으면 판매 신호를 생성한다.
또한, 이 전략은 격차가 있는지 확인하여 트렌드 변동의 가능성을 판단한다. 하향 격차가 있다면, 위험을 예방하기 위해 가격 통로를 빨간색으로 설정하고, 상향 격차가 있다면, 녹색으로 설정한다.
가격 통로 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험을 극복하기 위해, 다음과 같은 몇 가지 측면을 최적화할 수 있습니다.
이 전략에는 다음과 같은 몇 가지 주요 개선방향이 있습니다.
가격 통로 전략은 간단한 역사적 최고 가격과 최저 가격을 통해 통로를 구축하고 통로 경계를 거래 신호로 사용하여 전형적인 트렌드 추적 전략에 속한다. 이 전략은 이해하기 쉽고 구현할 수 있으며, 가격 트렌드를 효과적으로 추적할 수 있으며, 가격 통로를 중지 기능으로 설정한다. 그러나 이 전략에는 약간의 위험도 존재하지만, 주요 최적화 방향은 파라미터 최적화, 다른 지표와 결합, 중지 / 손실, 동적 파라미터 등이 포함된다.
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// 作品: [LunaOwl] 樂活投資:價格通道
// 英文: [LunaOwl] LOHAS Investor - PriceChannel
//
///////////////////////////////
// ~~!!*(๑╹◡╹๑) ** //
// 製作: @LunaOwl 彭彭 //
// 一版: 2019年12月07日 //
// 二版: 2019年12月09日 //
///////////////////////////////
//
// 介紹:
//--價格通道是一個古老的投資策略,對於「肯做功課選股」的上班族投資人非常方便。
//--由於大多數股市散戶沒有時間操作,即時有時間操作也只是加快輸錢的速度,所以,
//--上班族投資法,或「樂活投資」的條件有幾點:
//--**********
//--1) 設定溫和的投資報酬率期望
//--2) 使用適合的選股方式建立投資組合,減少單一股票的失誤率
//--3) 使用簡單的進出場策略,規律的執行它
//--4) 財富依靠時間積累,每天學習
//--**********
//
//==定義回測條件==//
strategy("[LunaOwl] 價格通道",
initial_capital = 10000, commission_value = 0.07,
default_qty_type = strategy.percent_of_equity,
default_qty_value = 50, overlay = true,
calc_on_order_fills = true
)
//==設定價格通道==//
Channel_Price = input(close, title = "通道價格")
Channel_Length = input(21, title = "通道回溯長度")
Channel_High = highest(high, Channel_Length)
Channel_Low = lowest(low, Channel_Length)
gapUp = (low > high[1])
gapDown = (high < low[1])
BackgroundColour = (gapUp == true) ? color.green :
(gapDown == true) ? color.red : na
bgcolor(BackgroundColour, transp=60)
BorderlineA = plot(Channel_High, title = "通道上線", color = color.red, style = plot.style_line)
BorderlineB = plot(Channel_Low, title = "通道下線", color = color.blue, style = plot.style_line)
fill(BorderlineA, BorderlineB, title = "通道底色", color = color.gray, transp = 85)
Long_entry = close >= Channel_High
Long_close_all = close <= Channel_Low
if (not na(close[Channel_Length]))
strategy.entry("買入", strategy.long, comment = "高於近期", stop = Channel_High)
strategy.entry("賣出", strategy.short, comment = "低於近期", stop = Channel_Low)