二重移動平均反転戦略


作成日: 2023-09-26 15:27:58 最終変更日: 2023-09-26 15:27:58
コピー: 0 クリック数: 623
1
フォロー
1617
フォロワー

概要

双均線反転戦略は,均線と反転原理を総合的に利用した株式取引戦略である.この戦略は,まず123反転原理を使用して反転取引信号を構築し,次に2/20指数移動平均と組み合わせてフィルタリングを行い,両信号が一致するときにのみ取引指示を生成し,戦略の安定性を高める.この戦略は,短期反転の機会を捕捉することを目的とし,長期の傾向フィルターを活用して高確率の取引機会をロックする.

戦略原則

この戦略は2つの部分から構成されています.

  1. 123 逆転戦略

123の逆転戦略は,私が先物市場で3倍のリターンを得る方法という本にある逆転戦略体系に由来する.この戦略は,次の原理に基づいている.もし2日間で閉店価格が高から低に変化し,9日間の緩やかなK線が50を下回るならば,現在逆転点にあると考えられ,購入するべきである.もし2日間で閉店価格が低から高に変化し,9日間の急速なK線が50以上であるならば,現在逆転点にあると考えられ,売るべきである.

  1. 2/20指数移動平均戦略

この戦略は,2/20指数移動平均を用いて長期トレンドを判断する.価格が2/20平均線より上であれば看板で,価格が2/20平均線より下であれば看板である.この戦略は,偽のブレイクをフィルターするために使用できる.

この2つの戦略を組み合わせると,123反転信号と2/20均線信号が一致するときに,真の取引信号が生成されます.

戦略的優位分析

この戦略は,短期的な反転と長期的トレンドを組み合わせて,以下の利点があります.

  1. 短期的なリターンを捉えることで,より高い利益を得ることができます.

123の反転戦略は,短期的な超買い超売り現象を捉えることができ,これらのターニングポイントは,より大きな価格調整をもたらし,それによりより高い利益の余地を得ることができます.

  1. 220 均線フィルタは偽突破のリスクを回避する

単なる反転戦略は,トレンド市場の衝撃を受けやすく,大量の偽信号を生成する.2/20均線を追加すると,トレンドと合わない信号をフィルターして,上位と下位のリスクを回避し,信号の質を向上させることができる.

  1. この2つの条件を組み合わせると,利害率のリスクが低下します.

単一の指標のみを頼りにすれば,大量の誤信号が生じやすいが,二つの互補的な指標を組み合わせれば,信号の信頼性を大幅に高め,損失率の損失を減らすことができる.

  1. 戦略は明確で理解し,最適化できます.

戦略の各部分の機能が明確で,考え方が明確で,その形成の理由が分かりやすく,また現実状況に応じて調整・最適化が容易で,より広範な市場環境に適応する.

戦略的リスク分析

この戦略には明らかな利点があるものの,注意すべきリスクもあります.

  1. 逆転は必ずしも起こらない

過去のパフォーマンスは将来のパフォーマンスを表さないため,反転シグナルが発生した後に,価格の反発の幅と強度の両方が不確実であり,損失を引き起こす可能性があります.

  1. この傾向が続く可能性もあります.

2/20平均線は,トレンドの動きを完全にフィルターすることはできません.トレンドが非常に強くなると,短期的な調整は依然として主トレンドに飲み込まれ,損失を生じることがあります.

  1. パラメータ設定を最適化

異なるパラメータ設定は,戦略のパフォーマンスに重大な影響を及ぼし,大量の反射とシミュレーションによって最適なパラメータを特定する必要があります.パラメータの最適な範囲は,市場環境によって変化することもできます.

  1. 長期的な効果は不明です

短期間の歴史上での良好な業績は,長期にわたって安定した利益を得ることを意味するものでもありません. 市場のランダム性が強く,戦略の長期的な効果は,異なる市場環境で検証する必要があります.

合理的なパラメータの調整,ストップ・ロスの設定,リスク管理などの方法によってこれらのリスクを制御することができます.さらに,戦略の安定性を高めるために,取引量,波動率などの指標を追加することを考えることができます.また,機械学習などの方法が導入されても,動的最適化が可能になります.

戦略最適化の方向性

この戦略は,以下の点でさらに最適化できます.

  1. 逆転パラメータの最適化

異なるパラメータの組み合わせをテストして,より安定した,より顕著な反転現象を探して,反転信号の質を向上させることができる.

  1. 均線システムの最適化

異なるパラメータの均線組合せをテストしたり,複数の均線判断を加えたりして,傾向判断をより正確で包括的にすることができる.

  1. フィルター条件を追加する

取引量,波動率などの指標に基づいて,より多くのフィルタリング条件を設定し,誤判率を下げ,安定性を向上させることができる.

  1. パラメータの動的最適化

膨大な歴史的データを収集し,機械学習の方法に基づくパラメータ動的最適化を実現し,戦略をより粗略化することができる.

  1. ストップ・ロスの戦略と組み合わせた

適切に実行されたストップ・ロスは,戦略の最大撤退とリスクの口を効果的に制御する.

  1. 資金管理の最適化

ポジション管理と資金配分を最適化することで,戦略の全期パフォーマンスを向上させることができます.

要約する

双均線逆転戦略は,簡単な実用的な短期取引戦略である.それは,逆転取引とトレンド判断の2つの考え方を組み合わせて,短期価格逆転の機会を捉え,また,破綻した偽信号の誤解を避けることができる.この戦略戦略は,明確で,理解しやすく,最適化され,実用的な応用価値があります.しかし,リスクのない戦略は存在しないことを認識し,継続的な最適化とリスク管理によって戦略をより安定して信頼性のあるものにする必要があります.

ストラテジーソースコード
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


EMA220(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos :=  iff(close > xXA and close > nXS , 1,
    	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA220 == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )