리소스 로딩... 로딩...

부피 및 촛불 패턴에 기초한 구매/판매 전략

저자:차오장, 날짜: 2024-06-03 16:31:28
태그:SMAEMA

img

전반적인 설명

이 전략은 가격 및 거래량에서 신호를 결합하고, 피보나치 리트레이싱 레벨과 함께 15분 및 45분 시간 프레임 내에서 구매 및 판매 신호를 생성한다. 이 전략은 단순한 이동 평균 (SMA) 및 기하급수적인 이동 평균 (EMA) 을 포함한 트렌드 및 추진력의 지표로 여러 이동 평균 (MA) 을 사용합니다. 또한, 피보나치 리트레이싱 레벨은 잠재적 인 입구점으로 사용됩니다. 전략의 주요 목표는 가격과 거래량에서 중요한 변화가 발생하면 구매 및 판매 기회를 신속하게 포착하는 것입니다.

전략 원칙

  1. 빠른 MA (디폴트 10) 및 느린 MA (디폴트 30) 를 계산합니다. 빠른 MA가 느린 MA보다 높으면 상승 추세를 나타냅니다. 그렇지 않으면 하락 추세를 나타냅니다.
  2. 부피 MA를 계산합니다 (예정 20). 현재 부피가 부피 MA보다 높으면 부피 증가; 그렇지 않으면 부피 감소를 나타냅니다.
  3. 여러 MA와 EMA를 보조 지표로 사용한다. 여기에는 빠른 MA (디폴트 9), 단기 SMA (디폴트 10 및 60), EMA (디폴트 3 및 7) 등이 포함된다.
  4. 피보나치 리트랙시 레벨 (0.47, 0.658, 0.886) 을 잠재적 지지 및 저항 수준으로 계산합니다.
  5. 단기 SMA (60) 가 정확도선을 넘을 때 구매 또는 판매 신호를 생성합니다 (빠른 EMA와 느린 EMA의 교차에 기초합니다).
  6. 빠른 MA (9) 가 EMA (7) 를 넘을 때 출구 신호를 생성합니다.

이점 분석

  1. 가격과 거래량 정보를 결합하여 더 포괄적인 시장 분석을 제공합니다.
  2. 여러 MA와 EMA를 보조 지표로 사용하여 트렌드 및 추진력의 변화를 확인하는 데 도움이됩니다.
  3. 피보나치 리트레이스먼트 레벨은 잠재적 진입 지점에 대한 참조를 제공하여 진입 시기를 최적화하는 데 도움이됩니다.
  4. 구매 및 판매 신호는 단기 SMA와 정확도 라인의 교차에 기반하여 시장 전환점을 신속하게 파악하는 데 도움이됩니다.
  5. 출구 신호는 빠른 MA와 EMA의 교차에 기반하여 적시에 수익을 취하거나 손실을 멈추는 것을 돕습니다.

위험 분석

  1. 불안정한 시장에서, 빈번한 크로스오버 신호는 과도한 거래 및 수수료 손실로 이어질 수 있습니다.
  2. 이 전략은 역사적인 데이터로부터 계산된 MA와 피보나치 레벨에 의존하며, 이는 급격한 시장 변화에 빠르게 적응하지 않을 수 있습니다.
  3. 이 전략은 시장 동향의 강도에 대한 평가가 부족하고, 동향이 약할 때 잘못된 신호를 생성할 수 있습니다.
  4. 전략의 매개 변수 (예: MA 기간) 는 다른 시장 조건에 따라 최적화되어야 합니다. 그렇지 않으면 전략의 효과에 영향을 줄 수 있습니다.

최적화 방향

  1. 트렌드 강도 지표 (ADX 같은) 를 도입하여 거래를 피하거나 트렌드가 약할 때 더 보수적인 전략을 채택하십시오.
  2. 다양한 시장 조건과 거래 도구에 적응하기 위해 MA와 EMA의 기간 매개 변수를 최적화합니다.
  3. 신호의 신뢰성을 높이기 위해 다른 기술적 지표 (RSI, MACD 등) 를 결합합니다.
  4. 개인 거래의 위험 노출을 통제하기 위해 스톱 로스 및 수익 취득 메커니즘을 도입합니다.
  5. 불안정한 시장에서는 더 적합한 거래 전략을 채택하는 것을 고려하십시오.

요약

