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

최적화 된 장기 거래를 위한 MACD 및 마틴게일 조합 전략

저자:차오장, 날짜: 2024-06-07 15:01:13
태그:MACDMASMAEMA

img

전반적인 설명

이 전략은 긴 거래를 최적화하기 위해 MACD 지표와 마틴게일 화폐 관리 방법을 결합합니다. 전략은 MACD 라인과 신호 라인의 상대적 위치와 그 사이의 비율을 비교하여 구매 및 판매 신호를 결정합니다. 동시에 전략은 마틴게일 방법을 사용하여 계약 크기를 동적으로 조정하여 손실 시 주문량을 증가시켜 수익성을 달성하는 것을 목표로합니다. 이 전략의 주요 장점은 강력한 상승 추세를 파악하고 마틴게일 방법을 통해 수익성을 향상시키는 것입니다. 그러나 전략에는 또한 특정 위험이 있습니다. 연속 손실이 발생하면 큰 인하에 직면 할 수 있습니다.

전략 원칙

이 전략의 핵심은 MACD 지표와 마틴게일 금전 관리 방법이다. MACD 지표는 두 개의 이동 평균 (빠른 선과 느린 선) 으로 구성되어 있다. 빠른 선과 느린 선 사이의 위치 관계를 비교함으로써 현재 트렌드 방향을 결정할 수 있다. 빠른 선이 느린 선 위에 넘어가고 빠른 선과 느린 선의 비율이 1.07보다 크거나 같을 때 구매 신호가 생성된다. 빠른 선이 느린 선 아래를 넘어가고 느린 선과 빠른 선의 비율이 1.07보다 크거나 같을 때 판매 신호가 생성된다.

마틴게일 방법은 계약 크기를 동적으로 조정하는 데 사용됩니다. 이전 거래가 손실되면 전략은 계약 크기를 최대 5배까지 두 배로 증가시킵니다. 연속 손실이 5배를 초과하거나 이익이 발생하면 계약 크기가 초기 값으로 재설정됩니다. 이 방법의 목적은 주문 양을 증가시킴으로써 이전 손실을 보상하는 것이지만 또한 위험을 증가시킵니다.

전략적 장점

  1. 강력한 상승 추세를 파악할 수 있는 능력: MACD 빠른 라인과 느린 라인의 위치 관계를 비교하고 그 사이의 비율을 비교함으로써 전략은 강력한 상승 추세를 파악하고 적시에 구매할 수 있습니다.

  2. 마틴게일 방법은 수익성을 향상시킬 수 있습니다. 손실이 발생하면 주문량을 증가시킴으로써 전략은 수익성있는 거래에서 이전 손실을 보상할 수 있으며 이로 인해 전체 수익성이 향상됩니다.

  3. 합리적인 영업이익 및 스톱 로스 설정: 전략은 영업이익 및 스톱 로스 조건을 명확하게 설정합니다. 가격이 특정 수준에 도달하면 포지션이 닫히고 수익을 잠금하고 위험을 제어 할 수 있습니다.

전략 위험

  1. 연속 손실은 큰 손실로 이어질 수 있습니다. 전략이 연속적인 손실 트레이드를 겪는 경우, 마틴게일 방법은 지속적으로 주문 양을 증가시켜 큰 손실을 초래할 수 있습니다. 전략이 최대 두 배의 시간을 설정하지만 극단적인 경우에도 상당한 위험에 직면 할 수 있습니다.

  2. 트렌드 판단이 잘못 될 수 있습니다. 전략은 트렌드를 판단하기 위해 MACD 지표에 의존하지만 경우에 따라 표시기가 잘못된 신호를 보내 전략이 잘못된 결정을 내릴 수 있습니다.

  3. 계약 규모의 빈번한 조정으로 거래 비용이 증가할 수 있습니다. 마틴게일 방법의 계약 규모의 빈번한 조정 필요성으로 인해 거래 비용이 증가하여 전략의 전반적인 성과에 영향을 줄 수 있습니다.

전략 최적화 방향

  1. 다른 기술 지표와 결합: MACD 외에도 전략은 트렌드 판단의 정확성을 향상시키기 위해 RSI 및 BOLL와 같은 다른 기술 지표와 결합 될 수 있습니다.

  2. 마틴게일 방법을 최적화하십시오. 마틴게일 방법에 최대 손실 한도를 설정하거나 시장 변동성에 따라 두 배 비율을 동적으로 조정하는 것과 같은 위험 통제 조치를 도입하는 것을 고려하여 연속 손실 위험을 줄이십시오.

  3. 시장 정서 분석을 도입합니다. 전략은 시장 정서 지표, 즉 변동성 지표 (VIX) 를 포함하여 시장의 위험 욕구를 결정하고 그에 따라 전략 매개 변수를 조정할 수 있습니다.

요약

이 전략은 MACD 지표와 마틴게일 화폐 관리 방법을 결합하여 긴 거래를 최적화하기위한 양적 거래 전략을 구현합니다. 전략의 주요 장점은 마틴게일 방법을 통해 강력한 상승 추세를 파악하고 수익성을 향상시킬 수있는 능력입니다. 그러나 전략은 연속 손실로 인해 큰 손실의 위험도 있습니다. 전략을 더 최적화하기 위해 다른 기술적 지표를 결합하고 마틴게일 방법을 최적화하고 시장 정서 분석을 도입하는 것을 고려할 수 있습니다. 전반적으로이 전략은 긴 거래를위한 실현 가능한 아이디어를 제공하지만 실제 응용에서는 특정 시장 조건에 따라 적절히 조정하고 최적화해야합니다.


/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
strategy("Advanced MACD Strategy with Limited Martingale", overlay=true)

// MACD settings
fastLength = 15
slowLength = 30
signalSmoothing = 9
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// Contract size and previous trade result tracking
var float contractSize = 1
var int martingaleCount = 0 // Martingale count
var float lastTradeResult = 0

// Buy and sell conditions
longCondition = ta.crossover(macdLine, signalLine) and ( signalLine / macdLine >= 1.07)
shortCondition = ta.crossunder(macdLine, signalLine) and ( macdLine / signalLine >= 1.07)

// Buy signal
if (longCondition)
    strategy.entry("Long", strategy.long, qty=contractSize)
    lastTradeResult := strategy.netprofit

// Sell signal
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=contractSize)
    lastTradeResult := strategy.netprofit

// Take profit and stop loss conditions
strategy.close("Long", when=(close / strategy.position_avg_price >= 1.005))
strategy.close("Short", when=(strategy.position_avg_price / close >= 1.005))
strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99))
strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99))

// Martingale strategy implementation
if (strategy.netprofit < lastTradeResult)
    if (martingaleCount < 5)
        contractSize := contractSize * 2
        martingaleCount := martingaleCount + 1
    else
        contractSize := 1
        martingaleCount := 0
else
    contractSize := 1
    martingaleCount := 0

// Plot buy and sell points as arrows
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

관련

더 많은