量子マスターのための多レベル移動平均の横断戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-12 12:11:02
タグ:

img

概要

この戦略は,多レベル移動平均線交差の原則を利用して,中長期のトレンドを把握し,安定した利益を達成する.異なるパラメータを持つ高速,中,遅い3つのセットの移動平均を使用し,その交差に基づいて取引決定を下す. 移動平均線交差の2つのセットのみを持つ伝統的な戦略と比較して,この多レベル移動平均線交差戦略は,より多くの偽信号をフィルタリングし,戦略の勝利率を改善することができます.

戦略の論理

この戦略は,移動平均の3つのセットを使用します:高速移動平均MAshort,中速移動平均MAmid,そして遅い移動平均MAlong. MAshortは9のパラメータを持ち,最も速く反応し,短期信号を捕捉するために使用されます. MAmidは50のパラメータを持ち,中間速度を持ち,トレンドを確認するために使用されます. MAlongは100のパラメータを持ち,最もゆっくり反応し,長期トレンドの方向性を決定するために使用されます.

戦略の特異的な取引論理は,中速移動平均線MAmidがスロー移動平均線MAlongの上を横切ると,株価の上昇勢力が形成されていることを示します.この時点で,戦略は長引きます.高速移動平均線MAshortが中速移動平均線MAmidを下に横切ると,短期的なトレンド逆転が発生し,この時点で戦略がポジションを退行することを示します.

この戦略の最大の利点は,複数の移動平均値を組み合わせることで,誤った信号を効果的にフィルタリングし,中長期上向きのトレンド中に比較的強いブレイクアウトを選択してロングポジションを開くことができるということです.

利点分析

この戦略の利点は次のとおりです.

  1. 戦略パラメータは,比較的高い勝利率で,中長期的傾向に効果的に対応するように最適化されています.
  2. 多レベル移動平均設計は 騒音と偽信号をフィルターします
  3. これは,比較的良い過去バックテスト結果を持つすべての種類の株式と暗号通貨に適しています.
  4. 取引頻度は低く,各開設ポジションは資金の30%を占め,リスクは制御可能である.
  5. 設定可能で,リアルタイム取引に柔軟性があります.

リスク分析

この戦略には次のリスクもあります

  1. 長期にわたるトレンド逆転の確率は比較的小さいが,それが起こる場合,ストップロスの大きさは大きい可能性があります.
  2. 取引頻度は低く,したがって資本の非効率的な利用の問題があります.
  3. 戦略のパラメータは,異なる取引品種に最適化されなければなりません.これは適用範囲を制限します.

これらのリスクに対処するために,ストップ・ロスの技術で最大引き下げを制御しながら,戦略の適用性をさらに拡大します. 中長期の傾向の逆転に反応してポジションを削減します.

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

この戦略は,次の方法で最適化することもできます.

  1. 最適なパラメータ組み合わせを見つけるために移動平均の日パラメータを最適化
  2. 曲線フィッティングの問題を確認し回避するために音量指標を追加します
  3. ストップ損失を強制するために,戦略のための最大損失を設定する,例えば20%最大引き下げ
  4. 傾向を判断し,戦略の適応性を向上させるための機械学習モデルを組み込む

概要

この戦略は典型的な中長期的定量戦略に属し,取引リスクを制御するという前提で,多レベルの移動平均値と中長期的トレンドをマッチすることで継続的に利益を得ます.単一の指標と比較して,この戦略は複数のパラメータを組み込み,中長期の強いトレンドシグナルを効果的に識別することができます.さらなる最適化により,この戦略はより多くの種類に適用され,定量取引で重要な役割を果たします.


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
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/
// © Coinrule

//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000,  default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')

MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)


//Entry 
bullish = crossover(MAmid, MAlong)

strategy.entry(id="long", long = true, when = bullish and window())

//Exit
bearish = crossunder(MAshort, MAmid)

strategy.close("long", when = bearish and window())

plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)


もっと