長期移動平均のクロスオーバーのRENKO戦略

作者: リン・ハーンチャオチャン, 日付: 2024-01-24 10:55:57
タグ:

img

概要

この戦略は,レンコキャンドルストックチャートに基づいた移動平均クロスオーバー戦略である.これはクロスオーバー信号を構築するためにTEMA指標を使用し,レンコチャートにおけるトレンドを特定し,買い売り信号を生成することを目的としたフィルタリングのための長期移動平均を組み合わせます.

戦略の論理

この戦略の主な信号源は,短期TEMA指標とSMA指標の黄金十字と死十字から来ます.具体的には,論理は以下です.

短期TEMAが短期SMAを横切ると,ロング;短期TEMAが短期SMAを下回ると,ポジションを閉じる.

さらに,戦略は,エントリーとストップロスのロジックを調整するために,2つのオプションパラメータ avg_protectionとgain_protectionを設定しています.

  • avg_protection>0 の場合,閉じる価格が現在の平均保有価格より低い場合にのみ購入し,コストベースを減らすことができます.

  • gain_protection>0の場合,閉じる価格が入場価格を一定パーセント上回る場合にのみ売却して利益を固定します.

最後に,この戦略は,長期SMMA指標をトレンドフィルターとして使用する.閉じる価格がSMMAを下回る場合にのみ,ロング信号が起動する.

利点分析

この戦略の主な利点は以下の通りです.

  1. レンコのキャンドルスタイクチャートに基づいて 騒音を効果的にフィルタリングし 傾向を特定できます
  2. 高い感度と追跡能力を持つ信号を構成するためにTEMA指標を使用する.
  3. 調整可能なパラメータが豊富で,エントリー戦略を制御できます.
  4. 長期と短期移動平均の組み合わせによって,トレンドの機会が捉えられます.

リスク分析

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

  1. レンコ自身も タイムラインが不均等で インターバル時間を制御できない
  2. TEMAの高い感度により 誤った信号も増えます
  3. パラメータの設定が正しくない場合,取引が失敗する可能性があります.

これらのリスクを軽減するために,適切なパラメータ調整,ストップ損失の設定などを採用することができます.

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

この戦略の主要な最適化方向は以下の通りである.

  1. 最適なパラメータを見つけるために異なるパラメータ組み合わせを試験する.
  2. DD を減らすために,ストップ損失を後押しするストップ損失,レンジストップ損失などストップ損失戦略を追加する.
  3. 偽信号を減らすために,他の信号フィルタリング指標を組み合わせる.
  4. 試験パラメータの有効性

結論

一般的に,これは基本的なシンプルな,しかし非常に実践的な移動平均クロスオーバー戦略である.主にレンコバーの優れたノイズ削減効果とTEMAインジケーターの信号生成の高い感度に依存する.一方,長期および短期移動平均間の協力もトレンドフォローする能力を向上させる.パラメータチューニングと適切な最適化により,この戦略は定量取引のための効果的な選択になることができます.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

もっと