レベルごとに移動平均戦略を構築する

作者: リン・ハーンチャオチャン開催日:2023年9月26日16時20分
タグ:

概要

Level by Level Build Up Moving Average戦略は,RENKOチャートに基づいた取引戦略である.これは,異なるタイムフレームの移動平均値間の価格とクロスオーバーをシグナルとしてスムーズにするために移動平均指標を使用する.一方,より合理的なストップのためにストップ損失レベルを決定するためにATR指標を使用する.

戦略の論理

この戦略の基本論理には,次のことが含まれます.

  1. RENKOのタイムフレームとATR期間を選択するために入力を使用

  2. RENKOの価格と色を計算します.価格が前のRENKO価格プラス現在のATRを突破すると上向きにします.価格が前のRENKO価格マイナス現在のATRを下向きにします.

  3. 現在のロングとショートポジションを記録するために BUYとSELLという2つの整数を使用します.

  4. breakout のとき,short ポジションがない場合,ロング になります. ダウンブレイク時,ロングポジションがない場合はショートします.

  5. グラフを使って RENKO のグラフをグラフ化します

このロジックにより,価格が前のレベルを突破するとロングまたはショートを開くことができ,価格が逆転するとポジションを閉じる.ブレイクアウト範囲を決定するためにATRを使用すると,現在の変動に基づいてストップロスはより合理的です.

利点分析

この戦略には以下の利点があります.

  1. RENKO は 騒音 を フィルタリング し,傾向 を 特定 し ます RENKOは価格騒音を効果的にフィルタリングし,重要なトレンドを特定することができます.この組み合わせはトレンド検出と追跡に最適です.

  2. 移動平均のクロスオーバーは取引信号を生成する 異なるタイムフレームの移動平均値のクロスオーバーは,信頼できる取引信号を提供し,ノイズによる誤った信号を避けることができます.

  3. ATRで動的停止 ATRを動的にストップ・ロスを設定するために使用すると,現在の変動性に基づいてストップをより合理的にし,あまりにも幅広くまたは狭すぎないストップを避けることができます.

  4. トレンドと移動平均の組み合わせ トレンドと移動平均指標を組み合わせると 両方の強みを活用します 移動平均値で信頼できる信号を保証しながら RENKO でトレンドを捉えます

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 誤った傾向の特定 RENKO が 傾向 を 決定 する 方法 は,不要 な ロング と ショート に 繋がる こと が でき ます.誤った 信号 を 減らす ため に パラメータ を 最適化 する 必要 が あり ます.

  2. 移動平均のクロスオーバーからの誤った信号
    移動平均のクロスオーバーから誤った信号があり,不必要な取引を引き起こす可能性があります.移動平均期間を最適化することができます.

  3. 誤ったATRパラメータ 誤ったATR期間設定は,あまりにも広いまたはあまりにも狭いストップにつながることもあります.最適なパラメータのために異なる市場をテストする必要があります.

  4. ウィップソー市場 横向または強いウィップソー市場では,RENKOは多くの不必要な取引を生成し,資本を占拠する可能性があります.そのような市場での取引を避けるために他のフィルタが必要です.

オプティマイゼーションの方向性

戦略は以下の側面で最適化できます.

  1. RENKOとATRのパラメータを最適化
    このパラメータを調整して RENKOの誤った信号を最小限に抑え 傾向を把握する

  2. 移動平均のクロスオーバーフィルターを追加する 移動平均値を追加し 誤った信号をフィルタリングするために 信号を生成する前に ほとんどの移動平均を調整するようにします

  3. 他の指標フィルターを追加する 例えば,取引量を増やして,取引量が価格を確認するときにのみ取引を行うこと.

  4. ストップ・ロスの戦略を改善する より論理的なストップをするために ATRを追跡するのではなく 傾向に基づくストップを使用する方法を探します

  5. 資金管理を最適化する リスクをコントロールしながら 収益を最大化するために この戦略の下で 最適な資本配分を研究します

結論

一般的に,これはライブマーケットで最適化およびテストする価値のある戦略である.トレンドと移動平均クロスオーバーをフィルタリングされた信号としてRENKOを使用する基本的な考えは健全である.動的ATRストップにより,堅固なトレンドフォローシステムになることができます.次のステップは,パラメータとパフォーマンスを向上させるために既知のリスクに基づいてそれを最適化し続けることです.


/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Renko Level Strategy 2", shorttitle="RLS2", overlay=true, pyramiding=2, currency=currency.USD, default_qty_value=50, initial_capital=2000, default_qty_type=strategy.percent_of_equity) 

TF = input(title='TimeFrame', type=input.resolution, defval="D")
ATRlength = input(title="ATR length", type=input.integer, defval=14, minval=2, maxval=100)

HIGH = security(syminfo.tickerid, TF, high)
LOW = security(syminfo.tickerid, TF, low)
CLOSE = security(syminfo.tickerid, TF, close)
ATR = security(syminfo.tickerid, TF, atr(ATRlength))

float RENKO = na
color COLOR = na
int BUY = na
int SELL = na
bool UP = na
bool DN = na

RENKO := na(RENKO[1]) ? close : RENKO[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false

if(close > RENKO[1]+ATR[1])
    UP := true
    RENKO := close
    COLOR := color.lime
    SELL := 0
    BUY := BUY+1

if(close < RENKO[1]-ATR[1])
    DN := true
    RENKO := close
    COLOR := color.red
    BUY := 0
    SELL := SELL+1
    

if(BUY[1]==1 and BUY==2)
    strategy.entry("long", strategy.long)//, limit = RENKODN)

if(DN)
    strategy.cancel_all()
    strategy.close_all(comment = "close")


plot(RENKO, style=plot.style_line, linewidth=2, color=COLOR)

もっと