Это высокочастотная торговая стратегия, основанная на 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)