Эта стратегия использует перекрестные сигналы между 50-периодической сглаженной скользящей средней (SMMA) и 20-периодической простой скользящей средней (SMA) для определения входов и выходов. Она генерирует сигналы покупки, когда быстрая линия SMA пересекает линию SMMA, и сигналы продажи, когда SMA пересекает линию SMMA. В то же время стратегия предусматривает фиксированные уровни прибыли и динамические уровни стоп-лосса для блокировки прибыли и контроля риска.
Испытать комбинации различных параметров (период цикла, критерии фильтрации и т.д.) для определения оптимального.
Включайте другие факторы, такие как пики громкости, для фильтрации сигналов.
Используйте инструменты оптимизации параметров для поиска оптимальных параметров.
Подумайте об интеграции других методов получения прибыли, таких как остановка или выходы на основе коэффициента прибыли.
Расчет динамического диапазона стоп-лосса на основе волатильности рынка.
Эта стратегия имеет относительно простую логику, захватывающую направления тренда с помощью двойных скользящих средних. Гибкое использование фиксированной прибыли и динамического стоп-лосса для получения прибыли и контроля риска достигает баланса между риском и вознаграждением. Дальнейшая оптимизация параметров и логики может адаптировать эту стратегию к более широкому диапазону рыночных условий.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true) // Define 50 SMMA smma50 = sma(close, 50) // Define 20 SMA sma20 = sma(close, 20) // Plotting the SMMA and SMA plot(smma50, color=color.blue, title="50 SMMA") plot(sma20, color=color.red, title="20 SMA") // Initialize TP and SL variables tp = 150 var float sl_price = na // Buy Signal buySignal = crossover(sma20, smma50) strategy.entry("Buy", strategy.long, when = buySignal) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price) // Sell Signal sellSignal = crossunder(sma20, smma50) strategy.entry("Sell", strategy.short, when = sellSignal) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price) // Update stop loss level on every crossover if (buySignal or sellSignal) sl_price := close[bar_index + 1] // Plot Stop Loss level plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)