
이 전략은 50주기의 EMA 평균선과 K선의 종결 가격을 판단하기 위해, 가격이 EMA 평균선을 아래로 돌파할 때 공백을 만들고, 가격이 2-3개의 K선으로 되돌릴 때까지 기다립니다. 만약 삼키기 형태의 K선이 나타나면, 그 K선 종결 후에 포지션을 공백하고, 단선 작업을 수행합니다.
먼저 50주기 EMA의 평균선을 계산하고, 그 다음에 가격이 상향으로 EMA의 평균선을 돌파했는지 판단하고, 돌파하면 공허 충동으로 기록한다. 그 다음 K선으로 상향 회귀가 발생했는지 판단하고, 만약 회귀가 전 K선의 최저 가격을 초과하면 회귀 신호로 기록한다. 회귀 후, 그 다음 1-2 K선으로 토너먼트 형태가 형성되었는지 판단하고, 토너먼트가 형성되면 토너먼트 신호로 기록한다. 동시에 공허 충동, 토너먼트 회귀 및 토너먼트 3 조건을 충족하면, 그 토너먼트 K선으로 종결한 후 포장을 공허하고, 단선 연산을 한다.
전략은 50주기 EMA 평균선을 그리며, 공백 신호가 발송될 때, K선 아래에 아래로 빨간 삼각형 표시를 그리며. 동시에 스톱로스를 주고, 빨간색의 스톱 라인을 그리는 것이다.
이 전략은 트렌드 판단과 형태 특성을 결합하여 트렌드 반전의 기회를 효과적으로 포착할 수 있다. 우선 EMA를 사용하여 트렌드 방향을 판단하고, 후 회전 과정에서 삼키기 형태를 사용하여 신호를 발산하여 가짜 돌파가 혼란스럽지 않도록 한다.
이 전략은 주로 EMA가 판단하는 트렌드 방향에 의존하며, 급격한 돌파구가 발생하면 잘못된 판단이 발생할 수 있다. 삼키기 형태 판단에는 어느 정도 주관성이 있으며, 수량과 깊이 모두 파라미터 최적화가 필요하다.
EMA 파라미터, 회귀 K 라인 수, 흡수 K 라인 수와 같은 파라미터를 최적화하여 더 나은 전략 효과를 얻을 수 있습니다. 또한, 다른 지표와 결합하여 추세 판단 및 회귀 신호를 고려할 수 있습니다.
EMA 사이클 최적화: 더 많은 EMA 사이클, 예를 들어 30, 40, 또는 60 사이클을 테스트하여 최적의 파라미터를 찾을 수 있다.
회귀 K선 수 최적화: 2-5개의 다른 수를 테스트하여 최적의 회귀 신호를 찾는다.
흡수 K선 수 최적화: 1-3개의 다른 수를 테스트하여 최적의 흡수 신호를 찾는다.
정지배수 최적화: 0.5-2배의 ATR 정지를 테스트하여 최적의 정지 위치를 찾을 수 있다.
MACD, KDJ 등과 같은 다른 지표 판단 신호를 추가하는 것을 고려하여 신호의 정확성을 향상하십시오.
다양한 종류의 테스트가 가능합니다. 예를 들어, 주식 지수, 원유, 귀금속 등이 적용 범위를 넓혀줍니다.
이 전략은 먼저 EMA를 사용하여 트렌드 방향을 판단하고, 그 다음 회귀와 삼키는 형태를 결합하여 공백 신호를 발산합니다. 전형적인 트렌드 반전 전략입니다. 트렌드 판단과 형태 특성을 결합하여 반전 기회를 효과적으로 잡을 수 있습니다. 전략 매개 변수가 최적화되면 좋은 효과를 얻을 수 있습니다.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Linor Pullback Short Strategy", shorttitle="EMA Pullback", overlay=true)
// Define strategy parameters
ema_length = input(50, title="EMA Length")
pullback_candles = input(3, title="Number of Pullback Candles")
engulfing_candles = input(1, title="Number of Engulfing Candles")
stop_loss = input(1, title="Stop Loss (in ATR)")
// Calculate the EMA
ema = ema(close, ema_length)
// Define bearish impulse condition
bearish_impulse = crossover(close, ema)
// Define pullback condition
pullback_condition = false
for i = 1 to pullback_candles
if close[i] > close[i - 1]
pullback_condition := true
else
pullback_condition := false
// Define engulfing condition
engulfing_condition = false
for i = 1 to engulfing_candles
if close[i] < open[i] and close[i-1] > open[i-1]
engulfing_condition := true
else
engulfing_condition := false
// Define the entry condition
entry_condition = bearish_impulse and pullback_condition and engulfing_condition
// Plot the EMA on the chart
plot(ema, color=color.blue, title="50 EMA")
// Plot shapes on the chart to mark entry points
plotshape(entry_condition, style=shape.triangleup, location=location.belowbar, color=color.red, size=size.small)
// Define and plot the stop loss level
atr_value = atr(14)
stop_loss_level = close + atr_value * stop_loss
plot(stop_loss_level, color=color.red, title="Stop Loss")
// Strategy orders
strategy.entry("Short", strategy.short, when=entry_condition)
strategy.exit("Stop Loss/Target", from_entry="Short", stop=stop_loss_level, when=strategy.position_size[1] > 0)
// Plot strategy performance on the chart