
この戦略は,複数の技術指標と取引コンセプトを統合し,購入と販売のシグナルを自動的に生成するために使用できます. 主な特徴は,トレンド分析指標と組み合わせて,最適化ストップロスを実現し,均線交差を利用して取引シグナルを生成することです.
カスタマイズされたUTSTC指標:平均リアル波幅に基づいて自主的なストップトラッキング指標を実現し,市場の変動に応じてストップ範囲を調整できます.
STC指数:市場トレンドの方向と潜在的逆転点を判断するために使用される,高速簡易移動平均と遅い簡易移動平均の差値.
シンプル移動平均 ((SMA) とインデックス移動平均 ((EMA):異なる周期の移動平均を計算し,描画し,追加の傾向判断情報を提供する.
買取信号:閉盤価格にUTSTC指数が突破され,STC指数が看板状態にあるときに発生する.
売出シグナル:閉盘価格がUTSTC指数を下回り,STC指数が下落状態にあるときに発生する.
複数の指標を統合することで,市場の動向を判断し,信号の正確性を向上させることができる.
UTSTC指数は,実際の波幅に応じて自動的に止損範囲を調整し,各損失を効果的に制御します.
平均線交差を利用して,シンプルで効果的な取引信号を生成します.
異なるパラメータ設定の組み合わせにより,より多くの市場環境に対応できます.
STCなどのトレンド判断指標は遅滞しており,短期的な反転の機会を逃している可能性があります.
均線交差信号は偽信号を生成する可能性がある.
各パラメータの設定は慎重に評価され,不適切な組み合わせは利益を低下させたり,損失を増やす可能性があります.
制限範囲が大きすぎると損失のリスクが増加し,制限範囲が小さすぎると早期に停止する可能性があります.
異なる長さの周期のSTC指数パラメータをテストし,戦略に最小の影響を及ぼす設定を探します.
KDJ,MACDなどの他の指標と組み合わせて偽信号をフィルタリングしてみてください.
回測結果に応じて止損パラメータを調整し,最適なパラメータの組み合わせを見つけます.
異なるポジションの時間設定を評価し,最適のポジション保持周期を探します.
この戦略は,トレンド判断,自動ストップ・マネジメント,取引信号判断の複数のモジュールを統合して,より包括的な量化取引方案を形成する.パラメータ調整と機能拡張により,安定した収益を期待できる.しかし,いかなる戦略も完全に損失を回避することはできません.慎重に効果を検証し,リスクを適切に制御する必要があります.
/*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)