線形回帰チャネル戦略は,線形回帰分析と移動平均指標に基づいた短期取引戦略である.この戦略は,線形回帰チャネルとハル移動平均を組み合わせ,トレンド方向を特定し,比較的低いリスクのエントリーポイントを見つける.
線形回帰チャネル戦略は主に2つの指標に基づいています.
線形回帰チャネル:線形回帰分析によって計算されたチャネル範囲.この戦略は,価格の長期的な傾向を表すために55日間の線形回帰線を設定する.同時に,価格の高温領域を表すチャネルの上限を計算する.
ハール移動平均値: 移動平均値のような 400 日間のトレンド追跡指標が,価格の全体的な傾向と方向性を決定するために使用されます.
具体的な取引論理は:
価格がチャネルの上限を下回り,400日間のハル移動平均を下回ると,ロング;価格が線形回帰の真ん中点を超えると,利益を得るためにポジションを閉じる.
価格が上向きのチャネルに戻ると 利益を得ることができます
この戦略には以下の利点があります.
線形回帰チャネルにより 価格の熱度と長期的トレンド方向を より正確に判断でき 変動する市場での盲目エントリーを 避けることができます
ハル移動平均は 短期的な市場の騒音をフィルタリングして 入場タイミングを明確にする.
この戦略は,取引の頻度が比較的低く,引き上げリスクが低く,波動性の高い市場では上位と底部を追わない.
利点は明確で 中期・短期的な傾向で 良質な収益が得られる場合が多い.
線形回帰チャネル戦略にはいくつかのリスクもあります.
牛市では,線形回帰チャネルが平坦化またはわずかに低下し,買い機会を逃す可能性があります. これはパラメータを適切に調整することによって最適化できます.
予期せぬ出来事によって大きな逆転が発生した場合,ストップ・ロスはヒットし,大きな損失が発生する可能性があります.ストップ・ロスの比率は,単一の取引損失を制御するために設定できます.
引き下がりが深すぎてハルMAラインを突破すると,出口で利益を得ることができない可能性があります.ハルMAパラメータまたはストップロスは調整できます.
取引頻度が低すぎるかもしれない. 取引頻度を増やすために線形回帰サイクルを短縮する.
線形回帰チャネル戦略は,次の側面で最適化することができます:
線形回帰チャネルパラメータを動的に調整してチャネルを実際の価格変動に近いものにします.
Hull MA パラメータを最適化し,トレンド逆転点をより正確に決定する.
シングル損失リスクを効果的に制御するために,チャネル内でのストップ損失点を設定します.
変動市場でのポジション開設を避けるため,変動指標を追加します.
取引量の指標を組み合わせて 真のブレイクアウトを決定します
線形回帰チャネル戦略は,比較的堅牢なトレンドフォロー戦略である.市場騒音を避け,トレンドが始まると正しい方向に進出する.パラメータを最適化し,指標を組み合わせることで,取引リスクはさらに削減され,収益性が向上することができる.この戦略は,頻繁な取引を必要とせずに中長期保有に適している.一般的に,ライブ取引には強力な実用的な価値があります.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © TradingAmmo //@version=4 strategy("Linear Channel", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD') startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0) end = timestamp(input(9999, "End Year"), 1, 1, 0, 0) _testPeriod() => true //linreg length = input(55) linreg = linreg(close, length, 0) plot(linreg, color=color.white) //calc band Value = input(-2) sub = (Value/100)+1 Band2 = linreg*sub plot(Band2, color=color.red) //HMA as a filter HMA = input(400, minval=1) plot(hma(close, HMA), color=color.purple) long_condition = close < Band2 and hma(close, HMA) < close and _testPeriod() strategy.entry('BUY', strategy.long, when=long_condition) short_condition = close > linreg strategy.close('BUY', when=short_condition)