Conversión indicador Total Power Indicator
Forums › ProRealTime foro Español › Soporte ProBuilder › Conversión indicador Total Power Indicator
- This topic has 2 replies, 2 voices, and was last updated 4 years ago by cjr30.
Tagged: power, total, Total Power
-
-
01/23/2020 at 6:56 PM #117635
Buenas tardes,
Llevo bastante tiempo intentando convertir este indicador a Prorealtime. Lo tengo tanto en mql4 como en Tradingview, pero soy incapaz, no salen los mismos resultados.
El indicador Total Power se basa en dos indicadores estándar: Bears Power y Bulls Power.
El indicador calcula el número de barras de tendencia alcista y bajista dentro de un cierto periodo de tiempo y luego determina una relación proporcional entre los osos, toros y el total de la barra actual (la relación total se calcula como la diferencia entre los toros y los osos).
Por lo tanto, obtenemos las líneas continuas de la potencia media relativa alcista y bajista para un determinado periodo de tiempo sin el mayor inconveniente que los indicadores originales – la ausencia de perspectiva a largo plazo. El indicador Total Power fue creado por Daniel Fernandez .
Parámetros de entrada:
- LookbackPeriod (por defecto= 45) – Determina el número de barras para el cálculo de prevalencia alcista/bajista.
- PowerPeriod (por defecto = 10) – Bears Power y Bulls Power periodo original del indicador
El indicador se presenta en dos versiones.
Existen varias formas diferentes de utilizar este indicador:
- El método más fiable (aunque también el más lento) es esperar mientras las líneas alcistas (o bajistas en caso de venta) y Total Power indican 100 y luego abran una posición larga (o una corta si son la líneas bajistas).
- Trazos bajistas y alcistas pueden utilizarse también para el trading. En el caso de que la línea alcista se encuentre por encima una bajista después del cruce, entonces es momento de comprar, en caso de una situación inversa, se debe abrir una posición corta.
- Cruce de líneas alcista y bajista con una Total Power puede utilizarse tanto para el mercado de entrada como el de salida. Si la línea alcista cruza una Total desde abajo, es hora de abrir una posición larga, si la línea bajista cruza una Total desde abajo, se debe abrir una posición corta. Si las líneas cruzan una Total desde arriba, es el momento de cerrar la posición apropiada.
- La alternativa es utilizar algunos niveles definidos del indicador en lugar de los cruces de líneas. Por ejemplo, se puede abrir una posición en largo/corto, si la línea alcista/bajista se mueve por encima del nivel 66.
Un saludo
Adjunto tanto código de tradingview como mql4 y captura de imagen
123456789101112131415161718192021222324252627282930//@version=3// Copyright (c) 2018-present, Alex Orekhov (everget)// Total Power Indicator script may be freely distributed under the MIT license.study("Total Power Indicator", shorttitle="TPI")length = input(title="Length", type=integer, defval=45)powersLength = input(title="Elder Powers Length", type=integer, defval=10)adjustableLevel = input(title="Adjustable Entry Level", type=integer, defval=75)applyFilling = input(title="Apply Powers Filling ?", type=bool, defval=false)elderBullPower = high - ema(close, powersLength)elderBearPower = low - ema(close, powersLength)adjust(value) => 100 * value / lengthbullCount = sum(elderBullPower > 0 ? 1 : 0, length)bearCount = sum(elderBearPower < 0 ? 1 : 0, length)total = adjust(abs(bullCount - bearCount))bull = adjust(bullCount)bear = adjust(bearCount)bullPlot = plot(bull, title="Bull", linewidth=2, color=#0ebb23, transp=0)bearPlot = plot(bear, title="Bear", linewidth=2, color=red, transp=0)plot(total, title="Total", linewidth=2, color=#3c78d8, transp=0)fillColor = applyFilling ? (bull > bear ? #0ebb23 : red) : color(white, 100)fill(bullPlot, bearPlot, color=fillColor, transp=80)hline(adjustableLevel, title="Adjustable Entry Level", linestyle=dotted)hline(50, title="Middle Level", linestyle=dotted, color=#f49517)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889#property indicator_separate_window#property indicator_minimum -20#property indicator_maximum 120#property indicator_buffers 3#property indicator_color1 LightSeaGreen#property indicator_color2 Crimson#property indicator_color3 DarkGreenextern int lookback_period = 45;extern int power_period = 10 ;//---- buffersdouble power[];double bearbuffer[];double bullbuffer[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int init(){//---- 2 additional buffers are used for counting.IndicatorBuffers(3);//---- indicator linesSetIndexStyle(0,DRAW_LINE, 1, 2);SetIndexBuffer(0, power);SetIndexStyle(1,DRAW_LINE, 1, 2);SetIndexBuffer(1, bearbuffer);SetIndexStyle(2,DRAW_LINE, 1, 2);SetIndexBuffer(2, bullbuffer);SetLevelValue (0, 0);SetLevelValue (1, 50);SetLevelValue (2, 100);return(0);}//+------------------------------------------------------------------+//| Net Power |//+------------------------------------------------------------------+int start(){int i,k;int counted_bars=IndicatorCounted();//----if(Bars<= power_period) return(0);//---- initial zeroif(counted_bars<1)for(i=1;i<=power_period;i++) power[Bars-i]=0.0;//----i=Bars-counted_bars-1;while (i >= 0){Comment("Implemented by Daniel Fernandez, Asirikuy.com 2011");int bearcount = 0 ;int bullcount = 0 ;k = 0 ;while (k <= lookback_period - 1 ){double bear = iBearsPower(NULL,0,power_period, PRICE_CLOSE, k+i) ;double bull = iBullsPower(NULL,0,power_period, PRICE_CLOSE, k+i) ;if (bear < 0 )bearcount++ ;if (bull > 0 )bullcount++ ;k++ ;}power[i] = MathAbs(bullcount-bearcount)*100/lookback_period ;bearbuffer[i] = bearcount*100/lookback_period ;bullbuffer[i] = bullcount*100/lookback_period ;i-- ;}return(0);}01/24/2020 at 3:11 PM #117713Gracias por la publicación bien formateada sobre una traducción de código, agradezco el esfuerzo realizado 🙂 ¡Siempre es agradable encontrar personas que respetan reglas simples! Aquí está el código traducido para ser utilizado en ProRealTime:
123456789101112131415lookbackperiod = 45powerperiod = 10ema = exponentialaverage[powerperiod](close)BullPower = high - emaBearPower = low - emabearcount = summation[lookbackperiod](bearpower<0)bullcount = summation[lookbackperiod](bullpower>0)power = Abs(bullcount-bearcount)*100/lookbackperiodbearbuffer = bearcount*100/lookbackperiodbullbuffer = bullcount*100/lookbackperiodreturn power coloured(32,178,170), bearbuffer coloured(220,20,60), bullbuffer coloured(0,100,0)01/24/2020 at 3:21 PM #117720 -
AuthorPosts
Find exclusive trading pro-tools on