ダブル移動平均反転とトリプルボトムフラッシュの組み合わせ取引戦略


作成日: 2023-10-26 16:26:24 最終変更日: 2023-10-26 16:26:24
コピー: 1 クリック数: 634
1
フォロー
1617
フォロワー

ダブル移動平均反転とトリプルボトムフラッシュの組み合わせ取引戦略

概要

この取引戦略は,均線反転と3日間の最低閃光の2つの技術指標の優位性を十分に活用し,組み合わせて使用し,トレンドを追跡しながら,反転の機会をタイムリーに捕捉し,いくつかの偽の突破信号をフィルタリングし,取引システムの勝率を効果的に向上させることができます.

戦略原則

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

  1. 2日平均線と20日平均線の組み合わせ. 2日平均線と20日平均線が離れているとき,買入シグナルが発生する.

  2. 三日間の最低のフラッシュ・フォーム.このフォームの出現は短期的な逆転の信号である.形成される条件は,中間日の最低は,前日と次日よりも低いものとし,次日の閉盘価格は前日の最高価格より高いものである.

2日平均線と20日平均線が同時に反転信号を表示し,三日最低のフラッシュ形状の信号方向と一致するときに,買取または販売操作を行います.

コードでは,まず2日平均線と20日平均線を計算する。2日平均線の上または下を通過すると,買入/売却信号が生成する。

そして,三日間の最低の閃光形状を検出すると,形状方向信号を1または-1に設定する. 前の日の形状信号を読み,現在の均線信号と組み合わせて,最終的な入場信号を生成する.

この方法で,均線と形状の組み合わせをフィルターすることで,偽信号をフィルターして,取引戦略をより信頼できます.

戦略的優位性

  1. 複数の技術指標を組み合わせて,相互補完と検証の役割を果たし,信号の信頼性を向上させる.

  2. 平均線反転は,トレンドの反転点をタイムリーに捉え,反転の機会を利用できます. 三日間の最低のフラッシュは,反転の形成をさらに確認できます.

  3. 20日平均線は中長期のトレンドを追跡し,2日平均線は短期調整後の入場時刻を捕捉するために使用される.多時間帯の組み合わせにより,トレンドを全面的に把握することができる.

  4. この戦略はパラメータに敏感で,簡単に実行・最適化できます.

戦略リスク

  1. 逆転形は誤判に容易であり,信頼性を判断するために経験の蓄積が必要です.

  2. 逆転信号が遅滞する可能性があるため,形状特性を観察し,適正にポジションを調整する必要があります.

  3. 取引品種はテスト最適化が必要で,一部の品種パラメータの設定は調整が必要になる可能性があります.

  4. 撤回制御は,重要な転換点を逃さないために,ストップダメージの導入を必要とします.

戦略の最適化

  1. 異なる均線組合せをテストし,品種作用に最適な均線パラメータを選択する.

  2. 交代量,ブリン帯などの他の補助指標を導入し,多指標検証を行う.

  3. 引き下げとリスクを制御するために,ストップ・ローモジュールが追加されました.

  4. 入学時間を最適化して,早すぎるか遅すぎる問題を回避する.

  5. 特定の品種に対してパラメータを最適化し,適応性を向上させる.

要約する

この戦略は,均線逆転と短期形状の優位性を最大限に活用し,両者の有効な組み合わせを実現し,取引システムの安定性と勝率を高めることができる.しかし,リスク管理に注意し,パラメータをテストし,異なる品種の特性に合わせて最適化する必要があります.全体的に,この戦略の構造は,シンプルで明確で,実行しやすい.これは,強力な実用的なトレンド逆転取引戦略です.

ストラテジーソースコード
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal. 
//
// First 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.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(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(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
	pos

BarR()=>
    pos = 0.0
    pos :=	iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
    	     iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1  = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2  = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc  = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader  = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)

StartTrade = true
prePos3Bar = BarR()

posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
	   iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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 )