Estrategias de negociación basadas en filtros digitales - página 81

 

Indicador de base

Pava:
¿como cambiar el indicador base en el extrapolador?

Pava,

Pon el indicador base que quieres usar aquí y yo haré el mod por ti, si es un "indicador secreto" que no quieres poner, sólo cambia la línea de código como se sugiere en los posts anteriores.

Si, por ejemplo, quieres hacer el Fourier Extr de RSI debes añadir a los parámetros de entrada lo siguiente...

extern int RSIPeriod = 14;

Y, a continuación, cambiar esta línea de código :

in=0.5+iWPR(NULL,0,50,i+lb)/100.0; //cambiar el indicador aquí

Para este

in=0.5+iRSI(NULL, 0, RSIPeriod,0,i+lb)/100.0; //cambiar el indicador aquí

Saludos

S

 

lo siento

Quiero pedir disculpas públicamente a simba por mi comportamiento en este hilo con ella, lo siento si te he ofendido ....

 

problema

¿efectivamente para hacer la transformada de Fourier rsi mostrarme que?: 'in' - expresión en el ámbito global no se permite C: \ Archivos de programa \ WHC Trader 4 \ ~ expertos \ ~ indicadores \ ~ RSI.mq4 (16, 1)

¿alguien sabe por qué?

 

FFTProblema

Ahora, antes de que todos crean que esto es el HG, quiero señalar que no lo es

Ver imagen adjunta...Gran problema aquí, si hubieras creído ciegamente en la señal de la FFT de WPR te habrías quedado corto antes de lo necesario.

Entonces, ¿esto significa que el FFt del indicador no es útil?...No...Puede ser muy útil si sabes cómo operar, básicamente hay 2 maneras...La primera es buscar la confirmación de la ruptura de la línea de tendencia, después del cambio de color del FFT, y evitar entrar en una operación hasta que el precio (cerca preferiblemente) cruce la línea de tendencia...El segundo método lo explicaré en el próximo post.

Saludos

S

Archivos adjuntos:
fftproblem.gif  70 kb
 

y..

Perdona que te interrumpa, entonces, ¿el fft no puede hacer turnos como en la imagen? ¿repintar?

Archivos adjuntos:
gbpjpyh4.jpg  266 kb
 

FFTSolution

Hay más formas de utilizar estos indicadores, pero la línea de tendencia y el que voy a explicar ahora son la base para operar con este tipo de herramientas, a continuación, puede combinar ambos o añadir la confirmación MTF ... Pero, la base son estos 2 métodos.

Segundo Método:

1-TrendFilter: Ver imagen FTTSolution1...Utilizar un FFT con un indicador base de periodo entre 200 y 300 barras, en este caso he utilizado un RSI de 250 periodos...Y Armónicos=1...Este será tu filtro de tendencia, y el efecto de redibujado es insignificante...por lo que, una vez que se ponga en ROJO, sólo podrás hacer operaciones cortas.

2-Disparo de entrada: Ver imagen FFTSolution2...Añade al gráfico un segundo indicador FFT con periodo normal (en este caso RSI=14) y armónicos entre 5 y 25 (yo usé 25 para el ejemplo)...Si el trendfilter señala una tendencia bajista, entras cuando el Trigger señala una tendencia bajista también...ver las zonas azules que marqué en el gráfico...Puedes salir por TP, o, obligatoriamente, por cambio de color....En el caso señalado hubo 5 entradas, 3 de ellas marginalmente rentables, 2 de ellas muy buenas operaciones....

Esto tampoco es el HG,PERO es una muy buena estrategia para operar de forma segura y rentable.

SUGERENCIAS:

1-No seas avaricioso,utiliza la línea de tendencia,o este método,o ambos...NO anticipes el cambio de tendencia..Utiliza siempre un filtro de tendencia basado en ,al menos H1 con >200 periodos.

2-Mi comentario habitual sobre los Timeframes inferiores...Utilícelo en/por encima de H1..Si realmente tiene que utilizarlo en m1,m5,m15, hágalo, sólo si los TRENDFILTERS de m15 y h1(>200 periodos) están AMBOS señalando en la misma dirección.

3-Las mejores entradas se hacen si eres extremadamente paciente y esperas a la configuración correcta... Ver la última entrada (área azul) en el segundo gráfico... La tendencia era a la baja, hubo un tipo de retroceso ABCD que retrocedió más del 50% del movimiento bajista anterior (alrededor del 80%) y luego una entrada de disparo.

4-Los armónicos altos (25) son más rápidos pero pueden repintar, normalmente en dirección contraria a la tendencia, puedes usarlos para el Trigger si operas en la dirección de la tendencia, pero, preferiblemente, usa sólo 5 armónicos... tendrás menos operaciones pero cogerás las rentables.

5-Practica tus setups y triggers con el Visual Tester,hazte a la idea,para varios timeframes y varios pares.

Saludos

S

Archivos adjuntos:
 

Ok

learntrader:
Quiero pedir disculpas públicamente a simba por mi comportamiento en este hilo con él, perdona si te he ofendido ....
learntrader:
de hecho para hacer la transformada de Fourier rsi mostrarme que?: 'en' - expresión en el ámbito global no se permite C: \ Archivos de programa \ WHC Trader 4 \ expertos \ indicadores \ RSI.mq4 (16, 1) alguien sabe por qué?
learntrader:
Perdonad que os interrumpa, entonces, ¿el fft no puede dar vueltas como en la imagen? ¿repintar?

