この戦略は,価格チャネル原理に基づくトレンドフォロー戦略である.特定の歴史的期間における最高価格と最低価格を計算して価格チャネルを形成し,チャネル境界線を価格トレンドを追跡するための購入・販売信号として使用する.
価格チャネル戦略の基本理念は,株価が上昇傾向にあるとき,歴史的な高値を突破し,下落傾向にあるとき,歴史的な低値を突破する.したがって,価格チャネルは,特定の歴史的期間 (例えば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)