¡Pide! - página 169

 

Indicador Gráfico Offline

Kalenzo:
No hay nada especial que usted necesita para codificar dentro del indicador. Simplemente arrastra y suelta el indicador desde nagivator al gráfico offline y funcionará. Pruebe primero con los datos normales disponibles con metatrader, por ejemplo eurusd. Si el indicador funciona con el eurusd y no lo hace con el NYSE, significa que el indicador cuenta algo de manera incorrecta y necesita ser arreglado/ajustado (por ejemplo, tal vez necesita redondear o durante los cálculos genera un error como la división de cero).

Hola Kalenzo,

Gracias por tu respuesta. Los indicadores de la plataforma MT4 funcionan muy bien. Es un indicador personalizado que un individuo codificado que no funciona. Me he dado cuenta en el código de los símbolos de la moneda. Me preguntaba si tengo que cambiar los símbolos de los pares de divisas GBPUSD al símbolo de NYSE? También quería saber cómo funcionan los indicadores. ¿Qué datos en qué carpeta hacen los indicadores si los indicadores que se instalaron originalmente en la plataforma o es descargar un indicador codificado libre?

¡¡¡Gracias!!!

 
winsumloosesum:
Hola Kalenzo,

Gracias por su respuesta. Los indicadores de la plataforma MT4 funcionan muy bien. Es un indicador personalizado que un individuo codificado que no funciona. Me he dado cuenta en el código de los símbolos de la moneda. Me preguntaba si tengo que cambiar los símbolos de los pares de divisas GBPUSD al símbolo de NYSE? También quería saber cómo funcionan los indicadores. ¿Qué datos en qué carpeta hacen los indicadores si los indicadores que se instalaron originalmente en la plataforma o es descargar un indicador codificado libre?

¡¡¡Gracias!!!

¡Hola!

Sí, definitivamente necesita comprobar el código del indicador. Si su indicador no está usando la función Symbol() (o el valor NULL en lugar del símbolo donde se necesita) entonces es el problema para el 100%. Por lo general, el indicador transforma los datos del gráfico al que se adjuntan, por lo que los indicadores originales de MT4 funciona. Sin embargo, en los indicadores personalizados puedes tomar datos de otros símbolos/marcos de tiempo y entonces necesitas especificar manualmente qué datos deseas utilizar. Por ejemplo, usted puede usar EURUSD como base y usar también GBPUSD y USDCHF como algunos otros parámetros para el cálculo.

Usted necesita revisar el código del indicador, y cambiar los símbolos al NYSE que usted desea calcular. Entonces funcionará bien.

 

Gracias de nuevo por su ayuda

Gracias de nuevo por toda su ayuda.

 

Problema de depuración

Escribo un EA básico para entender el funcionamiento de los indicadores, pero me he llevado alguna sorpresa. Primero con el indy repintado y ahora con el indy muy básico.

Para entender los números uso una función print() para imprimir los valores en el informe de registro durante un backtest. Pero la función print parece perturbar la impresión del log y pierdo una gran parte del log. ¡quitando el print el log está completo con todas las órdenes!

¿Alguna idea? Aquí un extracto de mi código

//----+ DEFINIENDO LAS SEÑALES PARA LAS OPERACIONES

if (kline[1] < Level_Up) // por debajo del umbral

if (kline[0] > dline[0]) // Señal principal de sobreventa

if (kline[0] > kline[1]) // Principal debe subir

if (dline[0] > 0 ) { /La señal debe permanecer nostálgica en el nivel cero < dline[1]) { // Principal anterior bajo señal por lo que cruzamos al alza

Señal_de_compra = true;

if (Debug) {

Print ("Longopen K0 ",DoubleToStr(kline[0],Digits)," K1 ",DoubleToStr(kline[1],Digits),

" K2 ",DoubleToStr(kline[2],Dígitos), "K3 ",DoubleToStr(kline[3],Dígitos));

Print (" D0 ",DoubleToStr(dline[0],Digits)," D1 ",DoubleToStr(dline[1],Digits)," D2 ",DoubleToStr(dline[2],Digits),

" D3 ",DoubleToStr(dline[3],Digits));

}

}

Gracias por la ayuda

Marcel

 

¡Por favor, ayuda! No soy un codificador, pero estoy tratando de mi mejor aquí. ¡Cualquier consejo sobre por qué mi indicador no funciona sería muy apreciado!

Gracias de antemano

#property indicator_separate_window

#property indicator_buffers 4

#property indicator_color1 LimeGreen

#property indicator_color2 FireBrick

