
Эта стратегия использует кросс-сигналы 50-циклического скользящего скользящего среднего значения (SMMA) и 20-циклического простого скользящего среднего значения (SMA) для определения времени покупки и продажи. Быстрый SMA вверх дает сигнал покупки, а медленный SMA вниз дает сигнал продажи.
можно тестировать комбинации различных параметров (количество циклов, условия фильтрации и т. д.) для поиска оптимальных параметров;
фильтрующие сигналы могут быть объединены с другими факторами, например, сверхнормативными объемами;
поиск оптимальных параметров с помощью инструментов оптимизации параметров;
Другие способы остановки могут быть рассмотрены в сочетании с подвижными и пропорциональными остановками;
Динамическая стоп-стоп может быть рассчитана в сочетании с рыночной волатильностью.
Эта стратегия работает просто в целом, чтобы захватить направление тенденции с помощью двойной равномерной линии; гибко использовать фиксированные стоп-стопы и динамические стоп-посты для блокировки прибыли и контроля риска, возможного риска и прибыли. Эта стратегия может быть дополнительно адаптирована к более широкой рыночной среде путем оптимизации параметров и правил.
/*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)