ユニバーサル・スナイパー戦略

作者: リン・ハーンチャオチャン開催日:2023年12月20日11時04分15秒
タグ:

img

概要

この戦略は,汎用的な短期取引戦略を実装するために,複数の技術指標の組み合わせを採用している.傾向追跡,ブレイクアウト取引,平均逆転取引,および他の取引方法があり,ほとんどの市場環境に適応することができます.それは非常に普遍的で実践的な短期戦略に属しています.

戦略原則

  1. 戦略はまず,最高値と最低値のチャネルと組み合わせたキャンドルボディチャネル指標を使用して,現在のトレンドの方向性と強さを決定します.

  2. 中期および長期間のトレンド方向を決定するために共通EMA指標を使用します. 偽信号をフィルタリングするために,二重EMA指標組み合わせを使用します.

  3. 次に,この戦略は,現在の価格が過買いまたは過売れているかどうかを判断するためにHull MA指標を使用します.Hull MA指標はターニングポイントをより正確に決定する能力を持っています.

  4. 最後に,この戦略はセキュリティ機能を使用して,より高いサイクルを開き,大きなサイクルトレンドの方向性を決定し,取引信号を生成します.

複数のサブ戦略の組み合わせにより,戦略は中期の傾向を把握し,長期サイクルに基づいて全体的な傾向の方向性を判断し,汎用的な汎用的な取引戦略を実現することができます.

利点分析

この戦略の最大の利点は,ポートフォリオ取引のための複数の技術指標を組み合わせ,トレンド追跡,平均リバース取引,ブレイクアウト取引,その他の取引方法を同時に実現できるということです. これは非常に汎用的でほとんどの市場環境に適応します.

具体的には,この戦略の主な利点は以下の通りです.

  1. 細胞の突破を特定するために ろうそく体チャネルインジケータを使用することで 突破信号を効果的に識別できます

  2. 偽信号をフィルタリングするためにダブルEMAコンボを使用すると信号の正確性が向上します

  3. Hull MA インディケーターを使用して過買い・過売りエリアを特定すると,ターニングポイントをより正確に判断できる.

  4. 高サイクルK線の開閉価格のクロスオーバーを採用して信号を生成すれば,ノイズによって誤導されるのを防ぐことができます.

  5. 複数の取引方法の組み合わせにより,戦略はより汎用的で普遍的です.

リスク分析

戦略は,多角的な取引戦略を達成するために複数の指標を組み合わせているが,取引には依然としていくつかのリスクがあります. 主に:

  1. ブレイク取引は,偽のブレイクによって誤導されやすいし,間違った信号を生成する.

  2. 平均逆転取引は,レンジ・バインド市場では損失を引き起こす傾向があります.

  3. 二重EMAコンボのフィルタリング能力は依然として限られており,通常の信号をフィルタリングする可能性があります.

  4. Hull MA インジケーターは 収縮曲線の精度がまだ足りない

上記のリスクに対応して,次の側面で最適化を行うことができます.

  1. より安定した指標を使用して判断し,誤ったブレイクを避ける.

  2. ストップ・ロスの戦略を増やして 単一の損失を制御する

  3. 最適な組み合わせを見つけるために 双 EMA パラメータを調整します

  4. 過剰購入と過剰販売の条件を決定するために より多くの指標を統合してみてください

オプティマイゼーションの方向性

上記の分析によると,戦略は主に以下の方向で最適化できる.

  1. カルマン線,ボリンジャー帯など,より主流で安定した指標コンボを補助判断として使用する.

  2. ストップ・ロスの戦略を増やして シングル・ロスを厳格にコントロールする

  3. パラメータの最適化により,最適なパラメータの組み合わせを見つけることができます.

  4. 機械学習モデルの判断力を強化して AIを使って 過買い・過売のエリアを特定します

  5. 適応的な論理判断力を強化し,異なる市場環境に基づいて戦略方法を動的に調整する.

概要

この戦略は,トレンドトラッキング,ブレイクアウトトレーディング,平均逆転トレーディングなどの複数の取引方法の有機的統合を達成し,ポートフォリオトレーディングのための複数の指標を組み合わせます. これは非常に汎用的で普遍的な短期取引戦略です. この戦略の最大の利点は,ほとんどの市場環境に広く適用可能であることです. これはより普遍的な戦略アイデアに属しています. もちろん,まだ取引には一定のリスクがあります. より安定した指標を導入し,ストップロスを増加させ,パラメータ最適化,機械学習を適用し,戦略のパフォーマンスをさらに向上させるために他の多くの側面から戦略を最適化することができます. 一般的に,これは参照し学ぶ非常に価値のある普遍的な短期取引戦略です.


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

//@version=2
//╭╮╱╱╭╮╭╮╱╱╭╮
//┃╰╮╭╯┃┃┃╱╱┃┃
//╰╮┃┃╭┻╯┣╮╭┫╰━┳╮╭┳━━╮
//╱┃╰╯┃╭╮┃┃┃┃╭╮┃┃┃┃━━┫
//╱╰╮╭┫╰╯┃╰╯┃╰╯┃╰╯┣━━┃
//╱╱╰╯╰━━┻━━┻━━┻━━┻━━╯
//╭━━━┳╮╱╱╱╱╱╱╱╭╮
//┃╭━╮┃┃╱╱╱╱╱╱╱┃┃
//┃┃╱╰┫╰━┳━━┳━╮╭━╮╭━━┫┃
//┃┃╱╭┫╭╮┃╭╮┃╭╮┫╭╮┫┃━┫┃
//┃╰━╯┃┃┃┃╭╮┃┃┃┃┃┃┃┃━┫╰╮
//╰━━━┻╯╰┻╯╰┻╯╰┻╯╰┻━━┻━╯
//━╯
// http://www.vdubus.co.uk/
strategy(title='Vdub FX SniperVX3 / Strategy  v3', shorttitle='Vdub_FX_SniperVX3_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)

//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance Channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")

//-----------------Support and Resistance 
RST = input(title='Support / Resistance length:',  defval=10) 
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)

//--------------------Trend colour ema------------------------------------------------// 
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0  ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)

//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0  ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)

//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")

//============ signal Generator ==================================//
Piriod=input('720')
ch1 = request.security(syminfo.tickerid, Piriod, open)
ch2 = request.security(syminfo.tickerid, Piriod, close)
longCondition = crossover(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (longCondition)
    strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Piriod, close),request.security(syminfo.tickerid, Piriod, open))
if (shortCondition)
    strategy.entry("SELL", strategy.short)

///////////////////////////////////////////////////////////////////////////////////////////

もっと