Dario,

1-Acepto tus disculpas.

2-Ver adjunto en este post la FFT del RSI,he modificado los indicadores de Leledc,ya que tiene todas las campanas y silbatos.

3-La FFT puede tomar esos giros,el tema más importante es el indicador base que utilices...La FFT puede repintar a lo loco,o puede ser muy estable,Si la utilizas como expliqué en mi anterior post,combinarás un filtro direccional estable con un "turncatcher" rápido(propenso a los redibujos o repintados)...la clave es que al combinarlos minimizas los peligros de los repintados y te beneficias de las entradas direccionales rápidas.

Leledc

Gracias por la modificación de tu indicador.

Saludos

S

 
SIMBA:
Dario,

1-Acepto tus disculpas.

2-Ver adjunto en este post la FFT del RSI,he modificado los indicadores de Leledc,ya que tiene todas las campanas y silbatos.

3-La FFT puede tomar esos giros,el tema más importante es el indicador base que utilices...La FFT puede repintar a lo loco,o puede ser muy estable,Si la utilizas como expliqué en mi anterior post,combinarás un filtro direccional estable con un "turncatcher" rápido(propenso a los redibujos o repintados)...la clave es que al combinarlos minimizas los peligros de los repintados y te beneficias de las entradas direccionales rápidas.

Leledc

Gracias por la modificación de tu indicador.

Saludos

S

¡¡¡¡Me alegra mucho saber esto de ti!!!!

 

Filtro Gaussiano

Hola tengo una función de tradestation:me gustaría convertirla en mql(para portar un indi de tradestation en mt4).Abajo el original y mi versión de la función en mql.No funciona bien así que me gustaría una ayuda de algún experto aquí.gracias

Easylanguage

{Gaussian Filter}

Inputs: Price(NumericSeries), iptPeriod(NumericSimple), iptPoles(NumericSimple);

variables: aa(0), b(0), w(0), x(0), y(0), y1(0), y2(0), y3(0), y4(0),

a_1(0), a_12(0), a_13(0), a_14(0), a2(0), a3(0), a4(0), Pi(3.141592654),

sqrtOf2(1.414213562), Period(2), poles(0);

if (iptPeriod < 2) then

Period = 2

else

Period = iptPeriod;

// Number of filter poles must be between 1 and 4, inclusive

if iptPoles < 1 then

poles = 1

else if iptPoles > 4 then

poles = 4

else

poles = iptPoles;

// initialization - performed only for first bar

if CurrentBar = 1 then

begin

w = 2 * Pi / Period; // omega

w = 180 * w / Pi; // in degrees

b = (1 - cosine(w)) / (power(sqrtOf2, 2.0/poles) - 1.0);

aa = -b + squareroot(b*b + 2*b);

a_1 = 1.0 - aa;

a_12 = a_1 * a_1;

a_13 = a_1 * a_1 * a_1;

a_14 = a_12 * a_12;

a2 = aa * aa;

a3 = aa * aa * aa;

a4 = a2 * a2;

y1 = Price;

y2 = y1;

y3 = y2;

y4 = y3;

end;

{ Calculate your indicator value here }

x = Price;

if (poles = 1) then

y = aa * x + a_1 * y1

else if (poles = 2) then

y = a2 * x + 2 * a_1 * y1 - a_12 * y2

else if (poles = 3) then

y = a3 * x + 3 * a_1 * y1 - 3 * a_12 * y2 + a_13 * y3

else if (poles = 4) then

y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4;

y4 = y3; // delayed by four bars

y3 = y2; // delayed by three bars

y2 = y1; // delayed by two bars

y1 = y; // delayed by one bar

Gauss = y;

[/php]Mql

[php]

double Gauss(double Price, double iptPeriod,double iptPoles){

double aa, b, w, x, y, y1, y2, y3, y4,a_1, a_12, a_13, a_14, a2, a3, a4;

double Pi=3.141592654;

double period=21, poles;

if (iptPeriod < 2)

period = 2;

else

period = iptPeriod;

if (iptPoles < 1){

poles = 1;

}

else if (iptPoles > 4){

poles = 4;

}

else{

poles = iptPoles;

}

// initialization - performed only for first bar

for(int i = Price; i >= 0; i--){

w = 2 * Pi / period; // omega

w = 180 * w / Pi; // in degrees

b = (1 - MathCos(w)) / (MathPow(MathSqrt(2.0),2.0/poles) - 1.0);

aa = -b + MathSqrt(b*b + 2*b);

a_1 = 1.0 - aa;

a_12 = a_1 * a_1;

a_13 = a_1 * a_1 * a_1;

a_14 = a_12 * a_12;

a2 = aa * aa;

a3 = aa * aa * aa;

a4 = a2 * a2;

y1 = Price;

y2 = y1;

y3 = y2;

y4 = y3;

}

for(i = Price; i >= 0; i--){

x = Price;

y = a4 * x + 4 * a_1 * y1 - 6 * a_12 * y2 + 4 * a_13 * y3 - a_14 * y4;//we don't need y1 y2 y3 y4

}

return (y);

}

 

¡¡¡¡¡¡¡¡¡¡!!!!!!!!!!

Razón de la queja: