Эта стратегия использует методы машинного обучения для реализации автоматизированной торговой стратегии с открытым окном. Она объединяет несколько индикаторов и моделей, которые могут автоматически генерировать торговые сигналы и совершать покупки и продажи на основе сигналов.
Эта стратегия основана на следующих принципах:
В частности, стратегия рисует среднюю линию корпуса, 13-циклическую ЭМА и 21-циклическую ЭМА. Популярность ЭМА определяет направление краткосрочной и среднесрочной тенденции. В сочетании с средней линией корпуса определяется тенденция более длительного периода. Это дает указание на направление последующих торговых сигналов.
Перед тем, как корректировать позиции, стратегия ссылается на соответствующие уровни поддержки и сопротивления в пределах максимальной и минимальной цены в физическом канале. Это позволяет избежать появления торговых сигналов в ключевых ценовых зонах.
Наконец, стратегия вызывает 60-циклическую цену открытия и цену закрытия, которая создает сигнал покупки, когда цена закрытия пересекает цену открытия, и сигнал продажи, когда она пересекает цену закрытия. Таким образом, вся логика торговли завершена.
Основным преимуществом этой стратегии является объединение машинного обучения и технического анализа, что позволяет реализовать автоматизированную торговую программу с четкой логикой, с регулируемыми параметрами и простой в использовании.
Стратегия не просто опирается на один или два показателя, а комплексно учитывает множество факторов, таких как тенденции, сопротивление поддержки, ценовые прорывы, что значительно повышает надежность и точность сигналов.
Средняя длина линии, количество циклов EMA, количество открытых и закрытых перекрестных циклов могут быть скорректированы с помощью параметров, что позволяет стратегии гибко адаптироваться к различным рыночным условиям.
Торговые сигналы, основанные на перекрестных показателях и ценах, могут автоматически инициировать покупку и продажу без использования ручного суждения, что уменьшает сложность операции.
Графики в стратегии могут четко показывать структуру рынка, состояние трендов и ключевые цены, интуитивно показывая основания для стратегических суждений.
Несмотря на многостороннюю оптимизацию этой стратегии, существуют некоторые возможные риски:
В условиях резкого колебания цен, индикаторы могут потерять силу или задерживаться, что приводит к тому, что стратегия не может вовремя отслеживать изменения цен. Параметры необходимо оптимизировать, чтобы адаптироваться к этой ситуации.
На основе показателей и моделей торговых сигналов, более или менее, могут быть ошибочные или пропущенные сигналы. Это требует улучшения качества сигнала путем комбинирования большего количества вспомогательных сигналов.
Стратегия одновременного ликвидного позиционирования приводит к риску потерь в обоих направлениях, если ошибочно оценить. Это требует строгого контроля потери или снижения позиции.
Настройка параметров слишком сложна и рискует быть оптимизированной. Это требует упрощения системы, контроля количества комбинаций параметров.
Эта стратегия имеет определенные возможности для оптимизации, в основном в следующих аспектах:
В дополнение к существующим показателям можно ввести дополнительные показатели, такие как BOLL-каналы, показатели KD и т. Д., чтобы обогатить основы для системного суждения.
Используйте простые индикаторы в качестве признаков, обучайте модели глубокого обучения, такие как LSTM, чтобы улучшить качество сигнала.
Добавление базовых факторов, таких как макроэкономические данные и политическая информация, для оптимизации макроциклических решений.
Внедрение стратегии стоп-лосс, динамическая корректировка размеров позиций в соответствии с динамикой прибыли стратегии, строгий контроль риска.
Эта стратегия объединяет несколько показателей, таких как тенденции, поддержка сопротивления, прорыв, и другие, и использует методы машинного обучения для реализации автоматизированной готовой к использованию количественной торговой программы. Она имеет преимущества, такие как разнообразие портфелей показателей, регулируемость параметров, автоматизация сигналов, но также сталкивается с определенными проблемами, такими как отклонения от отслеживания, ошибки сигналов и многоплотность MIX. В будущем будет введено больше вспомогательных показателей и моделей, которые могут быть глубоко оптимизированы в таких направлениях, как комбинация фундаментальных факторов, динамическая настройка позиций, что позволяет достичь более стабильной, точной и интеллектуальной количественной торговой эффективности.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")
//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
strategy.entry("SELL", strategy.short)
plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")
///////////////////////////////////////////////////////////////////////////////////////////