이 전략은 가격, 거래량 및 피보나치 리트레이스먼트 수준을 결합하여 여러 시간 프레임 내에서 구매 및 판매 신호를 생성합니다. 전략의 장점은 여러 시장 요소를 포괄적으로 고려하고 여러 MA 및 EMA를 보조 지표로 사용하는 데 있습니다. 그러나 전략은 불안정한 시장에서 과도한 거래 신호를 생성 할 수 있으며 역사적 데이터에서 계산된 지표에 의존합니다. 따라서 적응력과 신뢰성을 향상시키기 위해 추가 최적화가 필요합니다. 최적화 방향에는 트렌드 강도 지표, 매개 변수 최적화, 다른 기술적 지표의 결합 및 위험 관리 조치의 도입이 포함됩니다.


/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Buy/Sell with Volume and Candlestick Signals", overlay=true)

// Fibonacci Retracement Levels
var float[] fibonacciLevels = array.new_float(5)
array.set(fibonacciLevels, 2, 0.47)
array.set(fibonacciLevels, 3, 0.658)
array.set(fibonacciLevels, 4, 0.886)

// Calculate Fibonacci Retracement Levels
fibonacciRetrace(highLevel, lowLevel) =>
    priceRange = highLevel - lowLevel
    retracementLevels = array.new_float(0)
    for i = 0 to array.size(fibonacciLevels) - 1
        level = highLevel - array.get(fibonacciLevels, i) * priceRange
        array.push(retracementLevels, level)
    retracementLevels

fibRetracementValues = fibonacciRetrace(high, low)
fibRetracement = ta.sma(close, 21)
plot(fibRetracement, color=color.purple, title="Fibonacci Retracement")

// Define inputs
fast_ma = input.int(title="Fast MA Period", defval=10)
short_sma_10 = input.int(title="Short SMA 10 Period", defval=10)
short_sma_60 = input.int(title="Short SMA 60 Period", defval=60)
slow_ma = input.int(title="Slow MA Period", defval=30)
ema1Length = input.int(title="EMA 1 Length", defval=3)
fast_ma_9 = input.int(title="Fast MA 9", defval=9)

// Define indicators
fast_ma_val = ta.sma(close, fast_ma)
short_sma_10_val = ta.sma(close, short_sma_10)
short_sma_60_val = ta.sma(close, short_sma_60)
slow_ma_val = ta.sma(close, slow_ma)
up_trend = fast_ma_val > slow_ma_val
down_trend = fast_ma_val < slow_ma_val
volume_up = volume > ta.sma(volume, 20)
volume_down = volume < ta.sma(volume, 20)

// Calculate accuracy values
fast_ema_val = ta.ema(close, fast_ma)
slow_ema_val = ta.ema(close, slow_ma)
ema1_val = ta.ema(close, ema1Length)
fast_ma_9_val = ta.sma(close, fast_ma_9)
ema7_val = ta.ema(close, 7)
accuracy = ta.crossover(close, slow_ma_val) ? fast_ema_val : slow_ema_val

// Define lines
plot(up_trend ? fast_ma_val : na, color=color.green, linewidth=2, title="Up Trend")
plot(down_trend ? fast_ma_val : na, color=color.red, linewidth=2, title="Down Trend")
plot(volume_up ? fast_ma_val : na, color=color.green, linewidth=2, title="Volume Up")
plot(volume_down ? fast_ma_val : na, color=color.red, linewidth=2, title="Volume Down")
plot(accuracy, color=color.yellow, linewidth=1, title="Accuracy Line")
plot(ema1_val, color=color.purple, linewidth=1, title="EMA 1")
plot(fast_ma_9_val, color=color.orange, linewidth=1, title="Fast MA 9")
plot(ema7_val, color=color.blue, linewidth=1, title="EMA 7")
plot(short_sma_60_val, color=color.red, linewidth=1, title="Short SMA 60")
hline(0, color=color.gray, linestyle=hline.style_dotted, title="Zero Line")

// Buy/Sell Signals
buySignal = ta.crossunder(short_sma_60_val, accuracy)
sellSignal = ta.crossover(short_sma_60_val, accuracy)

// Exit Signals
exitLongSignal = ta.crossunder(fast_ma_9_val, ema7_val)
exitShortSignal = ta.crossover(fast_ma_9_val, ema7_val)

// Plot Buy/Sell Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

if exitLongSignal
    strategy.close("Buy")

if exitShortSignal
    strategy.close("Sell")


if buySignal
    strategy.entry("Enter Long", strategy.long)
else if sellSignal
    strategy.entry("Enter Short", strategy.short)

관련

더 많은