
Эта стратегия использует индикаторы движения цены для определения направления торговли. В частности, рассчитывается средняя линия и средняя цена, которые производят сигнал покупки, когда цена пересекает среднюю линию и среднюю цену. Для фильтрации ложных сигналов требуется, чтобы ранее не было аналогичных сигналов.
Эта стратегия основана на динамике цен, чтобы определить направление тенденции. Сначала рассчитывается средняя линия цены и средняя цена:
swmaClose = swma(close)
vwapClose = vwap(close)
Среди нихswmaВ среднем по годам.vwapВзвешенная средняя цена для объема сделок. Оба могут отражать средний уровень цен.
Затем сравнивается величина отношений между ценой и средней величиной, чтобы определить, является ли она средней и средней, чтобы определить, относится ли она к позитивным сигналам:
swmaLong = close > swmaClose
vwapLong = close > vwapClose
Чтобы отфильтровать ложные сигналы, попросите, чтобы эти два показателя не давали сигналов раньше:
triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
Посмотрите, как выглядит сигнал тревоги:
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]
В конце концов, когда сохраняется сигнал пробега, и цена снова проходит через среднюю линию, появляется сигнал открытия позиции:
startLong = saveLong and swmaLong
Это позволяет отфильтровывать ложные сигналы, что делает сигнал более надежным.
Стратегия также включает в себя параметры остановки убытков. Стоп-расстояние может быть настроено, а стоп-убыток может быть определенным множеством.
Эта стратегия имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Ответ:
Эта стратегия также может быть оптимизирована в следующих направлениях:
Эти оптимизации позволяют повысить гибкость, устойчивость и рентабельность стратегий.
В целом, эта стратегия является простой, прямой и логически понятной стратегией отслеживания тенденций. Стратегия использует среднюю и среднюю цену для определения направления движения цены и разрабатывает многоступенчатый механизм проверки для улучшения качества сигнала. Стратегия также включает в себя разумную установку стоп-стоп. С точки зрения количества кода, логика стратегии очень проста и требует всего 20 строк пиновых сценариев.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)
// How To Create A Simple Trading Strategy With TradingView
// https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view
swmaClose = swma(close)
vwapClose = vwap(close)
swmaLong = close > swmaClose
vwapLong = close > vwapClose
triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]
startLong = saveLong and swmaLong
startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1]
stopLoss = input(250, "Stop Loss", step = 50)
takeProfit = input(10, "Reward/Risk") * stopLoss
strategy.entry("Open Long", strategy.long, when = startLong)
strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit)
// bgcolor(swmaLong ? color.blue : na)
// bgcolor(vwapLong ? color.orange : na)
// bgcolor(triggerLong ? color.purple : na)
// bgcolor(saveLong ? color.yellow : na)
bgcolor(startLong[1] ? color.green : na)