이 전략은 가격 채널 원리에 기반한 트렌드 다음 전략입니다. 특정 역사적 기간 동안 가장 높고 가장 낮은 가격을 계산하여 가격 채널을 형성하고 채널 경계를 구매 및 판매 신호로 사용하여 가격 트렌드를 추적합니다.
가격 채널 전략의 핵심 아이디어는: 주식 가격이 상승 추세에 있을 때, 그것은 역사적 최고치를 돌파할 것이다; 하락 추세에 있을 때, 그것은 역사적 최저치를 돌파할 것이다. 따라서, 가격 채널은 특정 역사적 기간 (예를 들어 21 일) 의 최고와 최저 가격을 기반으로 구축될 수 있다. 채널의 상부 및 하부 레일은 각각 구매 및 판매 신호로 작용한다.
특히, 이 전략은 가장 최근 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)