ストキャスティクス指数指標に基づく短期取引戦略


作成日: 2024-01-18 16:14:34 最終変更日: 2024-01-18 16:14:34
コピー: 0 クリック数: 632
1
フォロー
1617
フォロワー

ストキャスティクス指数指標に基づく短期取引戦略

概要

この戦略は,ストキャスティック・インデックス ((SMI) 指数に基づくショートライン取引戦略を設計し,主に株式と仮想通貨のショートライン取引に使用しています. この戦略は,ストキャスティック・インデックス指数による超買い超売りシグナルと移動平均の確認を融合し,トレンド市場の中で中間回調を捕捉し,より良い入場点を提供します.

戦略原則

この戦略は,主にストキャスティック・インデックス指標を使用して,市場の超買い超売り領域を判断する.ストキャスティック・インデックス指標の計算式は次のとおりである.

SMI = (MA(Close - LL)/(HH - LL)) * 100

その中で,LLはN日間の最低価格,HHはN日間の最高価格である.この指標の設計理念は,閉盘価格がN日間の最高価格に近づくと,市場は超買い状態にあること.閉盘価格がN日間の最低価格に近づくと,市場は超売り状態にあることである.

この策略では,SMA指標のパラメータNを5と3で取り,5と3日のストキャスティックインデックスを表示する.通常,1つのパラメータだけを使用すると,誤信号が生じやすいので,この策略は双SMA二重確認を採用し,いくつかのノイズをフィルターすることができます.

さらに,戦略には,SMI指標の信号をさらに確認し,誤判を避けるために,SMI指標と一致するように設定された移動平均EMA指標が重ねられています.

戦略的優位性

  1. ストキャスティック・インデックスを用いて,超買いと超売りの領域を判断し,反転の機会を捉える
  2. ダブルSMAパラメータを設定し,誤信号を効果的にフィルターします.
  3. EMAの指標と組み合わせて確認し,誤判を避ける

戦略リスク

  1. SMI指標は誤信号を発生しやすいため,SMAとEMAの両方の指標を設定しても,リスクを完全に回避することはできません.
  2. この戦略は,トレンドの状況では,過剰な逆操作を発生させ,全体的な利益に影響を与える可能性があります.

リスク回避:

  1. ストップを導入して単一損失を制御する
  2. この戦略は,サイドウェイまたは範囲取引の市場でのみ使用し,トレンドの状況での使用を避ける

戦略最適化の方向性

  1. 異なるパラメータ設定のSMI指標をテストし,最適なパラメータ組み合わせを探します.
  2. ブリン帯,KDJなどの他の指標と組み合わせて確認を試み,信号の正確性を向上させる
  3. 市場波動の設定に応じて変動するストップを最適化するストップ戦略
  4. トレンド判断指標と組み合わせて,トレンドの状況で使用することを避ける

要約する

この戦略は,全体として,ショートライン取引に適した戦略である. これは,ストキャスティック・インデックス指標の超買い超売り特性を組み合わせ,移動平均とシグナルフィルタリングと確認を行うことで,ショートライン取引の機会を識別することができます. しかし,この戦略は,トレンドの状況で誤った信号を生じやすいので,使用する際には特別な注意が必要です.

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

//@version=2
strategy(title="SMIndex Strategy", shorttitle="SMIndex Strategy", overlay=false, pyramiding=0, initial_capital=1000, currency=currency.USD)
//
sm1 = input(5, 'sm1')
sm2 = input(3, 'sm2')
//
Lower = lowest (low, sm1)
Hight = highest (high, sm1)
Downsideup = Hight - Lower
Upsidedown = close - (Hight+Lower)/2
//
ema1 = ema(ema(Upsidedown,sm2),sm2)
ema2 = ema(ema(Downsideup,sm2),sm2)
smi = ema2 != 0 ? (ema1/(ema2/2)*100) : 0
//
obLevel1 = input(55, "Over Bought Level 1")
obLevel2 = input(35, "Over Bought Level 2")
osLevel1 = input(-55, "Over Sold Level 1")
osLevel2 = input(-35, "Over Sold Level 2")
//
// h1=plot(obLevel1, color=red, title='Sell 1s 55 do', style=dashed, linewidth=2)
// h2=plot(obLevel2, color=maroon, title='Sell 2s 35 do', style=circles, linewidth=2)
// h3=plot(osLevel1, color=red, title='Buy 1s -55 up', style=dashed, linewidth=2)
// h4=plot(osLevel2, color=maroon, title='Buy 2s -35 up', style=circles, linewidth=2)
plot(smi, color=gray, style=line, linewidth=0, transp=5)
plot(ema1, color=orange, style=line, linewidth=0, transp=5)
plot(0, color=gray, style=circles, linewidth=1, title='Base Line')
//
// fill(h1, h2, color=red, transp=55)
// fill(h3, h4, color=green, transp=55)
//Strategy Long Short Entry
longEntry = (smi) < -75 or (smi) < -65 or (smi) < -55 or (smi) < -45 
shortEntry = (smi) > 75 or (smi) > 65 or (smi) > 55 or (smi) > 45 

longCondition = longEntry
if(longCondition)
    strategy.entry("long", strategy.long)
    
shortCondition = shortEntry
if(shortCondition)
    strategy.entry("short", strategy.short)