- Площадь
- Продвинутая стратегия MACD с ограниченным Мартингейлом
Продвинутая стратегия MACD с ограниченным Мартингейлом
Автор:
Чао Чжан, Дата: 2024-05-11 17:24:43
Тэги:
MACDМ.А.
Обзор
Эта стратегия сочетает в себе индикатор MACD с ограниченным методом управления деньгами Мартингейла для захвата торговых возможностей при изменении рыночных тенденций. Сигнал покупки генерируется, когда быстрая линия MACD пересекает медленную линию, а сигнал продажи генерируется, когда быстрая линия пересекает медленную линию. В то же время стратегия использует ограниченный метод Мартингейла для контроля выводов, с максимумом 3 дополнительных позиций. Стратегия устанавливает фиксированную прибыль и стоп-лосс в размере 1% для каждой сделки.
Принципы стратегии
- Вычислить быструю линию, медленную линию и сигнальную линию индикатора MACD.
- Определите перекресток между быстрыми и медленными линиями, идя длинным на бычьем перекрестке и коротким на медленном перекрестке.
- Установите фиксированный объем торговли (0,01) для каждой сделки.
- Запись чистой прибыли от предыдущей сделки.
- Если текущая чистая прибыль меньше, чем в предыдущей сделке, и количество дополнительных позиций меньше 3, удвоить следующий объем торговли и увеличить количество дополнительных позиций на 1; в противном случае, сбросить объем торговли и количество дополнительных позиций.
- Для каждой длинной позиции получать прибыль, когда цена повышается на 1%, и остановить потерю, когда она падает на 1%; и наоборот для коротких позиций.
- Отметьте точки покупки и продажи на графике.
Преимущества стратегии
- Сочетает в себе индикатор MACD, следующий за трендом, с управлением деньгами Martingale, который может лучше отслеживать тенденции рынков.
- Установлены уровни получения прибыли и остановки убытков для контроля индивидуального риска торговли.
- Использует ограниченное размещение позиций Martingale для достижения более высокой доходности при продолжении тенденций.
- Ограничивает максимальное количество дополнительных позиций до трех, избегая риска чрезмерного размещения позиций, приводящего к разрыву счета.
- Марки покупают и продают сигналы на графике для легкого наблюдения за эффективностью стратегии.
Стратегические риски
- Индикатор MACD может испытывать расхождения между сигналами и ценой, что приводит к ошибочному суждению.
- Фиксированные коэффициенты получения прибыли и остановки убытков могут упустить большие возможности получения прибыли или понести большие убытки.
- Несмотря на то, что размеры позиций Martingale ограничены в 3 раза, все еще существует риск взрыва счета при последовательных потерях на нестабильных рынках.
- Стратегия не учитывает ненормальные колебания рынка, такие как внезапные пробелы, которые могут привести к невозможности выполнения как ожидалось.
Направления оптимизации стратегии
- Подумайте о внедрении индикаторов подтверждения тренда, таких как MA, для фильтрации сигналов MACD.
- Оптимизировать настройки получения прибыли и стоп-лосса, например, использовать ATR или проценты для динамических стоп-лосков.
- Оптимизировать количество и соотношение дополнительных позиций для контроля риска привлечения.
- Создать механизмы для борьбы с ненормальными рыночными условиями, такими как приостановка торговли при разрыве цен.
- Рассмотреть возможность внедрения дизеля позиций для динамической корректировки позиций на основе волатильности рынка.
Резюме
Эта стратегия фиксирует тенденции с помощью индикатора 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")
Связанные
Больше