ラファエル・ジオニ 戦略をフォローするモメンタム・トレンド

作者: リン・ハーンチャオチャン,日付: 2023年12月13日 14:59:34
タグ:

img

概要

この戦略は,ラファエル・ジオニによって作成されたSuperB指標に基づいています.それはモメント指標を通じてトレンドを特定し,トレンドフォロー戦略に属する上下トレンドを自動的に追跡します.

戦略の論理

この戦略は,価格動向を特定するためにラファエル・ジオニによって作成されたスーパーB指標を使用している.スーパーB指標は,価格変動範囲,取引量,開閉価格との間の価格差をベースにして,スプレッドボールの指標を計算する.スプレッドボールの指標は価格の勢力の特徴を反映している.この戦略は,スプレッドボールの指標の移動平均値と標準偏差を使用して,値を決定する.スプレッドボールは上部レールの上,上昇傾向である.下部レールの下,下落傾向である.

この戦略は,高値と低値を追跡することによって,リアルタイムでトレンド逆転を判断する.上昇傾向では,新たな高値が継続的に作られ,持続的な上昇を示唆する.価格が一定パーセントで最高価格を下回ると,下落傾向に転換する.判断方法は下落傾向に類似する.これはトレンド逆転点のタイミング的な判断を可能にします.

利点

この戦略は動力指標を組み合わせてトレンド方向を決定し,リアルタイムで最高値と最低値を追跡し,新しいトレンド方向を迅速に特定し,上下トレンドを自動的に追跡し,購入ポイントを逃すリスクや過剰購入ポイントを回避します.

RafaelZioniのSuperB指標は,価格変動の強さとスピードを反映し,実際のトレンドを正確に決定し,偽のブレイクを効果的にフィルタリングすることができます.判断ルールは単純で明確で,理解し検証が簡単です.

取引コストや頻繁な取引による損失を減らすためだけロングポジションを行います

リスク

この戦略は,ブレイク前には統合領域で複数の誤った取引が起こる傾向があります. 統合領域への敏感性を減らすためにパラメータを最適化することができます.

ストップ・ロスはトレンド・ショックの時に引き起こす傾向があります.ストップ・ロスの範囲は,より長い保持期間で適切に緩和することができます.

ロング と ショート の 間 を 切り替える とき,ポジション は 適時 に 切り替わら なけれ ば なり ませ ん.切り替える とき が 適時 で ない なら,それ は より 大きな 損失 に 繋がる こと が あり ます.

最適化 の 提案

SuperB指標のパラメータを最適化し,より良いパラメータ組み合わせを見つけ,指標の安定性を向上させる.

最低価格と最高価格の追跡比率を最適化して,統合領域への敏感性を減らす.

トレンド・ショックの際に停止されないように 保持時間の基準を高めること

概要

この戦略は,ラファエル・ジオニによって開発されたスーパーB指標を使用して価格傾向方向を決定し,高値と低値をリアルタイムで追跡し,上下傾向の自動追跡を実現し,買取ポイントを逃すことや過買いリスクを回避することで,トレンド逆転を判断する.この戦略は,トレンドをたどる特徴を持つモメント戦略に属している.この戦略は,モメント指標を組み合わせて,シンプルで明確なルールで真のトレンドを決定する.最適化提案に従ってさらに改善および最適化され,研究と適用に値する.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-08-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(shorttitle='SuperB', title='SuperB By RafaelZioni', overlay=true)
long_only = input(title="Only Long?", defval=true)

hilow = ((high - low)*100)
openclose = ((close - open)*100)
vol = (volume / hilow)
spreadvol = (openclose * vol)
VPT = spreadvol + cum(spreadvol)
window_len = 28

v_len = 14
price_spread = stdev(high-low, window_len)

vp =  spreadvol + cum(spreadvol)
smooth = sma(vp, v_len)
v_spread = stdev(vp - smooth, window_len)
shadow = (vp - smooth) / v_spread * price_spread

out = shadow > 0 ? high + shadow : low + shadow
//

len = input(10)



vpt=ema(out,len)

// INPUTS //
st_mult   = input(1,   title = ' Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(10, title = ' Period',     minval = 1)

// CALCULATIONS //
up= vpt - (st_mult * atr(st_period))
dn = vpt + (st_mult * atr(st_period))
c5=close
//

factor = input(title="Factor", defval=0.05, minval=0.01, maxval=5, step=0.01, type=input.float)

hb = 0.00 ,hb := nz(hb[1])
hl = 0.000, hl := nz(hl[1])

lb = 0.00 ,lb := nz(lb[1])
l1 = 0.000,l1 := nz(l1[1])

c = 0
c := nz(c[1]) + 1

trend = 0,trend := nz(trend[1]),n = dn,x =up


if barstate.isfirst
    c := 0
    lb := n
    hb := x                      
    l1 := c5  
    hl := c5
    hl
if c == 1
    if x >= hb[1]
        hb := x
        hl := c5
        trend := 1  
        trend
    else
        lb := n
        l1 := c5 
        trend := -1 
        trend

if c > 1

    if trend[1] > 0  
        hl := max(hl[1], c5)
        if x >= hb[1] 
            hb := x
            hb
        else

            
            if n < hb[1] - hb[1] * factor 
                lb := n
                l1 := c5

                trend := -1  
                trend
    else

       
        l1 := min(l1[1], c5 )

        if n <= lb[1] 
            lb := n 
            lb
        else

           
            if x > lb[1] + lb[1] * factor
                hb := x 
                hl := c5

                trend := 1  
                trend



v = trend == 1 ? hb : trend == -1 ? lb : na
plot(v, color=trend == 1 ? color.blue : color.yellow, style=plot.style_circles, linewidth=1, title="trend", transp=0, join=true)

//

long = trend == 1 and trend[1] == -1 
short = trend == -1 and trend[1] == 1 
//
last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

buy = crossover(last_long, last_short)
sell = crossover(last_short, last_long)

/////////////// Positions ////////////// 
if long
    strategy.entry("Buy", long=true)
    if long_only == false
        strategy.close("Sell")

if short
    if long_only == false
        strategy.entry("Sell", long=false)
    strategy.close("Buy")

/////////////// Plotting /////////////// 
plotshape(buy, title="buy", text="Buy", color=color.green, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0)  //plot for buy icon
plotshape(sell, title="sell", text="Sell", color=color.red, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0)


/////////////// Alerts /////////////// 
alertcondition(buy, title='buy', message='Buy')
alertcondition(sell, title='sell', message='Sell')

もっと