이 전략은 지수 이동 평균 ((EMA) 의 교차를 사용하여 거래 신호를 생성하고 동적으로 중지 및 손실 수준을 설정합니다. 더 짧은 기간의 EMA ((EMA 12) 가 더 긴 기간의 EMA ((EMA 26) 를 넘어서면 구매 신호를 생성합니다. 반대로, EMA 12가 더 높은 기간의 EMA를 넘어서면 판매 신호를 생성합니다. 이 전략은 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위
이 전략의 핵심은 두 개의 다른 주기의 지수 이동 평균 ((EMA) 의 교차를 사용하여 거래 신호를 생성하는 것이다. EMA는 추세를 추적하는 지표로 가격 데이터를 평형화하고, 노이즈 방해를 줄일 수 있다. 더 짧은 기간의 EMA가 아래에서 더 긴 기간의 EMA를 넘어서면 가격의 움직임이 강하다는 것을 나타내고 구매 신호를 생성한다. 반대로, 더 짧은 기간의 EMA가 위에서 더 긴 기간의 EMA를 넘어서면 가격의 움직임이 약하다는 것을 나타내고 판매 신호를 생성한다.
동시에, 이 전략은 동적 스톱 스톱의 방식을 채택하고, 현재 포지션의 방향에 따라 (중단 또는 공석) 다른 스톱 및 스톱 손실 수준을 설정한다. 이러한 동적 조정 스톱 스톱의 방법은, 트렌드가 강할 때 이익을 충분히 확장 할 수 있으며, 가격 역전이 발생할 때 적시에 중단되어 위험을 더 잘 제어 할 수 있습니다.
간단하고 사용하기 쉬운: 이 전략은 단지 두 개의 EMA 선의 교차를 사용하여 거래 신호를 생성하고, 논리적으로 명확하고, 이해하기 쉽고, 구현하기 쉽습니다.
트렌드 추적: EMA 지표는 좋은 트렌드 추적 능력을 가지고 있으며, 가격의 주요 트렌드를 효과적으로 포착할 수 있다.
동적 중지 손실: 위치의 방향에 따라 동적으로 중지 및 중지 수준을 조정하여 추세가 강할 때 이익을 충분히 확장 할 수 있으며, 가격 반전이 발생할 때 적시에 중지하여 위험을 더 잘 제어 할 수 있습니다.
적응력: 이 전략은 다양한 시장 환경과 거래 품종에 적용되며, 강한 적응력과 유연성을 갖는다.
변수 최적화 위험: EMA 주기의 선택과 스톱 스톱 손실 비율의 설정은 특정 시장 환경과 거래 품종에 따라 최적화되어야 하며, 부적절한 변수 설정은 전략의 부실성을 초래할 수 있습니다.
빈번한 거래 위험: 시장이 불안정할 때 EMA 교차가 빈번하게 발생할 수 있으므로 전략이 거래 신호를 더 많이 생성하여 거래 비용과 위험을 증가시킵니다.
트렌드 역전 위험: 시장 추세가 급격히 역전되면 이 전략은 잘못된 거래 신호를 발생시켜 손실을 초래할 수 있다.
다른 기술 지표의 도입: 다른 기술 지표의 도입을 고려할 수 있습니다. RSI, MACD 등은 EMA 교차 신호의 확인을 보조하고 거래 신호의 신뢰성을 향상시킵니다.
최적화 파라미터 설정: 특정 시장 환경과 거래 품종에 적합한 최적화 파라미터 조합을 찾기 위해 EMA 주기와 스톱 스톱 손실 비율을 최적화하여 테스트합니다.
위험 통제 조치를 도입: 거래 위험을 더 잘 제어하기 위해 포지션 관리, 자금 관리 등과 같은 위험 통제 조치를 도입하는 것을 고려하십시오.
기본적 분석과 결합: 기술 분석과 기본적 분석을 결합하여 시장 환경, 경제 데이터 등의 요소를 종합적으로 고려하여 거래 의사 결정의 정확성을 높인다.
이 전략은 거래 신호를 생성하기 위해 EMA 교차를 이용하고, 동적 스톱 스톱의 방법을 사용하여 위험을 제어한다. 그것은 사용 간편, 트렌드 추적, 적응력이 강한 등의 장점이 있지만, 또한 파라미터 최적화 위험, 빈 거래 위험 및 트렌드 역전 위험과 같은 과제에 직면한다. 다른 기술 지표, 최적화 파라미터 설정, 위험 제어 조치의 도입 및 기본 분석과 결합한 방법을 도입함으로써 전략의 성능을 더욱 최적화하여 실제 거래에서의 적용성과 수익성을 향상시킬 수 있다.
/*backtest
start: 2023-05-23 00:00:00
end: 2024-05-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CDC Action Zone Trading Bot with Dynamic TP/SL", overlay=true)
// ดึงข้อมูลราคาปัจจุบัน
current_price = close
// คำนวณเส้น EMA 12 และ EMA 26
ema12 = ta.ema(current_price, 12)
ema26 = ta.ema(current_price, 26)
// กำหนดเปอร์เซ็นต์ Take Profit และ Stop Loss
takeProfitPercent = 0.080
stopLossPercent = 0.025
// คำนวณระดับ Take Profit และ Stop Loss
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent)
// สัญญาณ Buy
buySignal = (ema12 > ema26) and (ema12[1] <= ema26[1])
// สัญญาณ Sell
sellSignal = (ema12 < ema26) and (ema12[1] >= ema26[1])
// เปิด Position Long
if (buySignal)
strategy.entry("Long", strategy.long)
// เปิด Position Short
if (sellSignal)
strategy.entry("Short", strategy.short)
// ปิด Position Long เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size > 0)
strategy.exit("Long TP/SL", from_entry="Long", limit=longTakeProfit, stop=longStopLoss, comment="TP/SL")
// ปิด Position Short เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size < 0)
strategy.exit("Short TP/SL", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss, comment="TP/SL")
// ปิด Position Long เมื่อเกิดสัญญาณขาย
if (strategy.position_size > 0 and sellSignal)
strategy.close("Long", comment="Sell Signal")
// ปิด Position Short เมื่อเกิดสัญญาณซื้อ
if (strategy.position_size < 0 and buySignal)
strategy.close("Short", comment="Buy Signal")
// Debugging messages to plot the calculated levels for visual verification
//plot(longTakeProfit, title="Long Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(longStopLoss, title="Long Stop Loss", color=color.red, linewidth=1, style=plot.style_line)
//plot(shortTakeProfit, title="Short Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(shortStopLoss, title="Short Stop Loss", color=color.red, linewidth=1, style=plot.style_line)