RSIとZigZag指数に基づくトレンド追跡戦略

作者: リン・ハーンチャオチャン, 開催日:2024年2月22日 16:15:18
タグ:

基于RSI指标和ZigZag指标趋势追踪策略

概要

この戦略は,RSIとZigZagをベースにした仮想通貨の15分トレンドトラッキング戦略と呼ばれる.この戦略は,15分間の時間周期 (ETHUSD/T,BTCUSD/Tなど) の仮想通貨市場を対象に設計されている.この戦略は,RSIを組み合わせて超買超売りとZigZagを組み合わせて価格の動きを判断することで,トレンドトラッキング戦略の一種である.

戦略の原理

この戦略の核心論理は,RSIとZigZagを同時に使って価格の傾向を判断することである.具体的には,RSIは価格がオーバーバイトかオーバーセールか判断し,ZigZagは価格が指定した割合で大きく跳ね上がったかどうかを判断する.両者が同時に取引信号を発信するときに,トレンドが転向していると判断し,逆転操作を行うことができる.

RSIについては,超買線を75と超売線を25に設定します. RSI線が下から上へと25を横切ると,市場は超売から看板に変化すると考えます.

ZigZag指標については,価格跳び幅の限界値を1%に設定します.価格が1%以上大きく跳ね上がると,ZigZag指標線が信号を発します.

双方の指標がシグナルを出しているとき,前向きが上向きで,RSIが超買いで,ZigZagが空洞を表示している場合,我々は市場が上向きであると判断し,空洞を考慮することができる.逆に,前向きが下向きで,RSIが超売りで,ZigZagが空洞を表示している場合,我々は市場が下向きであると判断し,現在多くなることを考慮することができる.

戦略的優位性

この戦略の最大の利点は,双指標判断を組み合わせることで,偽信号を効果的にフィルタリングし,信号品質を向上させることです.単一の指標のみを頼りに偽信号を容易に生成することが容易であり,この戦略は,RSI指標とジグザグ指標の検証によって,効果のない信号をフィルタリングして,取引の勝利率を向上させることができます.

また,パラメータ設定の柔軟性も利点です.この戦略のRSIパラメータとZigZagパラメータは,それぞれカスタマイズ可能で,我々は異なる市場の特徴に応じてパラメータを調整して最適な効果を得ることができます.これは戦略に大きな柔軟性を与えます.

戦略的リスク

この戦略の主なリスクは,指標が誤った信号を発する可能性である.両指標の組み合わせ検証を使用したにもかかわらず,市場の急激な変動時に指標が失敗して取引失敗を引き起こす可能性があります.また,パラメータの設定が正しくない場合も,戦略効果に影響します.

リスクを減らすために,ポジション保持時間を適切に短縮し,時宜のストップをすることが可能です. 同時に,パラメータ設定を最適化することが非常に重要であり,市場の特徴を十分に考慮する必要があります. 不規則な市場に直面したときに,手動の介入で取引を停止することも必要です.

戦略の最適化方向

この戦略は,以下の点から最適化できます.

  1. 指標の組み合わせを増やし,KDJやMACDなどの複数の指標を統合判断に導入することで,シグナルをさらにフィルタリングすることができます.

  2. 機械学習アルゴリズムを導入し,AI技術でパラメータ設定を自動的に最適化し,市場の変化に対応する.

  3. 適応的なストップダースメカニズムが追加され,市場の波動幅に応じてストップダースを動的に調整することができます.

  4. 代替策を設定し,異常な市場では自動的に切り替える.

概要

この戦略は全体として典型的なトレンド追跡戦略であり,その核心の考え方は,RPSI指標とZigZag指標を組み合わせて価格のトレンド転換点を判断することである.この戦略の利点は,両指標がフィルターによる誤導信号を組み合わせることで,取引効率を向上させることである.指標の不具合リスクを十分に考慮し,パラメータ最適化,損益最適化,ポジション最適化などの手段によって継続的に戦略をさらに完善する必要がある.全体として,この戦略は仮想通貨市場にとって効果的なトレンド追跡ソリューションを提供します.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("Crypto ZigZag RSI strategy 15min",overlay=true)
length =input(5, title="RSI Length")
overSold = input(25)
overBought= input(75)

p =close

vrsi = rsi(p, length)
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

//
ZZPercent = input(1, title="Minimum % Change", type=input.float)
r1Level=entry_value
s1Level=entry_value1
trend = 0
trend := na(trend[1]) ? 1 : trend[1]
LL = 0.0
LL := na(LL[1]) ? s1Level : LL[1]
HH = 0.0
HH := na(HH[1]) ?r1Level : HH[1]

Pi = ZZPercent * 0.01
zigzag = float(na)

if trend > 0  
    if r1Level >= HH  
        HH := r1Level
        HH
    else
        if s1Level < HH * (1 - Pi)
            zigzag :=r1Level[1]
            trend := -1
            LL := s1Level
            LL
else
   
    if s1Level <= LL 
        LL := s1Level
        LL
    else
        if r1Level > LL * (1 + Pi)
            zigzag := s1Level[1]
            trend := 1
            HH := s1Level
            HH


shortc=crossunder(trend,0)
longc=crossover(trend,0)


longa =input(true)
shorta=input(false)

if(longa)
    strategy.entry("long",1,when=longc)
    strategy.close("long",when=shortc)
if(shorta)
    strategy.entry("short",0,when=shortc)
    strategy.close("long",when=longc)


もっと見る