Olá a todos. Espero que estejam todos bem. Já faz muito tempo desde que publiquei meu primeiro roteiro aqui, e recebi muita resposta por isso.
Então, eu pensei que eu deveria compartilhar este roteiro também para todos, e qualquer um que possa achá-lo útil.
Aqui está como eu trabalho: O script tenta determinar a direção geral do mercado, usando velas de Heiken Ashi suavizadas. O sistema de coloração (usando cores brilhantes e escuras) é uma tentativa de detectar condições de mercado fortes e fracas. Há também um oscilador dentro do script, mas por enquanto não está traçado. Créditos para @jackvmk, eu usei parte de seu código de script aberto neste indicador.
Eu considerei usar a inclinação do gráfico do indicador como um filtro para as condições variáveis do mercado. O gráfico é relativamente plano em mercados
Se você encontrar uma maneira de usar isso, por favor, compartilhe com a comunidade na seção de comentários.
NOTA: Este não é, de forma alguma, um aconselhamento financeiro.
A propósito, eu usaria o nome
backtest
/*backtest start: 2022-04-08 00:00:00 end: 2022-05-07 23:59:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Professeur_X //@version=5 indicator(title='HA Market Bias', shorttitle='HA Market Bias', overlay=true) tf(_res, _exp, gaps_on) => gaps_on == 0 ? request.security(syminfo.tickerid, _res, _exp) : gaps_on == true ? request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_on, barmerge.lookahead_off) : request.security(syminfo.tickerid, _res, _exp, barmerge.gaps_off, barmerge.lookahead_off) ha_htf = '' show_ha = input.bool(true, "Show HA Plot/ Market Bias", group="HA Market Bias") ha_len = input(100, 'Period', group="HA Market Bias") ha_len2 = input(100, 'Smoothing', group="HA Market Bias") // Calculations { o = ta.ema(open, ha_len) c = ta.ema(close, ha_len) h = ta.ema(high, ha_len) l = ta.ema(low, ha_len) haclose = tf(ha_htf, (o + h + l + c) / 4, 0) xhaopen = tf(ha_htf, (o + c) / 2, 0) haopen = na(xhaopen[1]) ? (o + c) / 2 : (xhaopen[1] + haclose[1]) / 2 hahigh = math.max(h, math.max(haopen, haclose)) halow = math.min(l, math.min(haopen, haclose)) o2 = tf(ha_htf, ta.ema(haopen, ha_len2), 0) c2 = tf(ha_htf, ta.ema(haclose, ha_len2), 0) h2 = tf(ha_htf, ta.ema(hahigh, ha_len2), 0) l2 = tf(ha_htf, ta.ema(halow, ha_len2), 0) ha_avg = (h2 + l2) / 2 // } // Oscillator { osc_len = input.int(7, "Oscillator Period", group="HA Market Bias") osc_bias = 100 *(c2 - o2) osc_smooth = ta.ema(osc_bias, osc_len) sigcolor = (osc_bias > 0) and (osc_bias >= osc_smooth) ? color.new(color.lime, 35) : (osc_bias > 0) and (osc_bias < osc_smooth) ? color.new(color.lime, 75) : (osc_bias < 0) and (osc_bias <= osc_smooth) ? color.new(color.red, 35) : (osc_bias < 0) and (osc_bias > osc_smooth) ? color.new(color.red, 75) : na // } // Plots { p_h = plot(h2, "Bias High", display=display.none, editable=false) p_l = plot(l2, "Bias Low", display=display.none, editable=false) p_avg = plot(ha_avg, "Bias Avergae", display=display.none, editable=false) col = o2 > c2 ? color.red : color.lime if o2 > c2 strategy.entry("Enter Long", strategy.long) else if o2 < c2 strategy.entry("Enter Short", strategy.short)