Ichimoku Cloud Quant Scalping Strategy - это краткосрочная количественная стратегия, интегрирующая Ichimoku Cloud и Average Directional Index (ADX). Она использует Ichimoku Cloud для определения направления тренда и ADX для фильтрации не трендовых рынков для скальпирования в трендовых условиях.
Стратегия состоит из двух основных компонентов:
Облака Ичимоку, чтобы судить о направлении тренда
Цена выше облака указывает на восходящий тренд, а ниже означает нисходящий.
ADX для фильтрации рынка без трендов
Принимать сигналы только тогда, когда ADX превышает 20, что указывает на трендовый рынок.
Торговые правила:
Преимущества этой стратегии:
Следуя тренду, избегая диапазонов. Ichimoku Cloud может точно определить направление тренда и поворотные точки. ADX фильтрует рынок, ограниченный диапазоном, чтобы предотвратить ложный прорыв.
Контроль вывода. 150 тиков остановки потери эффективно ограничивает по торговым потерям.
Высокий коэффициент прибыли. 200 тиков получают прибыль против 150 тиков стоп-лосс дает коэффициент прибыли 1,33, легко получить прибыль.
Требуется иметь соответствующую частоту торговли, чтобы предотвратить переоценку.
Риски:
Риск неудачи определения тренда. Неправильный сигнал, когда облако Ичимоку не может обнаружить изменение тренда. Может оптимизировать параметры для повышения точности.
Стоп-лосс может быть проникнут во время быстрого рынка. Может использовать отслеживание стоп-лосса или более широкий диапазон стоп-лосса.
Одночасовая и предмаркетовая торговля риски. По умолчанию настройка позволяет только дневную торговлю. Суждение может не работать в течение длительных часов. Может позволить 24 часа торговли или настроить стратегии для длительных сессий.
Потенциальные направления оптимизации:
Настройка параметров облака Ичимоку для поиска оптимальной настройки.
Параметр ADX и оптимизация порога для определения оптимальных значений.
Целевая прибыль и оптимизация стоп-лосса на основе исторических данных.
Остановить потерю, чтобы лучше следовать тренду.
Дополнительные индикаторы, такие как MACD и KD, помогают определить тенденцию.
Адаптивная оптимизация для различных продуктов.
Ichimoku Cloud Quant Scalping Strategy объединяет преимущества Ichimoku Cloud и ADX для точного определения точек перелома тренда и фильтрации рынков с диапазоном. Он имеет высокий коэффициент прибыли, контролируемое снижение и подходит для скальпирования вдоль тренда. Дальнейшие улучшения параметров, стоп-лосса, вспомогательных индикаторов могут повысить стабильность и прибыльность.
/*backtest start: 2023-12-13 00:00:00 end: 2023-12-20 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD) // || Adapted from: // || http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh // || Ichimoku cloud: conversionPeriods = input(title='Conversion Periods:', defval=7, minval=1), basePeriods = 26//input(title='Base Periods', defval=26, minval=1) laggingSpan2Periods = 52//input(title='Lagging Span:', defval=52, minval=1), displacement = 26//input(title='Displacement:', defval=26, minval=1) f_donchian(_len) => avg(lowest(_len), highest(_len)) f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=> _conversion_line = f_donchian(_conversion_periods) _base_line = f_donchian(_base_periods) _lead_line1 = avg(_conversion_line, _base_line) _lead_line2 = f_donchian(_lagging_span) [_conversion_line, _base_line, _lead_line1, _lead_line2] [conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods) //ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2) //ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2) //fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80) //plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement) plot(title='Conversion', series=conversionLine, color=blue, linewidth=1) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || ADX len = input(title="Length", defval=14) th = input(title="threshold", defval=20) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = sma(DX, len) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || Trade session: USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true) trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false) istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session)) bgcolor(istradingsession?gray:na) // ||----------------------------------------------------------------------------------------------------------------------------------------------|| // || Strategy: trade_size = input(title='Trade Size:', defval=1) stop_loss_in_ticks = input(title='Stop Loss in ticks:', defval=150) take_profit_in_ticks = input(title='Take Profit in ticks:', defval=200) buy_icloud_signal = open < conversionLine and close > conversionLine buy_adx_signal = DIPlus > 20 buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal sel_icloud_signal = open > conversionLine and close < conversionLine sel_adx_signal = DIMinus > 20 sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal) strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal) strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks) strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)