
Обзор
Эта стратегия основана на 99-циклической простой движущейся средней ((MA99) для определения торговых сигналов. Позицию можно открыть, когда цена достигает MA99, без необходимости подтверждения двумя K-линиями. А стоп использует динамический стоп, то есть, когда цена прорывает MA99 и подтверждается в следующей K-линии.
Стратегический принцип
- Вычислить 99-циклическую простую скользящую среднюю MA99
- Оценить, касается ли текущая цена MA99, то есть минимальная цена ниже, чем равна MA99, и максимальная цена выше, чем равна MA99 .
- Если цена касается MA99 и закрывается выше MA99, то делаем больше; если цена касается MA99 и закрывается ниже MA99, то делаем пустоту.
- Для многоочередных позиций, если цена закрытия опускается ниже MA99 и следующая K-линия подтверждается, то они будут “плохими”; для открытых позиций, если цена закрытия опускается ниже MA99 и следующая K-линия подтверждается, то они будут “плохими”.
- При каждом открытии позиции устанавливается текущая стоп-стоп цена MA99; после каждой ликвидации позиции устанавливается новая стоп-стоп цена.
Стратегические преимущества
- Простая: стратегия основана на одном показателе MA99, правила ясны, легко понятны и реализуемы.
- Динамический стоп: по сравнению с фиксированным стопом, динамический стоп может лучше адаптироваться к изменениям рынка и своевременно контролировать риск.
- Тренд-слежение: MA99 представляет собой среднесрочную и долгосрочную тенденцию, открывает позиции, когда цена достигает MA99, и может торговать в направлении основного тренда.
- Уменьшение шума: по сравнению с использованием средней линии с более коротким периодом, средняя линия с 99 периодами эффективно фильтрует короткосрочный волатильный шум.
Стратегический риск
- Параметрическая оптимизация: стратегия использует только параметр 99, который может быть не оптимальным и требует отслеживания и оптимизации для определения оптимального параметра.
- Во время рыночных колебаний цены часто колеблются в районе MA99, что может привести к частым сделкам и потерям.
- Переворот: когда тренд переворачивается и цена пробивает MA99, стратегия может потерпеть убытки, продолжая держать позиции в неправильном направлении.
- Стоимость скольжения: Частые сделки могут привести к более высоким скольжениям и стоимости сделки, что влияет на стратегическую прибыль.
Направление оптимизации стратегии
- Введение фильтрации тренда: при определении сигналов открытия позиции, можно объединить с другими трендовыми показателями, такими как MACD, ADX и т. д., чтобы подтвердить силу и направление тренда, улучшить качество открытия позиции.
- Оптимизация параметров: оптимизация параметров, таких как цикл MA, условия остановки, для поиска оптимальной комбинации параметров, повышения устойчивости стратегии.
- Присоединение к управлению позициями: динамическая корректировка размеров позиций в зависимости от силы рыночных тенденций, волатильности и других факторов, контроль риска вывода.
- Учитывайте затраты на транзакции: в ретроспективных и реальных расчетах следует учитывать такие факторы, как торговые точки, комиссионные, чтобы оценить фактическую эффективность стратегии.
Подвести итог
MA99 взаимодействует с динамической стратегией остановки, открывая позиции, оценивая связь цены с MA99, и используя динамические остановки для управления риском. Эта стратегия проста и проста в использовании, она может следовать среднесрочным и долгосрочным тенденциям, но в нестабильных рынках может возникать проблема с частой торговлей.
Исходный код стратегии
/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
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("MA99 Temas ve Dinamik Stop-Loss Stratejisi", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// MA99 hesaplayalım
ma99 = ta.sma(close, 99)
plot(ma99, color=color.blue, title="MA99")
// Fiyatın MA99'a temas edip etmediğini kontrol edelim
priceTouchedMA99 = (low <= ma99 and high >= ma99)
// Long ve short koşullarını tanımlayalım
longCondition = priceTouchedMA99 and close > ma99
shortCondition = priceTouchedMA99 and close < ma99
var float longStopLoss = na
var float shortStopLoss = na
var int longStopTriggered = 0
var int shortStopTriggered = 0
// Alım veya satım sinyallerine göre işlemleri başlatalım ve stop-loss ayarlayalım
if (longCondition)
strategy.entry("Long Entry", strategy.long)
longStopLoss := ma99
longStopTriggered := 0
if (shortCondition)
strategy.entry("Short Entry", strategy.short)
shortStopLoss := ma99
shortStopTriggered := 0
// Stop-loss koşullarını ve iki mum kuralını kontrol edelim
if (not na(longStopLoss))
if (close < longStopLoss)
longStopTriggered := 1
else
longStopTriggered := 0
if (longStopTriggered[1] == 1 and close < longStopLoss) // Bir önceki mumda tetiklendi ve hala altında
strategy.close("Long Entry", comment="Stop Loss Long")
longStopLoss := na
longStopTriggered := 0
if (not na(shortStopLoss))
if (close > shortStopLoss)
shortStopTriggered := 1
else
shortStopTriggered := 0
if (shortStopTriggered[1] == 1 and close > shortStopLoss) // Bir önceki mumda tetiklendi ve hala üstünde
strategy.close("Short Entry", comment="Stop Loss Short")
shortStopLoss := na
shortStopTriggered := 0