この戦略は,チャネル移動平均線を計算し,価格がチャネルラインを突破して株価のトレンドに従うときにロングまたはショートポジションを確立します. これはトレンドフォロー戦略に属します.
この戦略は,まず,チャネルの上部レールとして20日間の高平均を計算し,チャネルの下部レールとして20日間の低平均を計算し,チャネルのミッドラインを計算する.チャネルのミッドラインは最近の平均価格傾向を表します.価格がチャネルのミッドラインを上向きに突破すると,ロングポジションが確立されます.価格がチャネルのミッドラインを下向きに突破すると,ショートポジションが確立されます.価格がチャネルの範囲の反対側に戻るまで価格トレンドをフォローして,ポジションを閉じます.
一般的には,この戦略は比較的シンプルで直接的なものです. 基本価格チャネルを通じて株価の傾向を判断し,次のタイプのトレンドに属します. 利点としては,操作が簡単で,価格トレンドによってもたらされる投資機会を完全に利用し,ファンドロックアップを避けることです. デメリットとしては,不適切なパラメータ設定がパフォーマンスに影響し,プルバックテストのリスクがあります. 合理的な最適化によって,戦略の安定性が向上し,実際の取引パフォーマンスが向上することができます.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2) //stock strategy strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20, overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2019, "Backtest Start Year") testEndMonth = input(3) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = 20 dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=close > dcAverage) strategy.close("simpleBuy",when=close < dcLower) strategy.entry("simpleSell", strategy.short,when=close < dcAverage) strategy.close("simpleSell",when=close > dcAverage)