古典的なデュアルトレンドフォロー戦略


作成日: 2023-11-01 16:54:29 最終変更日: 2023-11-01 16:54:29
コピー: 0 クリック数: 578
1
フォロー
1617
フォロワー

古典的なデュアルトレンドフォロー戦略

概要

この戦略は,クラシックピボットポイントを計算し,RSI指標を使用して現在のトレンドの方向を判断することで,株の二重トレンド追跡を実現し,中短線トレンド取引に適用されます.

戦略の詳細

この戦略は,主に以下のステップによって二重トレンド追跡を実現します.

  1. 中心点 (Pivot),サポート1 (S1),レジスタンス1 (R1),サポート2 (S2),レジスタンス2 (R2) などを含むクラシックピボット点を計算する.

  2. RSI指数を使って株のトレンド方向を判断する.RSI80以上は超買区,20以下は超売区である.

  3. 株の日線レベルのトレンド方向を判断する.閉盘価格が前日のR2より大きい場合は強みとして;閉盘価格が前日のS2より小さい場合は弱みとして.

  4. 日線レベルのトレンド方向とピボットポイントとRSIの組み合わせで,その日の取引戦略を策定する.

    • 日線が強ければ ((閉盤価格>R2),ピボットポイント以下で回调買い点を観察し,またはS1以下で購入する.

    • 日線が弱い場合 ((閉盘価格

  5. ストップポイントを設定します. 強いものは前日のS1で,弱いものは前日のR1で止まります.

この戦略は,ピボットポイントを計算して中長線トレンドの方向を判断し,RSIなどの指標と連携して,短期トレンドと特定のエントリーポイントを決定し,株価の二重トレンドの追跡を実現し,中短線取引に適用されます.

優位分析

この戦略の主な利点は

  1. 長期トレンドと短期トレンドを同時に追跡し,市場の変化に柔軟に対応します.

  2. Pivotポイントは,中長線トレンドを有効に判断できる傾向判断能力を持っています.

  3. RSIなどの指標は,短期的な超買超売を判断し,特定の入場点を決定するのに役立ちます.

  4. 戦略操作のルールは明確でシンプルで,簡単に習得できる.

  5. リスクがコントロールされ,明確なストップポイントが設定されています.

リスク分析

この戦略の主なリスクは

  1. ピボットポイントに誤差があり,中長線トレンドを正確に判断できない.パラメータの調整または他の指標の組み合わせによって改善することができる.

  2. RSIなどの指標は誤信号を発する可能性がある.パラメータを適切に調整するか,他の指標と組み合わせて使用することができます.

  3. 止損点の設定は過度に恣意的であり,止損が突破されるリスクを完全に回避することはできません.適当に一定のバッファーを留めることができます.

  4. 戦略的撤退は大きくなり,心理的な準備と十分な資金の支援が必要です.

  5. 頻繁に取引されるリスクがあります. ポジション開設条件を適切に調整して,頻繁に取引を避けることができます.

最適化の方向

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

  1. RSIのパラメータを調整したり,ピボットポイントの計算方法を最適化したりなど,異なるパラメータの組み合わせを試して,最適なパラメータの組み合わせを探します.

  2. KDJ,MACDなどの他の指標を追加または組み合わせることで,信号がより正確かつ信頼性が高くなります.

  3. 移動ストップ,オフストップなどのストップ戦略を最適化して,ストップが打ち破られるリスクを低減する.

  4. ポジション管理を最適化し,単一のポジションの規模を適切に制御し,単一の損失の影響を軽減する.

  5. ポジション開設条件を最適化して,出入入場を頻繁に避ける.フィルター条件なども設定できる.

  6. 異なる品種の効果をテストし,パラメータを最適化します.

  7. 収益を固定するための自動停止策を追加しました.

要約する

この戦略は,ピボットポイントを計算して中長期トレンドを判断し,RSIなどの指標を活用して短期トレンドと特定のエントリーポイントを判断する.株価の二重トレンドの追跡を実現し,全体的な運行ロジックは明快で合理的で,中短期トレンドの取引効果は優れている.しかし,一定の確率の誤信号リスクがあり,パラメータの組み合わせをさらに最適化し,リスクを下げるためにストップロスを厳格に制御し,潜在的な大きな引き下がりを制御するためにポジションの規模を適切に制限する必要があります.この戦略を継続的に最適化し,改善できれば,安定した投資収益を得ることができます.

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

//@version=2
strategy(title="swing trade", shorttitle="vinay_swing", overlay=true)
pf = input(false,title="Show Filtered Pivots")
sd = input(true, title="Show Daily Pivots?")

//moving average
len = input(50, minval=1, title="Length")
src = input(close, title="Source")
out = ema(src, len)

//RSI INPUT
length = input( 7 )
overSold = input( 20 )
overBought = input( 80 )
price = close
vrsi = rsi(price, length)


// Classic Pivot
pivot = (high + low + close ) / 3.0
// Filter Cr
bull= pivot > (pivot + pivot[1]) / 2 + .0025
bear= pivot < (pivot + pivot[1]) / 2 - .0025
// Classic Pivots
r1 = pf and bear ? pivot + (pivot - low) : pf and bull ? pivot + (high - low) : pivot + (pivot - low)
s1 = pf and bull ? pivot - (high - pivot) : pf and bear ? pivot - (high - low) : pivot - (high - pivot)
r2 = pf ? na : pivot + (high - low)
s2 = pf ? na : pivot - (high - low)
BC = (high + low) / 2.0
TC = (pivot - BC) + pivot

//Pivot Average Calculation
smaP = sma(pivot, 3)

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1])
dtime_pivotAvg = request.security(syminfo.tickerid, 'D', smaP[1])
dtime_r1 = request.security(syminfo.tickerid, 'D', r1[1]) 
dtime_s1 = request.security(syminfo.tickerid, 'D', s1[1]) 
dtime_r2 = request.security(syminfo.tickerid, 'D', r2[1]) 
dtime_s2 = request.security(syminfo.tickerid, 'D', s2[1])
dtime_BC = request.security(syminfo.tickerid, 'D', BC[1])
dtime_TC = request.security(syminfo.tickerid, 'D', TC[1])

offs_daily = 0
plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",style=circles, color=fuchsia,linewidth=1) 
plot(sd and dtime_r1 ? dtime_r1 : na, title="Daily R1",style=circles, color=#DC143C,linewidth=1) 
plot(sd and dtime_s1 ? dtime_s1 : na, title="Daily S1",style=circles, color=lime,linewidth=1) 
plot(sd and dtime_r2 ? dtime_r2 : na, title="Daily R2",style=circles, color=maroon,linewidth=1) 
plot(sd and dtime_s2 ? dtime_s2 : na, title="Daily S2",style=circles, color=#228B22,linewidth=1)
plot(sd and dtime_BC ? dtime_BC : na, title="Daily BC",style=circles, color=black,linewidth=1)
plot(sd and dtime_TC ? dtime_TC : na, title="Daily TC",style=circles, color=black,linewidth=1)

bull1=  (close > dtime_r2)
bull2= (low < dtime_pivot) or (low < dtime_s1) 
bull3= dtime_pivot > dtime_pivot[1]
bullishenglufing=bull2 and bull3
bullishenglufing1=bull1 and (close > out) and (crossover(vrsi, overBought))
longCondition = bull1[1] and ((low < dtime_TC) or (low < dtime_BC) or (low < dtime_s1))

bear1=  (close < dtime_s2)
bear2= (high > dtime_pivot) or (high < dtime_r1) 
bear3= dtime_pivot < dtime_pivot[1]
bearishenglufing=bear2 and bear3
bearishenglufing1=bear1 and (close < out) and (crossunder(vrsi, overSold))
shortCondition = bear1[1] and ((high > dtime_BC) or (high > dtime_TC) or (high > dtime_r1))

plotshape(bullishenglufing, style = shape.triangleup, location = location.belowbar, color = green, size = size.tiny)
plotshape(bearishenglufing, style = shape.triangledown, location = location.abovebar, color = red, size = size.tiny)

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)