В процессе загрузки ресурсов... загрузка...

Продвинутая стратегия MACD с ограниченным Мартингейлом

Автор:Чао Чжан, Дата: 2024-05-11 17:24:43
Тэги:MACDМ.А.

img

Обзор

Эта стратегия сочетает в себе индикатор MACD с ограниченным методом управления деньгами Мартингейла для захвата торговых возможностей при изменении рыночных тенденций. Сигнал покупки генерируется, когда быстрая линия MACD пересекает медленную линию, а сигнал продажи генерируется, когда быстрая линия пересекает медленную линию. В то же время стратегия использует ограниченный метод Мартингейла для контроля выводов, с максимумом 3 дополнительных позиций. Стратегия устанавливает фиксированную прибыль и стоп-лосс в размере 1% для каждой сделки.

Принципы стратегии

  1. Вычислить быструю линию, медленную линию и сигнальную линию индикатора MACD.
  2. Определите перекресток между быстрыми и медленными линиями, идя длинным на бычьем перекрестке и коротким на медленном перекрестке.
  3. Установите фиксированный объем торговли (0,01) для каждой сделки.
  4. Запись чистой прибыли от предыдущей сделки.
  5. Если текущая чистая прибыль меньше, чем в предыдущей сделке, и количество дополнительных позиций меньше 3, удвоить следующий объем торговли и увеличить количество дополнительных позиций на 1; в противном случае, сбросить объем торговли и количество дополнительных позиций.
  6. Для каждой длинной позиции получать прибыль, когда цена повышается на 1%, и остановить потерю, когда она падает на 1%; и наоборот для коротких позиций.
  7. Отметьте точки покупки и продажи на графике.

Преимущества стратегии

  1. Сочетает в себе индикатор MACD, следующий за трендом, с управлением деньгами Martingale, который может лучше отслеживать тенденции рынков.
  2. Установлены уровни получения прибыли и остановки убытков для контроля индивидуального риска торговли.
  3. Использует ограниченное размещение позиций Martingale для достижения более высокой доходности при продолжении тенденций.
  4. Ограничивает максимальное количество дополнительных позиций до трех, избегая риска чрезмерного размещения позиций, приводящего к разрыву счета.
  5. Марки покупают и продают сигналы на графике для легкого наблюдения за эффективностью стратегии.

Стратегические риски

  1. Индикатор MACD может испытывать расхождения между сигналами и ценой, что приводит к ошибочному суждению.
  2. Фиксированные коэффициенты получения прибыли и остановки убытков могут упустить большие возможности получения прибыли или понести большие убытки.
  3. Несмотря на то, что размеры позиций Martingale ограничены в 3 раза, все еще существует риск взрыва счета при последовательных потерях на нестабильных рынках.
  4. Стратегия не учитывает ненормальные колебания рынка, такие как внезапные пробелы, которые могут привести к невозможности выполнения как ожидалось.

Направления оптимизации стратегии

  1. Подумайте о внедрении индикаторов подтверждения тренда, таких как MA, для фильтрации сигналов MACD.
  2. Оптимизировать настройки получения прибыли и стоп-лосса, например, использовать ATR или проценты для динамических стоп-лосков.
  3. Оптимизировать количество и соотношение дополнительных позиций для контроля риска привлечения.
  4. Создать механизмы для борьбы с ненормальными рыночными условиями, такими как приостановка торговли при разрыве цен.
  5. Рассмотреть возможность внедрения дизеля позиций для динамической корректировки позиций на основе волатильности рынка.

Резюме

Эта стратегия фиксирует тенденции с помощью индикатора MACD, используя ограниченный Мартингейл для контроля снижения, что может достичь хороших результатов на трендовых рынках. Однако стратегия также имеет определенные риски, такие как отказ сигнала и фиксированные стоп-потери.


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

//@version=5
strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=100)

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

// 계약수 및 이전 거래 결과 기록
var float contractSize = 0.01
var int martingaleCount = 0 // 마틴게일 카운트
var float lastTradeResult = 0

// 매수 및 매도 조건
longCondition = ta.crossover(macdLine, signalLine)
shortCondition = ta.crossunder(macdLine, signalLine)

// 매수 신호
if (longCondition)
    strategy.entry("Long", strategy.long, qty=contractSize)
    lastTradeResult := strategy.netprofit

// 매도 신호
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=contractSize)
    lastTradeResult := strategy.netprofit

// 익절 및 손절 조건
strategy.close("Long", when=(close / strategy.position_avg_price >= 1.01))
strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01))
strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99))
strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99))

// 마틴게일 전략 적용
if (strategy.netprofit < lastTradeResult)
    if (martingaleCount < 3)
        contractSize := contractSize * 2
        martingaleCount := martingaleCount + 1
    else
        contractSize := 0.01
        martingaleCount := 0
else
    contractSize := 0.01
    martingaleCount := 0

// 매수, 매도 포인트 화살표로 표시
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")

Связанные

Больше