{"product_id":"bm-chart","title":"BM ChartStyle","description":"\u003cp\u003e\u003cstrong\u003eCATEGORÍA:\u003c\/strong\u003e Indicador · Para NinjaTrader 8 · Estilo de gráfico con barras coloreadas por delta ejecutado\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eBMChart\u003c\/strong\u003e es un estilo de gráfico para NinjaTrader 8 que colorea cada vela según el \u003cstrong\u003edelta ejecutado\u003c\/strong\u003e —volumen comprador menos vendedor— en lugar de según si cerró por encima o por debajo de su apertura.\u003c\/p\u003e\n\u003cp\u003eEl coloreado clásico responde a una pregunta que el precio ya contesta solo: si la vela subió o bajó. BMChart responde otra distinta: \u003cstrong\u003equién agredió el libro durante esa vela\u003c\/strong\u003e.\u003c\/p\u003e\n\u003cp\u003eEsa diferencia importa cuando las dos lecturas no coinciden. Una vela que cierra a la baja pero con delta comprador indica absorción: alguien estuvo comprando todo el camino hacia abajo. En un gráfico convencional esa vela es roja como cualquier otra y la información se pierde.\u003c\/p\u003e\n\u003cp\u003eNo es un indicador de señales ni promete rentabilidad. Es una forma distinta de mirar las mismas velas.\u003c\/p\u003e\n\u003ch2 id=\"cómo-funciona-el-coloreado\"\u003eCómo funciona el coloreado\u003c\/h2\u003e\n\u003cp\u003eEl color de cada vela se decide en dos pasos.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEl signo del delta elige la familia.\u003c\/strong\u003e Delta positivo da la gama alcista, negativo la bajista, cero el neutro. Esto es independiente de si la vela cerró arriba o abajo: una vela bajista de precio puede salir verde si el delta fue comprador, y esa discrepancia es precisamente la información que el indicador aporta.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLa magnitud elige la intensidad\u003c\/strong\u003e, en ocho niveles discretos por lado. Una vela con delta pequeño sale casi gris; una con delta fuerte sale al color pleno. De ahí la degradación visible en el gráfico.\u003c\/p\u003e\n\u003ch3 id=\"la-escala-se-autocalibra\"\u003eLa escala se autocalibra\u003c\/h3\u003e\n\u003cp\u003eEl umbral de intensidad máxima no es un número fijo. Es el \u003cstrong\u003epercentil 85 del delta absoluto de las últimas 200 barras\u003c\/strong\u003e, ambos configurables:\u003c\/p\u003e\n\u003cpre spellcheck=\"false\" autocapitalize=\"off\"\u003e\u003ccode\u003eumbral = Percentil(|delta| de las últimas NormWindow barras, NormPctl)\nintensidad = min(1, |delta| \/ umbral) × signo(delta)\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003eEso tiene tres consecuencias prácticas:\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSe adapta solo al instrumento y al marco temporal.\u003c\/strong\u003e Lo que es delta fuerte en MNQ de 1 minuto no lo es en CL de 15 minutos, y no hay que configurarlo.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLa lectura es relativa, no absoluta.\u003c\/strong\u003e Una vela al color pleno significa «de las más fuertes de las últimas 200 barras», no «delta mayor a X contratos». En una sesión muerta, un delta modesto puede alcanzar el máximo.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNecesita 20 barras cerradas\u003c\/strong\u003e para empezar a calibrar. Antes de eso todo sale neutro, con aviso en pantalla.\u003c\/p\u003e\n\u003ch2 id=\"arquitectura-dos-componentes-en-un-archivo\"\u003eArquitectura: dos componentes en un archivo\u003c\/h2\u003e\n\u003cp\u003eEl archivo \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eBMChart.cs\u003c\/code\u003e declara \u003cstrong\u003edos clases en dos namespaces\u003c\/strong\u003e, y NinjaTrader las registra por separado:\u003c\/p\u003e\n\u003ctable\u003e\n\u003ccolgroup\u003e \u003ccol\u003e \u003ccol\u003e \u003ccol\u003e \u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eComponente\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eDónde aparece\u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eQué hace\u003c\/p\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cstrong\u003eBMChart Style\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eChart Styles\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003ese aparta para que el indicador pinte\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cstrong\u003eBMDeltaBars\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eIndicadores\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003ecalcula el delta y dibuja las velas\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch3 id=\"por-qué-hacen-falta-los-dos\"\u003ePor qué hacen falta los dos\u003c\/h3\u003e\n\u003cp\u003eUn ChartStyle \u003cstrong\u003eno puede calcular delta\u003c\/strong\u003e. La documentación de NinjaTrader es explícita: los Chart Styles no están relacionados con los Bar Types, y un ChartStyle no dispone de \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eAddDataSeries\u003c\/code\u003e ni de \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eOnMarketData\u003c\/code\u003e. Sin esas dos vías no hay forma de obtener el volumen clasificado por bid\/ask.\u003c\/p\u003e\n\u003cp\u003eUn indicador sí las tiene, pero no puede impedir que el ChartStyle activo pinte sus propias velas encima.\u003c\/p\u003e\n\u003cp\u003eLa solución es el reparto: el estilo se vuelve transparente —parámetro \u003cstrong\u003eOcultar barras\u003c\/strong\u003e— y el indicador dibuja. Por eso \u003cstrong\u003eambos deben estar activos en el mismo gráfico\u003c\/strong\u003e, y por eso el estilo por sí solo deja el gráfico vacío.\u003c\/p\u003e\n\u003ch3 id=\"rendimiento\"\u003eRendimiento\u003c\/h3\u003e\n\u003cp\u003eEl indicador dibuja con \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eOnRender\u003c\/code\u003e recorriendo únicamente las barras visibles, así que el coste no crece con el histórico. Los pinceles del degradado —dieciséis en total, ocho por lado— se crean una sola vez en \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eOnRenderTargetChanged\u003c\/code\u003e y se reutilizan, en lugar de crear uno por vela.\u003c\/p\u003e\n\u003ch2 id=\"requisitos\"\u003eRequisitos\u003c\/h2\u003e\n\u003ctable\u003e\n\u003ccolgroup\u003e \u003ccol\u003e \u003ccol\u003e \u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003cth colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/th\u003e\n\u003cth colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003ePlataforma\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eNinjaTrader 8\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eDatos\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003einstrumento con bid\/ask por tick (futuros, acciones)\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cstrong\u003eTick Replay\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003e\u003cstrong\u003eobligatorio\u003c\/strong\u003e para el histórico\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eLicencia adicional\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd colspan=\"1\" rowspan=\"1\"\u003e\n\u003cp\u003eninguna — no requiere Order Flow+\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003ch3 id=\"sobre-tick-replay\"\u003eSobre Tick Replay\u003c\/h3\u003e\n\u003cp\u003eEs la única exigencia real y conviene entender por qué.\u003c\/p\u003e\n\u003cp\u003eEl delta se calcula clasificando cada print contra el bid y el ask vigentes: si se ejecuta al ask es compra agresiva, si al bid es venta agresiva. Ese dato solo existe a nivel de tick.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSin Tick Replay, el histórico no tiene bid\/ask\u003c\/strong\u003e y todas las velas anteriores a la conexión salen neutras. El indicador lo avisa en pantalla en lugar de mostrar un gráfico gris sin explicación.\u003c\/p\u003e\n\u003cp\u003eEn tiempo real el delta se toma de \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eOnMarketData\u003c\/code\u003e, que no necesita Tick Replay. El aviso desaparece en cuanto empiezan a llegar ticks.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCoste:\u003c\/strong\u003e Tick Replay carga todos los ticks del período, así que el arranque es más lento y consume más memoria. Si resulta excesivo, reducí los días cargados en la serie de datos.\u003c\/p\u003e\n\u003ch2 id=\"instalación\"\u003e\u003cspan style=\"font-size: 0.875rem;\"\u003eLimitaciones conocidas\u003c\/span\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eLa lectura es relativa, no absoluta.\u003c\/strong\u003e Una vela al color pleno significa «de las más fuertes de las últimas \u003ccode spellcheck=\"false\" autocapitalize=\"off\"\u003eNormWindow\u003c\/code\u003e barras», no un umbral fijo de contratos. Dos gráficos del mismo instrumento con distinto marco temporal mostrarán escalas distintas, y es correcto que así sea.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eDepende de la calidad del feed.\u003c\/strong\u003e Los prints que se ejecutan dentro del spread no se pueden clasificar y se descartan. En instrumentos poco líquidos, con spreads anchos, una parte del volumen queda fuera del cálculo.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTick Replay encarece el arranque.\u003c\/strong\u003e Cargar todos los ticks del período lleva tiempo y memoria. Con históricos largos puede ser notable.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNo sustituye a un perfil de volumen.\u003c\/strong\u003e BMChart dice quién agredió durante cada vela; no dice a qué precios dentro de la vela se negoció el volumen. Son lecturas complementarias.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSin señales de entrada.\u003c\/strong\u003e No dibuja flechas ni genera alertas. Es una capa de lectura, no un sistema de trading.\u003c\/p\u003e\n\u003ch2 id=\"aviso-legal\"\u003eAviso legal\u003c\/h2\u003e\n\u003cp\u003eEste producto no promete ni garantiza resultados. El coloreado por delta es una herramienta de lectura de mercado: la interpretación y las decisiones de trading son responsabilidad del usuario. Se recomienda validar su comportamiento en simulación antes de operar en real.\u003c\/p\u003e\n\u003ch4 dir=\"ltr\" style=\"text-align: center;\"\u003e\n\u003cem\u003eNinjaTrader® es una marca \u003c\/em\u003e\u003cem\u003eregistrada de NinjaTrader Group, LLC. Ninguna compañía de NinjaTrader tiene afiliación alguno \u003c\/em\u003e\u003cem\u003econ el dueño, desarrollador o proveedor de los productos descritos aquí, o interés alguno, \u003c\/em\u003e\u003cem\u003ees dueño de ningún producto o servicio, ni apoya\/promueve, recomienda ningún producto \u003c\/em\u003e\u003cem\u003eo servicio.\u003c\/em\u003e\u003cstrong\u003e\u003ci\u003e\u003c\/i\u003e\u003c\/strong\u003e\n\u003c\/h4\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":51565019136306,"sku":"BMCTY","price":100.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/chartstyle.png?v=1790223842","url":"https:\/\/ekaitrading.com\/products\/bm-chart","provider":"EKAITRADING","version":"1.0","type":"link"}