Эта стратегия использует методы машинного обучения для реализации автоматизированной стратегии торговли. Она интегрирует несколько индикаторов и моделей для автоматического генерирования торговых сигналов и принятия соответствующих решений о покупке и продаже.
Эта стратегия основывается главным образом на следующих ключевых моментах:
В частности, стратегия будет отражать Hull MA, 13-периодическую EMA и 21-периодическую EMA. Судя по краткосрочным и среднесрочным направлениям тренда на основе длинного и короткого статуса EMA. В сочетании с Hull MA для определения тенденций более длительного цикла. Это дает руководство по общему направлению для последующих торговых сигналов.
Перед корректировкой позиций стратегия будет относиться к самым высоким и самым низким ценам в канале организации, соответствующим уровням поддержки и сопротивления.
Наконец, стратегия использует 60-периодные открытые и закрытые цены. Когда цена закрытия пересекает открытую цену, генерируется сигнал покупки. Когда он пересекает ниже, генерируется сигнал продажи. Это завершает всю логику торговли.
Самое большое преимущество этой стратегии заключается в том, что она сочетает в себе механическое обучение и технический анализ, чтобы достичь логического, регулируемого и простого в использовании автоматизированного торгового решения.
Комбинация с несколькими индикаторами улучшает точность сигнала
Стратегия не опирается только на один или два индикатора, но учитывает множество факторов, таких как тенденции, поддержка / сопротивление и прорывы цены.
Гибкие настройки параметров
Продолжительность периодов Hull MA, EMA, открытых/ближайших периодов перекрестного перехода может быть скорректирована с помощью параметров, что делает стратегию адаптивной к различным рыночным условиям.
Автоматизированные торговые сигналы
Торговые сигналы, основанные на индикаторах и кроссоверах, могут автоматически запускать покупки и продажи без ручного суждения, уменьшая сложность.
Визуализированное отображение
Графики в стратегии могут четко показывать структуру рынка, состояние тренда и ключевые цены, интуитивно отображая основу стратегического суждения.
Несмотря на то, что эта стратегия была оптимизирована во многих аспектах, все еще существуют некоторые потенциальные риски:
Неспособность отслеживать резкие изменения цен
На волатильных рынках индикаторы могут стать неэффективными или задерживаться, что приводит к тому, что стратегия не может отслеживать изменения цен во времени.
Наличие погрешности сигнала
Торговые сигналы, основанные на индикаторах и моделях, будут иметь некоторые ложные сигналы или отсутствующие сигналы.
Риск длинной/короткой смеси
Стратегия, в которой одновременно занимаются как длинные, так и короткие позиции, имеет риск потерь с обеих сторон, если решения пойдут не так.
Риск перегрузки
Слишком сложные параметры подвергаются риску перенастройки.
Эта стратегия по-прежнему может быть оптимизирована, главным образом в следующих аспектах:
Добавить больше сигналов индикатора
В дополнение к существующим показателям могут быть введены дополнительные показатели, такие как каналы BOLL, показатели KD и т.д., для обогащения системы ссылки.
Применение моделей глубокого обучения
Использовать простые индикаторы в качестве функций для обучения LSTM и других моделей глубокого обучения для улучшения качества сигнала.
Включить основные данные
Добавьте макроэкономические данные, информацию о политике и другие фундаментальные факторы для оптимизации долгосрочных решений.
Размер риска и позиции
Внедрять стратегии стоп-лосса, динамически корректировать размер позиций на основе волатильности прибыли стратегии для строгого контроля рисков.
Эта стратегия объединяет тенденции, уровни поддержки/сопротивления, прорывы и множество других индикаторов, используя методы машинного обучения для достижения автоматизированных, готовых к использованию количественных торговых решений. Она имеет преимущества различных комбинаций индикаторов, настраиваемых параметров и автоматизированных сигналов, в то же время сталкивается с отклонениями отслеживания, ошибками сигнала, рисками длинной/короткой смеси в некоторой степени.
/*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") ///////////////////////////////////////////////////////////////////////////////////////////