トリプルムービング・平均クロスオーバーシステム (Triple Moving Average Crossover System) は,トレンドをフォローする典型的な株式取引戦略である. 購入・販売信号として異なる時間長さの3つの移動平均値のクロスオーバーを使用する. 短期移動平均値が中期移動平均値を超越し,中期移動平均値が長期移動平均値を超越すると,購入信号が生成される. 短期移動平均値が中期移動平均値を下回り,中期移動平均値が長期移動平均値を下回りすると,販売信号が生成される.
この戦略は3つの移動平均値に基づいており,長期移動平均値 ma1,中期移動平均値 ma2,短期移動平均値 ma3です.まず,以下の3つの線を計算します.
length1 = input(18,'长线')
length2 = input(9,'中线')
length3 = input(4,'短线')
ma1 := sma(close,length1)
ma2 := sma(close,length2)
ma3 := sma(close,length3)
long1, length2 と length3 が 3 つの移動平均値の時間長さを定義している. sma 関数は,対応する長さの間の閉値の単純な移動平均値を計算します.
次に,3つの移動平均値のクロスオーバーを使用して入口と出口を決定します.
if ma2 > ma1 and ma3 > ma3[1]
strategy.entry("Long", strategy.long)
if ma2 < ma1 and ma3 < ma3[1]
strategy.entry("Short", strategy.short)
中期 ma2 が長期 ma1 を越え,短期 ma3 が前期 ma3 を越え,中期 ma2 が長期 ma1 を越え,短期 ma3 が前期 ma3 を越え,短期の ma2 が前期 ma3 を越え,中期 ma2 が長期 ma1 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma2 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma2 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma2 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 が前期 ma3 を越え,短期の ma3 を越え,短期の
これらのリスクは,適切なパラメータ最適化,他の指標のフィルター追加などによって軽減できます.
トリプル・ムービング・アベレージ・クロスオーバー戦略は,シンプルで実践的なトレンドフォロー戦略である.トレード・シグナルを生成するために3つのムービング・アベレージのクロスオーバーに基づいてトレンド方向の変化を特定する.この戦略の利点は,シンプルなルールとトレンドの効果的な追跡であり,中長期取引に適している.しかし,誤った信号と引き下げのリスクもあります.この戦略は,パラメータを最適化し,サポート指標を追加して,さまざまな市場環境に適応することで改善することができます.全体として,トリプル・ムービング・アベレージ・クロスオーバーは,定量的な取引を学ぶための良い出発点を提供する基礎的なアルゴリズム取引戦略です.
/*backtest start: 2023-08-28 00:00:00 end: 2023-09-27 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © dongyun //@version=4 strategy("三重交叉修正模式系统", overlay=true) //strategy.risk.allow_entry_in(strategy.direction.long) length1 = input(18,'长线') length2 = input(9,'中线') length3 = input(4,'短线') ma1 =0.0 ma2 = 0.0 ma3 = 0.0 ma1 := sma(close,length1) ma2 := sma(close,length2) ma3 := sma(close,length3) plot(ma1) plot(ma2) plot(ma3) if ma2 > ma1 and ma3 > ma3[1] strategy.entry("Long", strategy.long, when=strategy.position_size <= 0) if ma2 < ma1 and ma3 < ma3[1] strategy.entry("Short", strategy.short, when=strategy.position_size > 0)