
Это простая количественная торговая стратегия, основанная на равномерных показателях. Она использует быстрый и медленный равномерный золотой форк для определения времени покупки и продажи.
Эта стратегия основана на функции отслеживания трендов на равномерной линии. Быстрый параметр небольшой, чтобы быстро реагировать на изменения цены; большой параметр медленной линии, чтобы представлять долгосрочную тенденцию. Быстрый переход через медленную линию снизу означает, что краткосрочная тенденция начинает переворачиваться вверх, а быстрый переход через медленную линию сверху означает, что краткосрочная тенденция начинает переворачиваться вниз.
В частности, в этой стратегии определены двойные средние линии 5 (быстрая линия) и 34 (медленная линия). Каждый день вычисляются значения этих двух средних линий и сравнивается, пробивает ли быстрая линия медленную линию снизу. Если происходит сигнал золотой форки, сделайте больше; если происходит сигнал мертвой форки, сделайте равновесие.
Эта стратегия проста в понимании и легко реализуется. По сравнению с другими сложными стратегиями, она лучше подходит для начинающих, которые хотят начать количественную торговлю.
Двойная средняя линия эффективно фильтрует рыночный шум и улавливает основные тенденции. Изменения в рыночной ситуации могут быть адаптированы к различным циклам путем корректировки параметров средней скорости в течение дня.
В этой стратегии также встроен механизм остановки убытков. Когда цены начинают переворачиваться, то они своевременно останавливаются, чтобы эффективно контролировать риск.
При использовании стратегии двойной равнолинейности могут возникать риски, такие как неконтролируемые потери, неудача кривосочетания. В частности, существуют следующие основные проблемы:
У средней линии есть задержка, может возникнуть ситуация, когда сигнал появляется только после полного переключения. В этот момент прибыль превращается в убыток.
В условиях шока может возникнуть множество ложных сигналов, что приводит к избыточному количеству ненужных сделок, увеличению стоимости сделок и потере пунктов скольжения.
Эта стратегия полностью опирается на технические показатели, не сочетаемые с фундаментальным анализом.
Не учитывается управление местоположением и контроль риска. Непредвиденный случай может привести к потере позиций.
Для того, чтобы лучше использовать преимущества этой стратегии и снизить риски, ее можно оптимизировать следующими способами:
В сочетании с индикаторами тренда и колебания, устанавливаются более строгие условия входа, фильтруются ложные сигналы. Например, индикаторы MACD или KDJ.
Добавление соответствующего механизма остановки. Если после золотой форки снижается определенная доля, то остановка. Или после формирования новой высокой (низкой) точки, то остановка на определенную величину.
Оптимизируйте комбинацию параметров длины для быстрого и медленного среднего направления, корректируя ее в зависимости от изменения цены в разных периодах. Можно оптимизировать комбинацию параметров, чтобы найти оптимальные параметры.
Вы можете оценить общую динамику рынка с помощью индекса больших рынков, чтобы избежать высокой частоты торговли в шокирующем рынке.
Для проверки надежности трендовых сигналов в сочетании с изменением объема торгов. Например, увеличение должно иметь условия для прорыва в объеме.
Двойная равнолинейная стратегия является очень типичной количественной торговой стратегией. Она имеет такие характеристики, как простота, интуитивность и легкость реализации, что она очень подходит для обучения и овладения новичками в количественной торговле.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// This strategy is a modification to the "Bill Williams, Awesome Oscillator
// (AO) Backtest" strategy (Copyright by HPotter v1.0 29/12/2016)
//
// This version of the strategy by Midnight Mouse. 10/4/2018
//
// DESCRIPTION
//
// This indicator plots the oscillator as a column where periods fit for buying
// are marked as green, and periods fit for selling as orange/brown. If the
// current value of AO (Awesome Oscillator) is > the previous, the period is
// deemed fit for buying and the indicator is marked green. If the AO values is
// not over the previous, the period is deemed fit for selling and the indicator
// is marked orange/brown.
//
// You can change long to short in the Input Settings
//
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy("Awesome Oscillator.MMouse_Lager_BCE")
// === SETTINGS ===
// Strategy start date
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay = input(defval = 1, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year", minval = 2014)
// Strategy settings
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
allowShorts = input(false, title="Include Short Trades")
reverse = input(false, title="Trade reverse")
// === BODY ===
// Use Heikin-Ashi candles for the buy/sell signal
ha_t = heikinashi(syminfo.tickerid)
ha_high = security(ha_t, timeframe.period, high)
ha_low = security(ha_t, timeframe.period, low)
length = input( 14 )
price = open
vrsi = rsi(price, length)
// Calc (H+L)/2 for each length
xSMA1_hl2 = sma((ha_high + ha_low)/2, nLengthFast)
xSMA2_hl2 = sma((ha_high + ha_low)/2, nLengthSlow)
// Get SMA difference (Fast - Slow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Derive the color of the column
cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? #93c47d : #ad5e1d
// Determine the position to take (Long vs. Short)
pos = iff(xSMA1_SMA2 > xSMA1_SMA2[1], 1, iff(xSMA1_SMA2 < xSMA1_SMA2[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos))
// Only apply strategy from the start date
if (time >= timestamp(FromYear, FromMonth, FromDay, 00, 00))
if (possig == 1)
// Market is currently fit for a Long position
strategy.entry("Long", strategy.long)
if (possig == -1)
// Market is currently fit for a Short position
if(allowShorts)
// Shorts are allowed. Record a Short position
strategy.entry("Short", strategy.short)
else
// Shorts are not allowed. Closec the Long position.
strategy.close("Long")
// Define the candle colors
//barcolor(possig == -1 ? red :
// possig == 1 ? green :
// blue )
// Plot the oscillator
plot(xSMA1_SMA2, style=columns, linewidth=1, color=cClr)