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

이중 EMA 지표 스마트 크로싱 거래 시스템 (Smart Crossing Trading System)

저자:차오장, 날짜: 2024-11-29 16:33:21
태그:EMAMACDSMARSICCIATR

img

전반적인 설명

이 전략은 두 개의 이동 평균 크로스오버를 기반으로 한 지능형 거래 시스템으로, 9 기간 및 21 기간 기하급수적인 이동 평균 (EMA) 을 핵심 지표로 사용합니다. 이 전략은 동적인 스톱 로스 및 영리 메커니즘을 통합하여 EMA 크로스오버 신호를 실시간으로 모니터링하여 자동으로 거래 명령을 실행합니다. 이 시스템은 비율 기반의 트레일링 스톱과 고정 비율의 영리 수준을 사용하여 거래 안전과 수익 잠재력을 모두 보장합니다.

전략 원칙

핵심 논리는 빠른 EMA (9주기) 와 느린 EMA (21주기) 사이의 교차 관계에서 작동합니다. 빠른 라인이 느린 라인의 위를 넘을 때 시스템은 상승 신호를 인식하고 자동으로 모든 단위 포지션을 닫고 긴 포지션을 열습니다. 빠른 라인이 느린 라인의 아래를 넘을 때 시스템은 하락 신호를 식별하고 모든 긴 포지션을 닫고 짧은 포지션을 열습니다. 또한 시스템은 동적인 스톱 로스 및 영업 메커니즘을 구현합니다. 긴 포지션의 경우 스톱 로스는 엔트리 가격보다 5% 낮고 영업 영업은 10% 높습니다. 짧은 포지션의 경우 스톱 로스는 엔트리 가격보다 5% 높고 영업 영업은 10% 이하로 설정됩니다.

전략적 장점

  1. 과학 지표 선택: EMA는 시장 변화에 더 민감하게 반응하여 시장 동향을 효과적으로 포착합니다.
  2. 종합적인 스톱 로스 및 이윤 취득 메커니즘: 비율 기반 설정은 다른 시장 조건에 유연하게 조정할 수 있습니다.
  3. 높은 수준의 자동화: 신호 검출에서 거래 실행까지 완전히 자동화되어 인간의 개입을 최소화합니다.
  4. 효율적인 리스크 관리: 각 거래에 대한 명확한 스톱 로스 및 취리 레벨
  5. 명확한 코드 구조: 표준화된 변수 이름 및 논리적 계층, 유지 및 최적화를 촉진

전략 위험

  1. 시장을 가로질러 발생하는 위험: 시장을 가로질러 발생하는 신호가 자주 발생하여 과도한 거래로 이어질 수 있습니다.
  2. 미끄러짐 위험: 높은 변동성 중 이론 및 실제 실행 가격 사이의 잠재적 차이
  3. 자금 관리 위험: 특정 시장 조건에서 고정 비율 포지션 크기가 유연하지 않을 수 있습니다.
  4. 시스템 위험: 극심한 시장 조건에서 스톱 로스 또는 영리 주문이 제때 실행되지 않을 수 있습니다.

최적화 방향

  1. 트렌드 필터를 구현: ADX 또는 ATR 지표를 추가하여 트렌드 강도를 평가하고 다양한 시장에서 빈번한 거래를 피합니다.
  2. 스톱 로스 및 영리 메커니즘을 최적화: 스톱 로스 및 영리 거리를 동적으로 조정하기 위해 ATR을 사용하는 것을 고려하십시오.
  3. 시간 필터를 추가합니다. 매우 변동적인 기간을 피하기 위해 특정 거래 시간 제한을 적용합니다.
  4. 포지션 크기를 개선합니다. 시장 변동성에 따라 포지션 크기를 동적으로 조정합니다.
  5. 시장 감정 지표를 추가합니다: 거래 확인을 위해 RSI 또는 MACD를 포함합니다.

요약

이 전략은 완전하고 논리적으로 건전한 자동화 거래 시스템을 나타냅니다. 동적 인 스톱 로스 및 영리 메커니즘과 결합된 EMA 크로스오버 신호를 통해 트렌딩 시장에서 잘 수행 할 수 있습니다. 그러나 사용자는 시장 조건을 모니터링하고 그에 따라 매개 변수를 조정하고 적절한 위험 통제를 유지해야합니다. 지속적인 최적화 및 정제로 인해이 전략은 안정적이고 신뢰할 수있는 거래 도구가 될 가능성이 있습니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// 添加策略参数设置
var showLabels = input.bool(true, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)

// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)

// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)

// 检测交叉
crossOver = ta.crossover(ema9, ema21)  
crossUnder = ta.crossunder(ema9, ema21)

// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)

// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)

// 交易逻辑
if crossOver
    if strategy.position_size < 0  // 如果持有空仓
        strategy.close("做空")     // 先平掉空仓
    strategy.entry("做多", strategy.long)  // 开多仓
    if showLabels
        label.new(bar_index, high, text="做多入场\n" + timeStr, color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)

if crossUnder
    if strategy.position_size > 0  // 如果持有多仓
        strategy.close("做多")     // 先平掉多仓
    strategy.entry("做空", strategy.short)  // 开空仓
    if showLabels
        label.new(bar_index, low, text="做空入场\n" + timeStr, color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)

// 设置止损止盈
if strategy.position_size > 0  // 多仓止损止盈
    strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
    
if strategy.position_size < 0  // 空仓止损止盈
    strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit) 

관련

더 많은