この戦略は,複数のタイムフレームEMA指標とK線パターン判断を統合し,比較的敏感な長期信号キャプチャとストップロスの出口を達成する.
この戦略は主に以下の判断指標に基づいています.
EMA:価格突破時に取引信号を決定するために,EMAの13回と21回の2セットを使用します.
K線パターンは,K線エンティティの方向性を判断し,EMAインジケーターと共に偽の突破をフィルタリングします.
サポート抵抗: 過去10サイクルで最も高い点によって構築され,突破がこの領域を通過するかどうかを決定し,信号の信頼性を高める.
タイムディビジョンの上昇: 120 サイクルの終了は,時間ディビジョンの上昇として判断するために,補助的な判断として開いています.
取引シグナルを生成する規則は次のとおりである.
上昇信号: 急速なEMAは,ヤン線K線,ショートポジションを閉じてロングをオープンすることで,ゆっくりとしたEMAを上向きに突破します.
低迷信号: 急速なEMAは,陰線K線,平坦なロングポジションで遅いEMAを壊します.
ストップ・ロスの出口:逆信号が表示されたとき,現在の位置でのストップ・ロスの出口.
上記のリスクは,過剰な最適化,慎重なパラメータ選択,厳格な位置サイズ管理などの方法によって軽減できます.
この戦略は,比較的信頼性の高いトレンド判断のために,複数のタイムフレームEMAとKラインエンティティ判断を統合している.サポート抵抗とタイムディビジョンを使用した補助判断は信号品質を保証する.ストップ損失のための逆信号を使用することで,シングルストップ損失を効果的に制御することができる.将来の最適化は,機械学習モデル,適応ストップ,感情分析,ポジションサイズ管理モジュールを導入することで,戦略をより堅牢にすることができる.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title='ck - CryptoSniper Longs Only (Strategy)', shorttitle='ck - CryptoSniper Longs (S) v1', overlay=true, precision=2, commission_value=0.25, default_qty_type=strategy.percent_of_equity, pyramiding=0, default_qty_value=100, initial_capital=100) open_long = 0 close_position = 0 last_long=close last_short=close //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=false //-----------------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) //--------------------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 //-------------------- 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 //=============Hull MA// show_hma = false hma_src = input(close, title="HullMA Source:") hma_base_length = input(8, minval=1, title="HullMA Base Length:") hma_length_scalar = input(5, minval=0, title="HullMA Length Scalar:") hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) //============ signal Generator ==================================// Period=input(title='Period', defval='120') ch1 = request.security(syminfo.tickerid, Period, open) ch2 = request.security(syminfo.tickerid, Period, close) // Signals// long = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) short = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open)) last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) long_signal = crossover(last_long, last_short) ? 1 : -1 short_signal = crossover(last_short, last_long) ? -1 : 1 if (long_signal == 1) strategy.entry("Long Open", strategy.long) if (short_signal == -1) strategy.close("Long Open") if (long_signal[1] == 1 and short_signal[1] == 1) open_long := 1 close_position := 0 if (short_signal[1] == -1 and long_signal[1] == -1) open_long := 0 close_position := 1 plotshape(open_long == 1, title="Open Long", location=location.belowbar, style=shape.triangleup, size=size.small, color=green, transp=10) plotshape(close_position == 1, title="Close Long", location=location.abovebar, style=shape.triangledown, size=size.small, color=red, transp=10) //plot(0, title="Trigger", color=white) ///////////////////////////////////////////////////////////////////////////////////////////