
Эта стратегия основана на пересечении простых движущихся средних и весовых движущихся средних для создания торговых сигналов, а также в сочетании с остановками и остановками для управления позициями. Эта стратегия объединяет динамические факторы (пересечение движущихся средних) и статические факторы (установленные остановки и остановки) для достижения эффекта динамического переплетения.
Основная логика состоит в том, чтобы рассчитывать движущиеся средние для двух различных периодов, один из которых представляет собой 9-дневную простую движущуюся среднюю, а другой - 21-дневную взвешенную движущуюся среднюю. При пересечении 21-дневных взвешенных движущихся средних длинных периодов через 9-дневную простую движущуюся среднюю коротких периодов образуется сигнал покупки; при пересечении коротких периодов длинными периодами через 9-дневную простую движущуюся среднюю образуется сигнал продажи.
При получении сигнала, в соответствии с установленным стоп-стоп соотношением. Например, если стоп-стоп соотношение установлено на 5%, то стоп-стоп цена установлена на 95 процентов от цены входа. Если стоп-стоп соотношение установлено на 5%, то стоп-стоп цена установлена на 105 процентов от цены входа. Таким образом, достигается объединение динамических факторов (пересечение перемещающейся средней определяет время входа и выхода) и статических факторов (фиксированный стоп-стоп соотношение).
Эта стратегия сочетает в себе динамические технические показатели и статические стратегические параметры, которые обладают преимуществами динамической системы. Технические показатели позволяют динамически улавливать рыночные характеристики, что полезно для понимания тенденций; в то время как параметрическая настройка обеспечивает стабильный контроль риска и прибыли, что полезно для снижения случайности управления позициями.
По сравнению с чисто динамической системой, эта стратегия более устойчива в управлении позициями и может уменьшить влияние иррациональных решений. По сравнению с чисто статической системой, входные варианты этой стратегии более гибки и могут адаптироваться к изменениям рынка. Поэтому эта стратегия в целом более устойчива и прибыльна.
Риски данной стратегии в основном исходят из двух аспектов: 1) возможность ошибочного сигнализирования движущейся средней; 2) частое пересечение движущихся средних, когда рынок находится в шокирующем состоянии, что может привести к блокированию стратегии; 3) риск того, что фиксированные стоп-стопы не могут адаптироваться к особым рыночным условиям; 4) когда внезапные события приводят к значительным колебаниям рынка, установленные стоп-стоп-стопы могут быть нарушены, что не позволяет эффективно контролировать риск.
Первый способ - избежать критических временных точек и уменьшить вероятность ошибочных сигналов. Второй способ - запустить адаптивный алгоритм остановки убытков в зависимости от рыночной волатильности и особых событий, чтобы остановка убытков соответствовала рыночным изменениям.
Эта стратегия может быть оптимизирована в следующих аспектах:
Испытание различных комбинаций параметров, чтобы найти оптимальный параметр;
Улучшение условий фильтрации для предотвращения недействительных сигналов.
Применение адаптивных алгоритмов по остановке убытков, взаимодействие с рынком;
В сочетании с другими показателями оценивайте сильные и слабые тенденции и избегайте рыночных потрясений.
Автоматическая оптимизация параметров с использованием методов машинного обучения.
Стабильность и доходность стратегии могут быть улучшены путем тестирования различных параметров, увеличения условий фильтрации, улучшения методов остановки убытков и определения тенденций.
Эта стратегия успешно сочетает динамические показатели и статические параметры, одновременно обеспечивая гибкость и устойчивость. По сравнению с чисто динамическими и чисто статическими стратегиями, эта стратегия в целом показывает лучшие результаты.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("WMA vs MMA Crossover Strategy with SL/TP", shorttitle="WMA_MMA_Cross_SL_TP", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Définition des périodes pour les moyennes mobiles
wmaLength = input.int(9, title="WMA Length")
mmaLength = input.int(21, title="MMA Length")
// Paramètres de Stop Loss et Take Profit en pourcentage
stopLossPercentage = input.float(5, title="Stop Loss (%)") / 100
takeProfitPercentage = input.float(5, title="Take Profit (%)") / 100
// Calcul des moyennes mobiles
wmaValue = ta.wma(close, wmaLength)
mmaValue = ta.sma(close, mmaLength)
// Conditions pour les signaux d'achat et de vente
buySignal = ta.crossover(wmaValue, mmaValue)
sellSignal = ta.crossunder(wmaValue, mmaValue)
// Génération des ordres en fonction des signaux
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", stop=strategy.position_avg_price * (1 - stopLossPercentage), limit=strategy.position_avg_price * (1 + takeProfitPercentage))
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", stop=strategy.position_avg_price * (1 + stopLossPercentage), limit=strategy.position_avg_price * (1 - takeProfitPercentage))
// Affichage des moyennes mobiles sur le graphique
plot(wmaValue, color=color.blue, title="WMA")
plot(mmaValue, color=color.red, title="MMA")
// Affichage des signaux sur le graphique pour référence
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")