複数の指標を持つ振動位置定位突破戦略

作者: リン・ハーンチャオチャン, 日付: 2023-12-01 17:49:34
タグ:

img

概要

この戦略は,STOCH.RSI,RSI,ダブル戦略,CMウィリアムズ指標,マネーフローインデックス (MFI) を含む複数の指標を組み合わせ,市場の変動を正確に特定し,ロング/ショートする機会を探します.株価がサポートまたはレジスタンスレベルに近づくときに取引信号を生成することができます.複数の指標とクロスバリダーションの利点を統合することにより,この戦略は誤った信号を効果的に削減し信頼性を向上させることができます.

戦略の論理

  1. STOCH.RSIはストカスティック・オシレーターと相対強度指数 (RSI) の強みを組み合わせ,逆転の機会を検知するために過剰購入/過剰売却レベルを表示します.

  2. RSIは過剰購入/過剰売却を補足的な確認として評価しています

  3. デュアル戦略は,ストックとRSIのクロスオーバーを決定し,取引信号を生成します.

  4. CM ウィリアムズ インディケーターは百分位帯を計算します.帯を反転させると市場の逆転を表し,変動と逆転の判断を助けます.

  5. マネーフローインデックス (MFI) は,資金の流れを評価し,品質を改善するためにStock.RSIとRSIと共にシグナルを検証します.

概要すると,Stock.RSI,RSI,Dual Strategy,CM Williams,MFIを組み合わせることで,この戦略は過剰購入/過剰売却レベルを効果的に決定し,逆転点を特定し,品質信号を生成することができます.複数の指標によるクロスバリディテーションは信頼性を向上させ,誤った信号を減らすことができます.

利点分析

この戦略の主な利点は以下の通りである.

  1. 複数の指標を組み合わせることで 検証によって信号の質が向上し 誤った信号が減少します

  2. STOCH.RSI,RSIおよびMFIは,過剰購入/過剰売却のゾーンと市場の転換点を効果的に特定します.

  3. CM ウィリアムズは 市場の変動や逆転を判断するのに 百分位帯を計算します

  4. ダブルストラテジーは 簡単に追跡できる 簡単な取引信号を生成します

  5. 幅広い最適化可能なパラメータを搭載し 異なる市場に対応できる高度にカスタマイズ可能

リスク分析

注意すべきリスクは:

  1. 複雑なマルチインジケーター計算には高コンピューティングパワーが必要で,高周波取引には適さない.

  2. パラメータの調節が不適切なら信号の質が悪化する.パラメータは個人のスタイルに合うべきです.

  3. 逆転の兆候が遅れるかもしれない.より多くの指標は,傾向判断を助けるかもしれない.

  4. 高い取引頻度は,資本の利用が不十分になる可能性があります.

解決策:

  1. 強力なターミナルを使って パラメータを最適化します

  2. バックテストを徹底して 理想的なパーソナルパラメータを見つけます

  3. 傾向を事前に判断するために さらに多くの指標を追加します

  4. ストップ・ロスのようなリスク管理メカニズムを最適化して トレード毎の損失を制限します

オプティマイゼーションの方向性

この戦略は,次の側面で改善できます.

  1. 最適な組み合わせを見つけるために指標パラメータを最適化します

  2. 株の選択を良くするために 売り上げや利益因数などの指標を追加します

  3. サポート/レジスタンスレベルを予測するために,より多くのトレンドライン,ボリンジャー帯などを組み込む.

  4. ストップ・ロストや 市場への入場フィルターを追加して リスクを制御します

  5. パラメータは,異なる製品と時間枠によって特徴によって異なります.

結論

この戦略は,STOCH.RSI,RSI,デュアル戦略,CMウィリアムズおよびMFIを含む複数の指標を正確に組み合わせることで市場の逆転を特定する.クロス検証は信号品質を改善し,偽信号を減らす.パラメータ最適化や追加のフィルターなどのさらなる強化により,安定した実用的な取引システムになります.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


     //////////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+MFI  ////////
   //////////////////////////////////////////////////////////////////////////


//  This is a simple combination of integrated and published scripts, useful 
//  if you don't have a PRO account and want to bypass the 3 indicators limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index (RSI)
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Monetary Flow Index (MFI)
//  For more details about 3) and 4) check the original scripts.


//@version=3
// @author GianlucaBezziccheri

strategy(title="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+MFI", shorttitle="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+MFI")


///STOCH.RSI///
smoothK = input(3, minval=1, title="Stochastic %K Smoothing")
smoothD = input(3, minval=1, title="Stochastic %K Moving Average")
lengthRSI = input(14, minval=1, title="RSI Lenght")
lengthStoch = input(14, minval=1, title="Stochastic Lenght")
RSIprice = close
rsi1 = rsi(RSIprice, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
plot(k, color=blue, linewidth=2)
plot(d, color=silver, linewidth=2)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=78)


///RSI///
up = rma(max(change(RSIprice), 0), lengthRSI)
down = rma(-min(change(RSIprice), 0), lengthRSI)
rsi2 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi2, color=fuchsia, linewidth=2)
band0 = hline(70)
band1 = hline(30)
fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic RSI overbought")
StochOverSold = input(20, title="Stochastic RSI oversold")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought")
RSIOverSold = input( 30  , title="RSI oversold")
vrsi = rsi(RSIprice, lengthRSI)
if (not na(ks) and not na(ds))
    if (crossover(ks,ds) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="LONG")
if (crossunder(ks,ds) and ks > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="SHORT")
 
 
///CM WILLIAMS VIX FIX///
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bollinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range (Based on Percentile and LookBack Period)?")
sd = input(false, title="Show Standard Deviation Line?")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=columns, linewidth = 4, color=col, transp=85)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)


///MONETARY FLOW INDEX
length4 = input(title="MFI Length", defval=14, minval=1, maxval=2000)
src4 = hlc3
upper4 = sum(volume * (change(src4) <= 0 ? 0 : src4), length4)
lower4 = sum(volume * (change(src4) >= 0 ? 0 : src4), length4)
mf4 = rsi(upper4, lower4)
plot(mf4, color=yellow, style=line, linewidth=2, title="Monetary Flow Index")
overbought=hline(70, title="MFI Overbought", color=yellow)
oversold=hline(30, title="MFI Oversold", color=yellow)
fill(overbought, oversold, color=#9915ff, transp=100)

もっと