期間移動平均クロスオーバーレンコ戦略


作成日: 2024-01-24 10:55:57 最終変更日: 2024-01-24 10:55:57
コピー: 0 クリック数: 717
1
フォロー
1617
フォロワー

期間移動平均クロスオーバーレンコ戦略

概要

この戦略は,レンコのグラフに基づいた移動平均の交差策である.これは,TEMA指標を使用して交差信号を構築し,長期平均線と組み合わせてフィルタリングを行い,レンコのグラフ上のトレンドを識別し,買入と売却の信号を発信することを目的としている.

戦略原則

この戦略の主な信号源は,短期TEMA指数とSMA指数の金叉死叉である.具体的論理は以下の通りである.

短期TEMAで短期SMAを突破するときは,多めに;短期TEMAの下で短期SMAを突破するときは,平仓する.

さらに,このポリシーは,入場と停止のロジックを調節するために,avg_protectionとgain_protectionの2つのオプションのパラメータを設定しています.

  • avg_protection>0の場合は,現在の保有平均価格より低い閉店価格でのみ購入し,そうすることで保有コストを削減します.

  • gain_protection>0の場合,閉じる価格が入場価格の一定パーセントを超えた場合にのみストップを販売し,利益をロックします.

最後に,戦略は,長期SMMA指標をトレンドフィルターとして使用します. 閉じる価格がSMMAより低い場合にのみ,多信号を発信します.

優位分析

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

  1. レンコのグラフを基に,ノイズをフィルターし,トレンドを識別します.
  2. TEMAの指標を使って信号を構成し,高い感度で,良い追随性がある.
  3. オンラインゲームでは,ゲームプレイの詳細を把握し,ゲームプレイの詳細を把握します.
  4. 長期・短期平均線と組み合わせると,トレンドの機会を捉えることができます.

リスク分析

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

  1. レンコの時間軸は不均一で,時間間隔を制御できない.
  2. TEMAの高感度が誤信号を発生させる可能性も高くなります.
  3. パラメータの設定を間違えた場合,漏えいが発生する可能性があります.

これらのリスクに対して,適切なパラメータの調整,停止位置の設定などの方法で回避することができます.

最適化の方向

この戦略は,以下のような点で最適化できます.

  1. 異なるパラメータの組み合わせをテストし,最適なパラメータを探します.
  2. 移動停止,区間停止などの止損戦略を追加してDDを減らす.
  3. 他の指標と組み合わせて信号をフィルターして誤信号を減らす.
  4. 異なる品種のパラメータの効果をテストする.

要約する

この策略は,全体として,基本的にはシンプルだが実用性が高い移動均線交差策である.それは,主に,Renko K線の優れた消音効果と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))