この戦略は,変動を追及し,減少を抑制するために,異なるタイムフレームの移動平均値と指数的な移動平均値を取引シグナルとして使用する.短期移動平均値の位置と傾向に応じて市場傾向と曲線点を判断し,長期移動平均値に従って主要な傾向を決定する.この戦略は,市場騒音を効果的にフィルターし,価格傾向を決定するために,技術指標としてシンプル移動平均値 (SMA) と指数的な移動平均値 (EMA) を組み合わせます.
この戦略は5日,13日,21日SMAと75日,90日,200日EMAを取引信号として使用する.具体的な論理は:
短期SMAs (5日,13日,21日) が順番に並べられているとき (上位は5日,次は13日,下位は21日),すべての短期SMAが長期EMA (75日,90日,200日) を上回っている場合,ロングする.
短期SMAs (5日,13日,21日) が順番に並べられているとき (下位は5日,次は13日,上位は21日) そしてすべての短期SMAが長期EMA (75日,90日,200日) の下に位置すると,ショートします.
異なる周期のSMAとEMAを組み合わせることで,短期的および長期的価格動向を効果的に判断し,傾向を追求する戦略を実行することができます.
この戦略には以下の利点があります.
二重移動平均指標を使用することで,市場の騒音を効果的にフィルタリングし,価格動向を正確に判断できます.
短期的な傾向を特定するための短いサイクルと,主要な傾向を特定するための長いサイクルで,ゆっくりと速く達成します.
SMAは価格変動に敏感で,EMAは価格変動を平滑させ,両方を組み合わせることでうまく機能します.
この戦略にはいくつかのリスクもあります:
複数のタイムフレームの設定は,パラメータ調整と最適化に困難があるため,かなり複雑です.
短期指標と長期指標の間の差が起こり,間違った信号が発信される可能性があります.
移動平均指標のみをベースに 極端な市場状況下で劣る可能性があります
ある程度の遅延があり 転換点を間に合うように捉えられない
戦略は以下の側面で最適化できます.
戦略の精度を向上させるために,KDJ,MACDなど,シグナルフィルタリングのための他の技術指標を追加します.
最適なパラメータの組み合わせを見つけるため,短期および長期移動平均の期間と数をテストし最適化します.
リスクとDDを制御するストップ・ロスのメカニズムを追加します
大幅な物価急上昇で誤ったブレイクを避けるために 総量指標を組み合わせます
この戦略は,二重移動平均値とマルチタイムフレーム分析を使用して,シンプルで効果的なトレンドトラッキングを実現する. 戦略のアイデアは,特定の実践的な価値で明確で理解しやすい. しかし,パラメータ最適化,リスク管理など,改善の余地があります. 全体的に,戦略は定量的な取引のための価値あるアイデアを提供し,深く研究し議論する価値があります.
/*backtest start: 2023-11-12 00:00:00 end: 2023-12-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="my_strategy_name", shorttitle="MS1", overlay=true ) source = close // MAの長さ len1 = 5 len2 = 13 len3 = 21 // MAの計算 ma1 = sma(source, len1) ma2 = sma(source, len2) ma3 = sma(source, len3) // 計算したMAをプロットする plot(ma1,color=color.red) plot(ma2,color=color.orange) plot(ma3,color=color.blue) // EMAの長さ len4 = 75 len5 = 90 len6 = 200 // MAの計算 ema1 = ema(source, len4) ema2 = ema(source, len5) ema3 = ema(source, len6) // 計算したMAをプロットする plot(ema1,color=color.red) plot(ema2,color=color.orange) plot(ema3,color=color.blue) longCondition = (ma1>ma2 and ma2>ma3 and ma3>ema1 and ema1>ema2 and ema2>ema3)//ロングにエントリーする条件 if (longCondition) strategy.entry("My Long Entry", strategy.long, comment="Long") shortCondition = (ma1<ma2 and ma2<ma3 and ma3<ema1 and ema1<ema2 and ema2<ema3)//ショートにエントリーする条件 if (shortCondition) strategy.entry("My Short Entry", strategy.short, comment="Short") //エグジット条件 strategy.exit("My Long Exit", "My Long Entry", profit=200, loss=100) strategy.exit("My Short Exit", "My Short Entry", profit=200, loss=100)