この戦略は,複数の技術指標と取引コンセプトを統合し,自動的に購入・販売シグナルを生成する.主な特徴は,トレンド指標に基づいてストップを最適化し,移動平均クロスオーバーから取引を誘発する.
カスタム UTSTC インディケーター: 市場の変動に応じてストップ・ロスの範囲を調整するために,平均の真の範囲に基づいた適応性のあるトレーリング・ストップ.
STC指標: 市場傾向の方向性と潜在的な逆転点を決定するための,速い平均値と遅い単純な移動平均値の差.
単純な移動平均値 (SMA) と指数的な移動平均値 (EMA): 追加の傾向情報を提供するために,異なる期間の移動平均値をプロットする.
購入信号: 閉じる価格がUTSTC線を超え,STCが上昇状態にあるとき生成される.
セールシグナル: 閉じる価格がUTSTC線を下回り,STCが下落状態にあるとき発生する.
市場動向を決定する複数の指標を統合し,信号の精度を向上させる.
UTSTCは実際の変動に基づいてストップを自動的に調整し,取引ごとに損失を効果的に制御します.
移動平均の交差値からのシンプルで効果的な取引信号です
異なるパラメータの組み合わせにより多くの市場環境に対応できます
STCのようなトレンドインジケーターは 短期的な逆転を遅らせたり 逃したりする可能性があります
移動平均の交差値が 誤った信号を生む可能性があります
必要なパラメータを慎重に評価すれば 不適切な組み合わせは 利益を減少させたり 損失を増加させたりします
ストップ・ロスの範囲が大きすぎると損失が増えるし ストップが狭すぎると早すぎる
戦略に影響を最小限に抑える設定を見つけるために STC の異なる長さをテストする.
誤った信号を減らすために追加のフィルターを組み込む.例えば,KDJ,MACD.
バックテスト結果に基づいて ストップを最適化して 最適なパラメータミックスを見つけます
最適な状態を判断するために,異なる保持期間を評価する.
この戦略は,トレンド,自動ストップ,シグナルモジュールを比較的完全なアルゴリズム取引フレームワークに組み合わせます.パラメータ調整と機能拡張により,安定した利益を達成できますが, stratagemは完全に損失を回避することはできません.適切な検証とリスク制御は依然として不可欠です.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("OB+LQ+UTSTC+SMA+EMA-NORA-MIP21-Jashore-Bangladesh-OneMinuteTF", shorttitle="OB+LS+UTSTC-MIP21-Jashore-Bangladesh-OneMinuteTF", overlay=true) // Order Block + Liquidity Swings [NORA] Settings pivot_length = input(14, title="Pivot Lookback") bull_ext_last = input(3, title="Bullish OB Extension") bear_ext_last = input(3, title="Bearish OB Extension") swing_length = input(5, title="Swing Length") area = input("Wick Extremity", title="Swing Area", options=["Wick Extremity", "Full Range"]) min_profit = input(0.5, title="Minimum Profit Target") max_loss = input(0.5, title="Maximum Loss Stop") // Variables var float bull_ob_price = na var float bear_ob_price = na var float swing_high = na var float swing_low = na // Calculate Order Block Prices var float low_lowest = na var float high_highest = na if bar_index >= pivot_length low_lowest := lowest(low, pivot_length) high_highest := highest(high, pivot_length) bull_ob_price := low_lowest bear_ob_price := high_highest // Calculate Swing High/Low Prices var float low_lowest_swing = na var float high_highest_swing = na if area == "Wick Extremity" low_lowest_swing := lowest(low, swing_length) high_highest_swing := highest(high, swing_length) else low_lowest_swing := lowest(high - low, swing_length) high_highest_swing := highest(high - low, swing_length) swing_low := low_lowest_swing swing_high := high_highest_swing // Trading Logic for Order Block + Liquidity Swings buy_liquidity = crossover(close, bull_ob_price) and close > swing_low sell_liquidity = crossunder(close, bear_ob_price) and close < swing_high // Plot Buy/Sell Signals for Order Block + Liquidity Swings plotshape(series=buy_liquidity, style=shape.labelup, location=location.belowbar, color=color.rgb(39, 166, 175), size=size.small, title="Bullish LQ") plotshape(series=sell_liquidity, style=shape.labeldown, location=location.abovebar, color=color.rgb(248, 95, 215), size=size.small, title="Bearish LQ") // UTSTC-SMA-EMA-NORA-New Settings keyvalue = input(3, title="UT Bot Key Value", step=0.5) atrperiod = input(10, title="UT Bot ATR Period") src = close xATR = atr(atrperiod) nLoss = keyvalue * xATR xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue plot(xATRTrailingStop, color=xcolor, title="UT Bot Trailing Stop") // STC Settings stc_length = input(12, title="STC Length") fastLength = input(26, title="STC Fast Length") slowLength = input(50, title="STC Slow Length") fastMA = ema(close, fastLength) slowMA = ema(close, slowLength) STC = fastMA - slowMA STCColor = STC > STC[1] ? color.green : color.red plot(STC, color=STCColor, title="STC") // Add SMAs sma21 = sma(close, 21) sma44 = sma(close, 44) plot(sma21, color=color.blue, title="SMA 21") plot(sma44, color=color.orange, title="SMA 44") // Add EMA ema5 = ema(close, 5) plot(ema5, color=color.yellow, title="EMA 5") // Combined Strategy buySignal = crossover(src, xATRTrailingStop) and STC < 25 and STCColor == color.green sellSignal = crossunder(src, xATRTrailingStop) and STC > 75 and STCColor == color.red // Plot Buy and Sell signals as triangles plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) strategy.entry("Buy", strategy.long, when=buySignal) strategy.entry("Sell", strategy.short, when=sellSignal)