ストカスティック指数に基づく短期取引戦略

作者: リン・ハーンチャオチャン開催日:2024年1月18日 16:14:34
タグ:

img

概要

この戦略は,ストカスティックインデックス (SMI) 指標に基づく短期取引戦略を設計し,主に株式とデジタル通貨の短期取引を目的としています.この戦略は,ストカスティックインデックス指標の過剰購入および過剰販売信号と,トレンド市場における中間引き下げ中により良いエントリーポイントを把握するために移動平均値の確認を統合しています.

戦略原則

この戦略は,主にストカスティックインデックス指標を使用して,市場の過剰購入および過剰販売ゾーンを判断します.ストカスティックインデックス指標の計算式は:

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

LL は N 日間の最低価格,HH は N 日間の最高価格である.この指標の設計概念は,閉店価格が N 日間の最高価格に近いとき,市場は過買い状態にあり,閉店価格が N 日間の最低価格に近いとき,市場は過売り状態にある.

この戦略では,SMAパラメータNは5と3を取っており,5日および3日ストカスティックインデックスが使用されていることを示しています.通常,1パラメータのみを使用すると簡単に間違った信号が生成できます.したがって,この戦略はダブルSMAダブル確認を採用し,ノイズをフィルタリングすることができます.

さらに,EMA指標は戦略に重ねられ,SMI指標の信号をさらに確認し,誤った判断を避けるため,SMI指標と一致するようにパラメータが設定されています.

戦略 の 利点

  1. 逆転の機会を把握するためにストカスティックインデックス指標に基づいて過買い過売り領域を判断する
  2. 2つのSMAパラメータ設定は誤った信号を効果的にフィルタリングすることができます.
  3. 誤った判断を避けるため,EMA指標と結合して確認する

戦略 の リスク

  1. SMI インディケーターは誤った信号を生成する傾向があります.Duble 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)


もっと