典型的な二重トレンド追跡戦略

作者: リン・ハーンチャオチャン開催日:2023年11月1日16時54分29秒
タグ:

img

概要

この戦略は,古典的なピボットポイントを計算し,現在のトレンド方向を決定するためにRSI指標を使用して,株の二重トレンドを追跡します.中期トレンド取引に適しています.

戦略の原則

戦略は主に次のステップに従います.

  1. Pivot,S1,R1,S2,R2などを含む古典的なピボットポイントを計算します.

  2. 価格動向方向を決定するためにRSIインジケーターを使用します.80を超えるRSIは過買い区であり,20以下のRSIは過売り区です.

  3. 日々のトレンド方向を判断します. 閉じる価格が前日のR2よりも大きい場合,それは強いトレンドです. 閉じる価格が前日のS2よりも低い場合,それは弱いトレンドです.

  4. ポイントとRSIを組み合わせて 日々のトレンド方向に基づいて 今日の取引決定をします

    • 日々のトレンドが強い場合 (接近 > R2) は,Pivot の下に引き下げ買いポイントを探し,またはS1以下に買い点を探します.

    • 日々のトレンドが弱 (接近 < S2) なら,Pivot の上での引き下げ販売ポイントや R1 の上での販売ポイントを探します.

  5. ストップ・ロスのポイントを設定します.強いトレンドの場合,ストップ・ロスは前日のS1です.弱いトレンドの場合,ストップ・ロスは前日のR1です.

この戦略は,ピボットポイントで中長期トレンドを判断し,短期トレンドとエントリーポイントを決定するためにRSIなどを使用します.これは,中期取引に適した価格の二重トレンド追跡を可能にします.

利点分析

この戦略の主な利点は以下の通りです.

  1. 中長期の傾向と短期の傾向の両方を追跡し,市場の変化に柔軟に適応できる.

  2. ピボットポイントは,傾向を判断する能力があり,中長期の傾向を効果的に決定することができます.

  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)


もっと