#property indicator_color3 Verde

#property indicator_color4 Rojo

#Propiedad indicator_width1 2

#Propiedad indicator_width2 2

#Propiedad indicator_width3 2

#property indicador_ancho4 2

//---------------------------------------------------------------------indicator parameters

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

//---------------------------------------------------------------------indicator buffers

double OsmaBuffer[];

double Spm

double Smm

double Spmaks1;

double Spmaks2

double Smmin1

double Smmin2;

double nou[];

double ver[];

double OsMAUP[];

double OsMADOWN[];

//+------------------------------------------------------------------+

//| Función de inicialización de los indicadores personalizados ||.

//+------------------------------------------------------------------+

int init()

{

//--------------------------------------------------------------------2 se utilizan buffers adicionales para el conteo.

IndicatorBuffers(4);

//--------------------------------------------------------------------drawing settings

SetIndexStyle(0,DRAW_HISTOGRAM);

SetIndexBuffer(0,OsMAUP);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexBuffer(1,OsMADOWN);

SetIndexStyle(2,DRAW_ARROW);

SetIndexArrow(2,159);

SetIndexBuffer(2,Spmaks1);

SetIndexStyle(3,DRAW_ARROW);

SetIndexArrow(3,159);

SetIndexBuffer(3,Smmin1);

SetIndexDrawBegin(0,SignalSMA);

IndicatorDigits(Digits+2);

//-------------------------------------------------------------------nombre para la etiqueta de la DataWindow y la subventana del indicador

IndicatorShortName("OsMA Marius("+FastEMA+", "+SlowEMA+", "+SignalSMA+")";

//-------------------------------------------------------------------initialization done

return(0);

}

//+------------------------------------------------------------------+

//| Promedio Móvil del Oscilador ||.

//+------------------------------------------------------------------+

int inicio()

{

int límite;

int counted_bars=IndicatorCounted();

//-------------------------------------------------------------------la última barra contada se volverá a contar

if(counted_bars>0) counted_bars--;

limit=Barras contadas_barras;

//-------------------------------------------------------------------Main Loop

for(int i=0; i<limit; i++)

{

OsmaBuffer=iOsMA(NULL,0,FastEMA,SlowEMA,SignalSMA,PRICE_WEIGHTED,i);

nou = OsmaBuffer;

ver = OsmaBuffer;

if(OsmaBuffer > 0)

{

OsMAUP = OsmaBuffer;

OsMADOWN = 0;

}

si no

{

OsMADOWN = OsmaBuffer;

OsMAUP = 0;

}

//-------------------------------------------------------------------Cross Down

si ((nou0))

{

Spmaks1 = Spmaks2;

if(Spmaks2 > 0)

{

Spmaks2 = 0;

}

}

//-------------------------------------------------------------------Cross Up

if ((nou>0)&&(ver<0))

{

Smmin1 = Smmin2;

if(Smmin2 < 0)

{

Smmin2 = 0;

}

}

//-------------------------------------------------------------------During Swing

if(ver > 0)

{

Spm = ver;

if((nou > ver) || (nou == ver))

{

Spm = nou;

}

if((Spm > Spmaks2) | (Spm == Spmaks2))

{

Spmaks2 = Spm;

}

}

si no

{

Smm = ver;

if((nou < ver) || (nou == ver))

{

Smm = nou;

}

if((Smm < Smmin2) || (Smm == Smmin2))

{

Smmin2 = Smm;

}

}

}

//--------------------------------------------------------------------done

return(0);

}

//+------------------------------------------------------------------+

 

Cómo trazar la línea entre las últimas 20 barras

¡Tengo una pregunta!

Quiero tener un indicador de media móvil.

Siempre dibuja la línea entre las últimas 20 barras

Pero no sé cómo escribirlo

Espero que me puedan ayudar y ofrecer un indicador como este .

¡Muchas gracias!

 

Paz a todos,

Espero que todo esté bien con todos.

Mi pregunta es bastante simple para aquellos calificados en el área de programación:

Tengo un e.a. creado profesionalmente para mí, utilizando 3 indicadores en su estado crudo. Es un sistema de 4 estrategias codificadas en un e.a. donde los 3 indicadores se negocian en diferentes combinaciones. Sólo un poco de historia, pero esta parte es realmente irrelevante.

Los 3 indicadores utilizan dos buffers cada uno y la única variable que tenían era "CountBars". Como estaban en un estado en el que no eran optimizables, siendo que la única opción ajustable era "CountBars", tuve la brillante idea de usar el algoritmo de Jurik como una especie de preprocesamiento. De esta manera podría mantener la crudeza del indicador, es decir, que reaccionara rápidamente pero con varios "contratiempos", y al mismo tiempo añadir un factor de suavización que siguiera siendo muy sensible y, al mismo tiempo, con poco retardo. Así que le pedí a un conocido miembro de este foro que me ayudara con esa parte del proyecto, lo que hicieron y de forma bastante impecable, debo añadir. Sin embargo, ya que fueron más allá de la llamada del deber, no quise pedirles que me hicieran más favores, es decir, cambiar las nuevas versiones suavizadas de Jurik de los mismos indicadores en lugar de sus subordinados crudos.

Dicho esto, pensé: "¿Qué tan difícil puede ser?" Pensé que sabía lo suficiente como para hacerlo yo mismo. Solo cambie los nombres que son llamados en las 3 instancias de iCustom, agregue las nuevas variables en la parte "externa" así como abajo en la parte de iCustoms, (Ahora las versiones smthd de JRK de los indicadores siguen usando 2 buffers pero tienen una variable extra, 2 en total: "SmoothLength" y "SmoothPhase". "CountBars" fue eliminado) y ¡¡¡Voila!!! Si sólo fuera tan fácil. Hice esas cosas y lo compilé, sin errores/advertencias. Sin embargo, cuando intento hacer un backtest/forward test, no hay operaciones.....

¿Me falta algo? Cualquier consejo será muy apreciado.

 

¡Bizzzzzump!

 
forex_for_life:
Paz a todos,

Espero que todo esté bien con todos.

Mi pregunta es bastante simple para aquellos calificados en el área de programación:

Tengo un EA creado profesionalmente para mí, utilizando 3 indicadores en su estado crudo. Es un sistema de 4 estrategias codificadas en un e.a. donde los 3 indicadores se negocian en diferentes combinaciones. Sólo un poco de historia, pero esta parte es realmente irrelevante.

Los 3 indicadores utilizan dos buffers cada uno y la única variable que tenían era "CountBars". Como estaban en un estado en el que no eran optimizables, siendo que la única opción ajustable era "CountBars", tuve la brillante idea de usar el algoritmo de Jurik como una especie de preprocesamiento. De esta manera podría mantener la crudeza del indicador, es decir, que reaccionara rápidamente pero con varios "contratiempos", y al mismo tiempo añadir un factor de suavización que siguiera siendo muy sensible y, al mismo tiempo, con poco retardo. Así que le pedí a un conocido miembro de este foro que me ayudara con esa parte del proyecto, lo que hicieron y de forma bastante impecable, debo añadir. Sin embargo, debido a que fueron más allá de la llamada del deber, no quise pedirles que me hicieran más favores, es decir, cambiar las nuevas versiones suavizadas de Jurik de los mismos indicadores en lugar de sus subordinados crudos.

Dicho esto, pensé: "¿Qué tan difícil puede ser?" Pensé que sabía lo suficiente como para hacerlo yo mismo. Solo cambie los nombres que son llamados en las 3 instancias de iCustom, agregue las nuevas variables en la parte "externa" así como abajo en la parte de iCustoms, (Ahora las versiones smthd de JRK de los indicadores siguen usando 2 buffers pero tienen una variable extra, 2 en total: "SmoothLength" y "SmoothPhase". "CountBars" fue eliminado) y ¡¡¡Voila!!! Si sólo fuera tan fácil. Hice esas cosas y lo compilé, sin errores/advertencias. Sin embargo, cuando intento hacer un backtest/forward test, no hay operaciones.....

¿Me estoy perdiendo algo? Cualquier consejo será muy apreciado.

Hola Ffl,

Prueba con iCustom(NULL,0," nombre del indicador" SmoothLength,SmoothPhase,0,1) para la compra y con iCustom(NULL,0," nombre del indicador" SmoothLength,SmoothPhase,1,1), para la venta sólo cambia el "nombre del indicador" por el indicador que estás intentando llamar.

 
mrtools:
Hola Ffl, Prueba iCustom(NULL,0," nombre del indicador" SmoothLength,SmoothPhase,0,1) para la compra y iCustom(NULL,0," nombre del indicador" SmoothLength,SmoothPhase,1,1), para la venta solo cambia el "nombre del indicador" por el indicador que estas tratando de llamar.

Paz Sr. T,

Gracias por la orientación. Hice esos cambios basados en su sugerencia y E.A. todavía compila sin errores/advertencias pero también todavía no coloca ninguna operación. Intentaré una solución más en breve .....