
이 전략은 여러 가지 기술적 지표와 거래 개념을 통합하여 자동으로 구매 및 판매 신호를 생성 할 수 있습니다. 주요 특징은 트렌드 분석 지표와 결합하여 최적화된 스톱 로스를 구현하고, 평행선 교차를 사용하여 거래 신호를 생성하는 것입니다.
맞춤형 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)