ダブルリバーサル戦略に基づく


作成日: 2024-02-26 12:07:32 最終変更日: 2024-02-26 12:07:32
コピー: 0 クリック数: 611
1
フォロー
1617
フォロワー

ダブルリバーサル戦略に基づく

概要

双反転戦略は,123反転と3日反転の形を組み合わせた量化戦略で,取引信号の質を高め,リスクを軽減する.この戦略は,差値指標とk線形指標を組み合わせた取引方法を採用し,両方の指標が同時に信号を発信するときに取引し,その結果,信号の正確性を向上させる.

戦略原則

二重反転戦略は,2つの異なるタイプの取引戦略を組み合わせるもので,第一は123反転戦略で,この戦略は,差値指数を使用し,2日連続で閉盘価格が反転し,ランダムな指数が値下げを誘発すると信号を発する.もう一つは,3日間の反転形状戦略で,この戦略は,3日間のk線を観察し,中間日の最低値で,そして最後の日の閉盘価格が前日の最高値より高いときに信号を発する.この戦略は,2つの戦略が同時に信号を発したときに,買取または販売を行う.

具体的には,123の反転戦略は,9日のランダムな指標を用いて,超買い超売り現象を判断する.価格が2日連続で下落し,ランダムな指標が50を下回ると買入信号;2日連続で上昇し,ランダムな指標が50を超えると売出信号となる.三日間の反転形態戦略は,3日間に価格が高値に先立って低値と高値のパターンが現れるかどうかを検知する.これは短期間の超売りが反転された信号を示す.

二重反転戦略は,両方の戦略が同時に信号を発信することを要求し,ポジションを開きます.これは,偽信号率を大幅に削減し,システムが高確率の機会のみで取引することを可能にします.

優位分析

単一戦略と比較して,二重反転戦略は以下の利点があります.

  1. 信号の質を向上させ 偽信号を減らす
  2. 双重認証で撤回率が低い
  3. 短期・中期における逆転の機会を最大限に活用する
  4. 簡単に理解し 実行できます

リスクと解決

双反転戦略の主なリスクは,一部の機会を逃すことにある.信号に対する要求が厳しいため,いくつかの単一の指標の取引機会が逃されるだろう.パラメータを調整し,指標の1つの条件を緩和し,部分的に取引頻度を増加させることで解決できる.

もう一つのリスクは,特定の極端な状況において,二重指標が同時に失効する確率が高いことである.この状況に対して,ストップ・メカニズムを増やして,ポジションを迅速に平らげ,損失を減らすことができる.または,歴史的経験によって失効が証明された極端な状況の特徴に基づいて取引シグナルをキャンセルし,ポジションを開くのを避ける.

改善の提案

双重反転の戦略は,以下の点で改善できる:

  1. ランダムな指標のパラメータを調整し,過剰買いと過剰販売の判断の精度を向上させる
  2. 異なる取引品種で効果をテストし,最適の対象を探します.
  3. 機械学習モデルの補助判断を増やし,信号の正確性を向上させる
  4. 取引量の変化や日中の変動など,より多くの市場統計特性を組み合わせて,ポジションの最適な開設時間を特定します.

要約する

二重反転戦略は,反転取引の思想とk線形状分析を成功裏に組み合わせている.それは,価格の短期中期回帰の本質の法則を十分に発見し,反転が提供する機会を効果的に捉えている.単純にトレンドを追う方法と比較して,この戦略は,リスクとリターンの間のバランスを保っている.継続的な最適化とイノベーションを通じて,投資価値が継続的に検証されることを確信している.

ストラテジーソースコード
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon 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.
////////////////////////////////////////////////////////////
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

BarReversalPattern() =>
    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 Strategies 123 Reversal and 3-Bar-Reversal-Pattern", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
pos3BarReversalPattern = BarReversalPattern()
pos = iff(posReversal123 == 1 and pos3BarReversalPattern == 1 , 1,
	   iff(posReversal123 == -1 and pos3BarReversalPattern == -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 ? red: possig == 1 ? green : blue )