A Ichimoku Cloud Quant Scalping Strategy é uma estratégia quantitativa de curto prazo que integra a Ichimoku Cloud e o Average Directional Index (ADX).
A estratégia consiste em dois componentes principais:
Nuvem Ichimoku para julgar a direção da tendência
O preço acima da nuvem indica uma tendência de alta, enquanto abaixo significa uma tendência de queda.
ADX para filtrar o mercado não em tendência
Apenas tomando sinais quando o ADX for superior a 20, sugerindo um mercado em tendência. Nenhuma negociação quando o ADX <20 durante o mercado de gama.
Regras comerciais:
As vantagens desta estratégia:
Seguindo a tendência, evitando os intervalos. Ichimoku Cloud pode determinar com precisão a direção da tendência e pontos de virada.
Controle de retirada. 150 tiques de stop loss efetivamente limitam a perda por negociação.
Fator de lucro alto. 200 ticks take profit vs 150 ticks stop loss dá um fator de lucro de 1,33, fácil de ganhar lucros.
Frequência de negociação adequada: só se negocia quando surge uma tendência que evite o excesso de negociação.
Os riscos são:
Risco de falha na determinação da tendência. sinal incorreto quando a Ichimoku Cloud não consegue detectar a inversão da tendência. pode otimizar parâmetros para melhorar a precisão.
O risco de perda de parada pode ser atingido durante o mercado rápido. Pode usar perda de parada de atraso ou um intervalo de perda de parada mais amplo.
Risco de negociação overnight e pré-mercado. A configuração padrão permite apenas negociação diurna. O julgamento pode falhar durante horas prolongadas. Pode ativar negociação 24H ou personalizar estratégias para sessões prolongadas.
As potenciais direcções de otimização:
Ajuste de parâmetros da Nuvem Ichimoku para encontrar a configuração ideal.
Parâmetro ADX e otimização do limiar para determinar os melhores valores.
Meta de lucro e otimização de stop loss com base em dados históricos.
Trail stop loss para seguir melhor a tendência.
Indicadores adicionais como MACD e KD para ajudar na determinação da tendência.
Optimização adaptativa para diferentes produtos.
O Ichimoku Cloud Quant Scalping Strategy integra as vantagens do Ichimoku Cloud e do ADX para determinar com precisão os pontos de reversão da tendência e filtrar os mercados de faixa. Ele tem alto fator de lucro, drawdown controlável e é adequado para scalping ao longo da tendência.
/*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)