複数の指標と定量的取引戦略を組み合わせた


作成日: 2024-01-24 15:10:41 最終変更日: 2024-01-24 15:10:41
コピー: 0 クリック数: 596
1
フォロー
1617
フォロワー

複数の指標と定量的取引戦略を組み合わせた

概要

この戦略は,RSI,StochRSI,Brin Beltの3つの株式価格技術指標を使用し,取引の時間と方向条件を組み合わせて,買入と売却のシグナルを判断するための量的な取引戦略を実現します.

戦略原則

RSIが低位区域より小さいとき,StochRSIがK線をD線に横切るときは,買取信号とみなされる.また,株価がブリン帯の下線より安価であるとき,またはブリン帯下線を横切るときは,買取の根拠としても用いられる.

RSI指標が高値域を超え,StochRSI指標K線がD線を下回ったとき,販売信号とみなされる.また,株価がブリン帯線上線より高く,またはブリン帯線上線を越えて下がったときも販売の根拠として使用される.

RSI指標によって株価が超買い超売りかどうかを判断し,StochRSIによって株価動能が判断され,ブリン帯によって株価が高水準の運行と安価かどうかを判断し,多指標の組み合わせによって株価が買い物かどうかを判断する.

優位分析

これは多指標の組み合わせの戦略であり,指標のカバー面は広大で,判断の根拠は全面である.判断信号の前に現在の株価または指標とその値が交差し,偽信号に対するフィルターがある必要がある.

注文前に時間制限を加えることで,特定の時間帯でより大きなリスクを回避できます.

複数の指標を集約して判断することで,より多くの種類の動きにマッチし,戦略の効率性を向上させることができます.

リスク分析

この戦略は主に3つの指標に依存し,指標が誤った信号を発した場合は,戦略が損失を招く.指標は互いに検証し,特定の指標に完全に依存することはできません.例えば,特定の時間帯のRSIの振動は,偽の信号を発する可能性を高めます.

戦略の加入時の判断条件は,有利な市場状況を見逃す可能性もあります.

例えば,誇張効果が重度の株の場合,指標の有効性は大きく割引され,これらの指標に対する株の適用性を研究すべきである.

最適化の方向

  1. 損失を制限するために,最大撤退などの風力制御手段を増やす.

  2. 指数のパラメータを調整し,選択した株式とよりよくマッチする.例えば,価格のより速い変化を検出するためにRSIパラメータを加速する.

  3. フィルタリングメカニズムの追加,例えば,ブリン帯の中央で株価が一時的に取引され,震動を回避する.また,オープンとクローズの近くで注文を阻止し,空飛ぶリスクを回避する.

  4. 株を選ぶ際は,会社の基本面を参考にして,財務偽造が深刻な株を選びましょう.また,業界と市場価値の判断を高め,大売り株を選びましょう.

要約する

これは典型的な多変数技術指標戦略であり,指標の組み合わせは均衡的で,カバー面は広い.同時にお客様条件は厳格で,効率的に株を選んで利益を得ることができ,撤回も一定範囲で制御されます.指標とパラメータを最適化することで,市場により良く適応でき,同時にリスク回避の最大限のリスク回避を増加させ,戦略の安定した信頼性をさらに向上させることができます.

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

//@version= 2
strategy("RSI+STOCHRSI+BB Strategy", overlay=true)
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
price = close
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

bblength = input(50)
bbupmult =input(1.5,title="Multiplier for BB Upper Band")
bblowmult = input(1.5,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(k,d)) and ( crossover(vrsi,overSold) or vrsi<overSold)  and (  (price<lower) or crossover(price,lower) ) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and  ( (price>upper) or crossunder(price,upper) )) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")