
Двухлинейная скрещенная короткая линия - простая и эффективная стратегия торговли короткой линией. Эта стратегия использует перекрестные сигналы цены и движущейся средней как сигнал покупки и продажи, чтобы улавливать трендовые колебания цены в короткой линии.
Двойная равнолинейная кросс-стратегия использует движущиеся средние двух различных периодов, более короткую MA и более длительную MA. Она генерирует сигнал к покупке, когда краткосрочная MA прорывает длинную MA снизу, и сигнал к продаже, когда краткосрочная MA падает снизу и прорывает длинную MA.
Эта стратегия сначала определяет длину переменной length, которая указывает длину периода MA на 50, затем определяет price как закрытую цену, рассчитывает линию MA длиной length и сохраняет ее в переменной ma. Затем определяет bcond, чтобы определить, выше ли цена, если она выше ma, bcount плюс 1, в противном случае она возвращается к нулю. Если bcond последовательно запускает confirmBars ((по умолчанию 2), генерируется сигнал покупки. Напротив, когда цена ниже ma, генерируется сигнал продажи по той же логике.
Чтобы отфильтровать часть недействительных сигналов, в стратегию добавляются три фильтрующих условия clc, clc0 и clc1. Эти три условия определяют отношение величины текущего цикла к величине цены закрытия предыдущего цикла, а также отношение величины цены закрытия текущего цикла к величине цены открытия, и если они одновременно удовлетворяются, то позволяют генерировать сигнал.
В конце концов, когда цена снова падает вверх или снова пробивается вниз, соответствующие позиции сверхположений или свободных позиций ликвидируются соответственно.
Для снижения риска можно рассмотреть возможность изменения среднелинейных параметров в зависимости от динамики рыночных колебаний; также можно использовать диверсионные стопы или процентные стопы, позволяющие гибко корректировать точки остановки.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров системы средних линий, например, динамическая коррекция длины средних линий в зависимости от рыночных колебаний.
Добавление дополнительных условий фильтрации, таких как всплеск трафика, для улучшения качества сигнала.
Оптимизация стратегии остановки убытков, применение плавающего или процентного остановки убытков, чтобы уменьшить вероятность преждевременного остановки убытков.
В сочетании с другими показателями, такими как MACD, RSI и т. Д., проводится многофакторная проверка, повышающая эффективность сигнала.
Добавление автоматических стратегий управления рисками, таких как динамическая корректировка размеров позиций, контроль одиночных потерь.
Включение методов машинного обучения для создания более точных моделей определения сигналов покупки и продажи.
Двухлинейная кросс-короткая стратегия в целом является очень практичной стратегией торговли короткой линией, с преимуществами простоты работы и легкости реализации. Однако необходимо обратить внимание на контроль ложных сигналов в шокирующем рынке и провести оптимизацию динамических параметров, чтобы максимально использовать эту стратегию. В сочетании с методами управления остановкой и контроля рисками можно еще больше повысить стабильность стратегии.
/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MovingAvg Cross", overlay=true)
length = input(50)
confirmBars = input(2)
price = close
ma = sma(price, length)
bcond = price > ma
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
clc=close[0]>close[1]
clc0=close[0]>open[0]
clc1=close[1]>open[1]
if clc and clc0 and clc1 and (bcount == confirmBars)
strategy.entry("buy", strategy.long)
scond = price < ma
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
csc=close[0]<close[1]
csc0=close[0]<open[0]
csc1=close[1]<open[1]
if csc and csc0 and csc1 and (scount == confirmBars)
strategy.entry("sell", strategy.short)
strategy.close("buy", when=scond)
strategy.close("sell",when=bcond)
plot(ma, color=color.red)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)