ダブルストキャスティクスボトムリバーサル戦略


作成日: 2023-10-26 17:00:27 最終変更日: 2023-10-26 17:00:27
コピー: 0 クリック数: 666
1
フォロー
1617
フォロワー

ダブルストキャスティクスボトムリバーサル戦略

概要

この戦略は123の底反転とストキャスティック指標を組み合わせて,株価の底反転が発生すると同時に,ストキャスティック指標も底反転が発生するときに,買入シグナルを生成します. この戦略は,株価の底反転を効果的に識別することができ,ダブル指標フィルタリングは取引頻度を低下させ,信号の正確性を向上させることができます.

戦略原則

  1. 123 底辺の逆転策

    • 閉店価格が前2日の閉店価格より高く,そして9日目ストキャスティック指標の快線が遅い線より低く,快線が50より低い場合は,買取シグナルが生じます.

    • 閉店価格が前2日の閉店価格より低い場合,そして9日のストキャスティック指標の急速ラインが遅いラインより高く,急速ラインが50以上である場合,売り込みシグナルが生成されます.

  2. ストキャスティック指数策略

    • ストキャスティック速線で線路に突入した場合 (デフォルト 20),買取シグナルを生成する

    • ストキャスティック速行下線が下線を突破した場合 (デフォルトは80),出荷シグナルを生成する

  3. ダブルシグナルフィルター

123反転策とストキャスティック策が同時に買入シグナルを生成する時のみ,最終的な買入シグナルが生成され,売出シグナルと同等となる.これは,誤ったシグナルを効果的にフィルターして,信号の質を向上させる.

戦略的優位性

  1. 双指数確認により,大量のノイズをフィルターし,信号の精度が向上します.

  2. 123反転策は,価格反転の底と頂を捕捉することができます. ストキャスティック指標の確認は,偽の突破を避けるのに役立ちます.

  3. ストカスティック指標は,超買い超売り領域を効果的に識別し,123反転戦略と完璧に連携します.

  4. パラメータを最適化できるスペースがあり,パラメータを調整することで,よりよい戦略効果を得ることができます.

  5. 戦略の論理はシンプルでわかりやすく,理解しやすい実装で,量子取引の初心者向けに適しています.

戦略リスク

  1. 双重フィルタリング信号は,取引頻度を低下させ,いくつかの機会を逃している可能性があります.

  2. ストキャスティック指標は偽信号を発生しやすいので,指標の実際の動きを慎重に判断する必要があります.

  3. パラメータの最適化が必要で,パラメータの設定が不適切であれば,戦略の効果にも影響する.

  4. 明らかに反転する市場のみに適用し,継続的に上昇または下落する市場には適用されません.

  5. 政策信号を厳密に遵守し,自主判断による偏差を避ける必要があります.

リスク解決:パラメータ設定を最適化し,戦略信号を厳格に遵守し,戦略が適用される市場環境を適時調整する.

戦略最適化の方向性

  1. ストカスティック指標のパラメータを最適化して,指標の安定性を高める.

  2. 損失の一定比率に達したときに,損失を止めて退出する.

  3. 交差量確認などのフィルタリング条件を追加することで,信号の質をさらに向上させることができます.

  4. 異なる反転戦略とストキャスティック指標の組み合わせの効果をテストする.

  5. 機械学習アルゴリズムを追加し,ヒストリックデータを使用してパラメータをトレーニングし,最適化します.

  6. 戦略を異なる市場に適用し,市場間の安定性をテストする.

  7. 他の技術指標とストキャスティック指標の組み合わせを探し,より良い配合方法を探す.

要約する

この戦略は,二重ストカスティック指標と123反転形態を組み合わせて,底部反転の機会を効果的に捕捉します.単一の指標と比較して,複数の指標の組み合わせは,信号の質と勝利率を大幅に向上させることができます.ある程度の改善の余地があるものの,全体的にこの戦略の論理は,シンプルで,簡単に掌握でき,初心者の実況演習に適しています.繰り返しテストと最適化することで,戦略のパラメータをより安定させ,より持続的な正の利益を得ることができます.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/07/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 back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses up UpBand line.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses down DownBand line.
//
// 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


Stochastic(Length,DLength,UpBand,DownBand) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast > UpBand, 1,
	         iff(vFast < DownBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic", 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, "---- Stochastic ----")
LengthS = input(7, minval=1)
DLengthS = input(3, minval=1)
UpBand = input(20, minval=1)
DownBand = input(80, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStochastic = Stochastic(LengthS,DLengthS,UpBand,DownBand)
pos = iff(posReversal123 == 1 and posStochastic == 1 , 1,
	   iff(posReversal123 == -1 and posStochastic == -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 )