ワトキンス スネークキス 定量戦略


作成日: 2024-02-18 15:36:22 最終変更日: 2024-02-18 15:36:22
コピー: 0 クリック数: 341
1
フォロー
1219
フォロワー

ワトキンス スネークキス 定量戦略

概要

ウォーキンズ蛇キス風雲量化戦略は,主に一雲図指標とランダムな指標RSIを組み合わせて,両指標信号の判断を加重することで,量化取引戦略信号を構築し,証券品種の自動取引を実現する.この戦略は,異なる強度の一雲図指標信号とストックRSI指標信号を考慮し,重点を設定することで,取引決定をより滑らかで安定させる.

戦略原則

この策略は,1つの雲図の変換線,基準線,先行1および先行2などの指標をStochRSIのK線およびD線と組み合わせます. 1つの雲図部分では,変換線が基準線より高く,先行1が先行2より高い場合は,強烈な多信号をします. 変換線が基準線より低く,先行1が先行2より低い場合は,強烈な空白信号をします. さらに,変換線が基準線より高く,または低ければ,多または空白の弱い信号も発生します.

優位分析

この戦略は,一つの雲図図とStochRSIの2つの指標を組み合わせて,トレンドの方向と超買超売を同時に判断することができるため,信号はより包括的で信頼性が高い.特定の指標を単独で使用すると比較して,誤った信号の発生を減らすことができる.一つの雲図指標は,中長期の傾向判断に比較して正確であり,StochRSI指標は,短期間の超買超売現象を測定することができる.両者は,戦略を異なる周期に適応させる.戦略重力を加える設計は,戦略信号をより平坦に安定させる.全体的に言えば,この戦略は,市場のトレンド転換を自動的に判断し,取引信号を生成することができ,操作の簡素性,汎用性,信号の安定性などの利点があります.

リスク分析

この戦略の最大のリスクは,一雲図とStochRSI指標の両方が誤った信号を生じさせ,特に揺れ動いている状況で,不必要な取引数を増加させる可能性があることにある.さらに,重量とパラメータ値の設定は,戦略の効果にも大きな影響を与えるだろう.重量が正しく設定されていない場合,重要な信号が逃れ,または誤った信号が多く発生する可能性がある.RSI長さ,Stoch長さなどの重要なパラメータは,異なる品種と市場環境に対してテストされ,最適化される必要があり,そうでなければ戦略の効果に影響を与える.最後に,データ問題は戦略のリスクとなり,データ品質が良くない場合,指標と信号が偏差する可能性がある.

最適化の方向

また,この戦略には大きな最適化余地がある.第一に,信号判断をより包括的にするために,ブリンライン,KD指標などのより多くの指標を追加することを考えることができる.第二に,機械学習や遺伝的アルゴリズムなどの方法を使用して,戦略をより賢く,適応的にするために,固定パラメータを使用するのではなく,パラメータを自動的に最適化することができます.第三に,誤った信号の発生を減らすために,指標アルゴリズムをどのように改善するか研究することができます.第四に,重量設定機構は,強力な信号の重量を増やすなど,さらに最適化することができます.

要約する

ウォーキンズ蛇キス風雲量化戦略は,雲図とStochRSIの2つの指標を組み合わせて,加重とパラメータの設計によって取引信号を形成し,市場のトレンドの転換を自動的に捕捉することができ,異なる品種と周期に優れた適応性があり,深入な研究と適用に値する量化戦略です.この戦略は,さらに拡大して最適化する可能性があり,より多くの指標と技術手段などの導入により,より良い取引効果が期待されています.

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

//@version=3
strategy("Baracuda Ichimoku/StochRSI Strategy", overlay=true)

DecisionWeight = input(50, minval = 0, title="BUY/SELL decision weight")

ichimokuStrong = input(35, minval = 0, title="Ichimoku strong weight")
ichimokuStandard = input(20, minval = 0, title="Ichimoku standard weight")
ichimokuWeak = input(20, minval = 0, title="Ichimoku weak weight")
stochRSIWweak = input(30, minval = 0, title="Stoch RSI weight")

conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(5, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

lengthRSI = input(8, minval=8) //14
lengthStoch = input(5, minval=5)//14
smoothK = input(3,minval=3) 
smoothD = input(3,minval=3)
OverSold = input(20)
OverBought = input(80)
rsi1 = rsi(close, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)


stronglong = conversionLine > baseLine and leadLine1 > leadLine2
strongshort = conversionLine < baseLine and leadLine1 < leadLine2

weaklong = conversionLine > baseLine
weakshort = conversionLine < baseLine

RSIlong = k > d and k < OverSold and d < OverSold
RSIshort = k < d and k > OverBought and d > OverBought

long=(((stronglong ? 1:0)*ichimokuStrong) + ((weaklong? 1:0)*ichimokuWeak) + ((RSIlong? 1:0)*stochRSIWweak)) > DecisionWeight
short=(((strongshort? 1:0)*ichimokuStrong) + ((weakshort? 1:0)*ichimokuWeak) + ((RSIshort? 1:0)*stochRSIWweak)) > DecisionWeight

strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)