Type/to search

ダブル移動平均線差分取引戦略

Common strategy
Created: 2023-10-17 13:54:05
Last modified: 3 years ago
1
Follow
1802
Followers

img

概要

この戦略は、2本の移動平均線の差分を用いて取引シグナルを生成します。短期期間と長期期間の2本の移動平均線を計算し、短期線が下方から長期線を上抜けたときに買いシグナル、短期線が上方から長期線を下抜けたときに売りシグナルを発生させます。

原理の解説

この戦略の核心的なロジックは、2本の移動平均線SMA(len1)とSMA(len2)、およびそれらの差分difを計算することです。len1は短期移動平均線の期間、len2は長期移動平均線の期間を表します。短期移動平均線は価格変動に素早く反応し、長期移動平均線は長期的なトレンドをよりよく反映します。

短期線が下方から長期線を上抜けた場合、短期価格が長期トレンドを超えて上昇し始めたことを示し、買いのタイミングと判断できます。逆に、上方から長期線を下抜けた場合は、短期価格が長期トレンドを下回って下落し始めたことを示し、売りのタイミングとなります。

また、誤操作をフィルタリングするために、out3を取引シグナル線として導入しています。out3は、短期線と価格中央値の差分をSMAで平滑化したものです。out3がdifをクロスした場合にのみ取引シグナルが発生します。

具体的には、long変数はout3がdifを上抜けたときに正の値となり、買いシグナルとして機能します。short変数はout3がdifを下抜けたときに負の値となり、売りシグナルとして機能します。strategy.entryはlongシグナルに基づいて買い注文を生成し、strategy.closeはshortシグナルに基づいて売り決済注文を生成します。

優位性の分析

これは非常にシンプルで直感的なトレンド追従戦略です。2本の移動平均線の期間の違いによって発生するクロスを利用してトレンド転換点を捉えるため、単一の移動平均線システムよりも信頼性が高いと言えます。また、取引シグナル線によるフィルタリングを導入することで、レンジ相場で発生する偽シグナルをある程度回避できます。

移動ストップなどの方法と比較して、トレンド追従の考え方を採用しているため、トレンドが続いている間は利益を最大化でき、ストップで損切りされることなく保有を続けられます。同時に、トレンドが反転した際には速やかにポジションをクローズすることで損失をコントロールします。

この戦略はパラメータが少なく、容易に把握・調整できるため、アルゴリズム取引を学び始めた初心者にとって入門戦略として適しています。

リスクと改善点

この戦略の最大のリスクは、2本の移動平均線の期間パラメータが不適切なために取引シグナルが誤ることです。短期線の期間len1が長すぎるとトレンドの初期段階の機会を逃し、短すぎると偽シグナルの確率が高まります。長期線の期間len2が長すぎるとポジション調整が遅れ、短すぎると市場のノイズに影響されやすくなります。

len1とlen2のパラメータを調整することで最適な組み合わせを見つけることができます。また、適応型移動平均線を導入して期間を動的に調整することも検討できます。さらに、フィルターのパラメータを最適化することで偽シグナルを減らすことも可能です。

トレンド追従戦略では、1回の取引あたりの損失額をコントロールすることも重要です。ストップ損切りポイントを設定したり、ポジション管理を導入することで最適化を図れます。

まとめ

2本の移動平均線の差分戦略は、非常に代表的なトレンド追従戦略の一つです。シンプルな2本の移動平均線のクロスシステムにより安定したシグナル源を提供し、フィルターと組み合わせることで市場のノイズによる影響を効果的に回避できます。移動平均線の期間パラメータを最適化することで、良好な戦略パフォーマンスを得ることができます。この戦略はアルゴリズム取引の入門戦略として非常に適しています。

Source
Pine
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//by afrazium
//@version=3
strategy(title="SMA Diff strat", shorttitle="SMAD STR", overlay=false, initial_capital=1, precision=8, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills= false, calc_on_every_tick=false, pyramiding=0)
len1 = input(50, minval=1, title="Length1"), len2 = input(100, minval=1, title="Length2"), smo = input(1, minval=1, title="Smoothing")
Strategy parameters
Strategy parameters
Length1
Length2
Smoothing
Source
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)