この戦略の主な考え方は,価格動向を判断し,移動平均値とボリンジャーバンドを使用して取引信号を生成することです.具体的には,まず変動幅を得るため,一定の期間中の平均真の範囲 (ATR) を計算し,その後,最高値と最低値を組み合わせて制限チャネルを形成します.価格がこのチャネルを通過した場合,閉じる価格はチャネル価格に設定されます.その後,トレンドトレーダー移動平均値 (AVR) と呼ばれる制限された閉じる価格の移動平均値を計算します.最後に,トレンドトレーダー移動平均値の上下にボリンジャーバンドを描き,取引信号を形成します.価格が上帯を通過するとロング,下帯を通過するとショートします.
この戦略は,まずATRレンジを計算し,最高値と最低値を組み合わせて制限チャネルを形成する. 閉じる価格は,チャネルを突破するときにのみチャネル価格に制限される. その後,中長期トレンド方向を反映する限定閉じる価格のトレンドトレーダー移動平均を計算する. 最後に,トレンドトレーダー移動平均に平行する上帯と下帯をボリンジャーバンドとして描く. 上帯を突破すると長い信号,下帯を突破すると短い信号が生成される.
トレンドを判断するコアは,中長期のトレンド方向を体現するトレンドトレーダーの移動平均にあります.ボリンジャーバンドの役割は,いくつかの偽のブレイクをフィルターし,取引信号をより信頼性のあるものにすることです. 戦略全体がトレンドフォローとブレイクを組み合わせて,強力なトレンドシステムを形成します.
解決策:
この戦略は全体的に強いトレンドフォローシステムである.中長期トレンドを判断し,ボリンジャーバンドと組み合わせて取引信号を生成することができる.パラメータ最適化によって,安定したアルファを得ることができる.しかし,長期にわたって保有するときに突然の出来事による大きな損失を避けるためにリスク制御も重要です.一般的に,戦略は長期持続可能なアルファのためにさらなる研究と最適化を望みます.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/10/2018 // This is plots the indicator developed by Andrew Abraham // in the Trading the Trend article of TASC September 1998 // It was modified, result values wass averages. // And draw two bands above and below TT line. //////////////////////////////////////////////////////////// strategy(title="Trend Trader Bands Backtest", overlay = true) Length = input(21, minval=1), LengthMA = input(21, minval=1), BandStep = input(20), Multiplier = input(3, minval=1) reverse = input(false, title="Trade reverse") avgTR = wma(atr(1), Length) highestC = highest(Length) lowestC = lowest(Length) hiLimit = highestC[1]-(avgTR[1] * Multiplier) loLimit = lowestC[1]+(avgTR[1] * Multiplier) ret = 0.0 ret := iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) nResMA = ema(ret, LengthMA) pos = 0.0 pos := iff(close < nResMA - BandStep , -1, iff(close > nResMA + BandStep, 1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(nResMA, color= blue , title="Trend Trader AVR") plot(nResMA+BandStep, color= red , title="Trend Trader UpBand") plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")