
Эта стратегия является высокочастотной торговой стратегией, основанной на 3-минутной K-линии на бирже Coinbase. Она рассчитывает верхние и нижние линии K-линии, чтобы определить, есть ли возможность для реверсии цены в краткосрочной перспективе. Когда цены растут или падают, стратегия принимает позиции, противоположные тенденции, в ожидании реверсии короткой линии.
Эта стратегия основана на том, чтобы определить, есть ли возможность для цены на краткосрочные сверхпокупки или сверхпродажи. Сверхпокупки и сверхпродажи обычно возникают из-за чрезмерного оптимизма или пессимизма на рынке. Когда возникает такой временный эмоциональный дисбаланс, цены обычно реверсируют.
В частности, стратегия рассчитывает размер верхней и нижней теневой линии K. Чем больше теневая линия, тем сильнее противостояние между силами покупателей и продавцов, когда текущая K-линия не завершена. Если верхняя линия слишком велика, это означает, что многие сделки были проиграны на паралельном рынке до закрытия K-линии, что предвещает неминуемое падение многоголосной силы; если нижняя линия слишком велика, это означает, что многие сделки были поглощены покупателями до закрытия K-линии, что предвещает неминуемое падение свободной силы.
Согласно этой логике суждения, когда линия тени становится слишком большой (то есть, когда цена появляется в краткосрочной перспективе), выбирается позиция, противоположная тренду. Стоп-стоп для входа в многоголовую позицию является средней ценой нижней линии тени, стоп-стоп для входа в пустую позицию - средней ценой верхней линии тени.
Наибольшим преимуществом этой стратегии является ее возможность управлять рыночными краткосрочными иррациональными колебаниями, что позволяет реализовать обратный арбитраж. Она требует меньше капитала для получения более высокой эффективности.
Еще одно преимущество Coinbase заключается в том, что она является очень волатильной биржей.
Самый большой риск, с которым сталкивается эта стратегия, заключается в том, что краткосрочные колебания цен могут быть не очень предсказуемыми. Размер верхней и нижней теневой линии не обязательно может захватить всю информацию о том, как цена меняется.
Кроме того, установка стоп-стадий также имеет решающее значение. Слишком мягкие стоп-стадии могут привести к увеличению убытков в стратегии; слишком жесткие стоп-стадии могут привести к упущенным возможностям. Здесь необходимо найти баланс между убыточным и выигрышным коэффициентами.
Эта стратегия может быть оптимизирована в следующих аспектах:
Эта стратегия в целом является типичной стратегией статистического арбитража. Она пытается извлечь выгоду из иррациональных колебаний цен в краткосрочной перспективе, имеет определенную логику и реализуемость. Следующим шагом может быть оптимизация экспериментов с большего количества измерений, чтобы сделать параметры стратегии и правила торговли более научными.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//for coinbase, 3min logic
//This strategy trades against the short term trend. The first position can be either long or short.
//In the short term, prices fluctuate up and down on wide spread exchanges.
//And if the price moves to one side, the price tends to return to its original position momentarily.
//This strategy set stop order. Stop price is calculated with upper and lower shadows.
strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50)
fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year")
frommonth = input(12, minval = 1, maxval = 12, title = "From Month")
fromday = input(1, minval = 01, maxval = 31, title = "From day")
toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year")
tomonth = input(12, minval = 01, maxval = 12, title = "To Month")
today = input(31, minval = 01, maxval = 31, title = "To day")
end = true
length = input(3, title="period")
mag = input(1.2, title="sigma", minval=0.1, step=0.1)
up_shadow = abs(high - max(open, close))
dn_shadow = abs(low - min(open, close))
up_shadow_ma = sma(up_shadow, length) * mag
dn_shadow_ma = sma(dn_shadow, length) * mag
upper = close + dn_shadow_ma
lower = close - up_shadow_ma
plot(upper, color=red)
plot(lower, color=blue)
if strategy.position_size == 0
strategy.entry("Long", strategy.long)
if 0 < strategy.position_size
strategy.entry("Short", strategy.short, stop=lower, when=end)
if 0 > strategy.position_size
strategy.entry("Long", strategy.long, stop=upper, when=end)