[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 498
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) la función obtiene la señal de cruce.
intGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) la función recibe la señal del estocástico.
La función void GetMomentumSignal() obtiene el valor del impulso.
La función int GetSignal() obtendrá la señal general basada en las 3 funciones anteriores y no sólo en ellas. La cuestión es la siguiente. Como la funciónint GetSignal() es la principal, por así decirlo, y obtiene la señal principal, obtengo todos los valores de los flaps(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) y de los estocásticos(stochD1,stochD2,stochK1,stochK2)
No me gusta hurgar en el código de la izquierda, pero enseguida me llamó la atención por qué hay una & (!) después de doble en las funciones. Esto es lo que provoca los errores.
borilunad: No me gusta hurgar en el código personalizado, pero enseguida me di cuenta de por qué hay & (!) después del doble en las funciones. Esto es lo que provoca los errores.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y intGetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular la misma máscara en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué gastar recursos adicionales en esto?
Así que tiene sentido. Se trata de transferir parámetros a través de enlaces.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y intGetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular las mismas máscaras en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué gastar recursos adicionales en esto?
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) la función obtiene la señal de cruce.
intGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) la función recibe la señal del estocástico.
La función void GetMomentumSignal() obtiene el valor del impulso.
La función int GetSignal() obtendrá la señal general basada en las 3 funciones anteriores y no sólo en ellas. La cuestión es la siguiente. Como la funciónint GetSignal() es la principal, por así decirlo, y obtiene la señal principal, obtengo todos los valores de los flaps(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) y de los estocásticos(stochD1,stochD2,stochK1,stochK2)
¿He hecho bien en optimizar el código?
Por supuesto, todos los parámetros obtenidos en la funciónGetSignal() se pasan por referencia a las funciones correspondientes.
Pero aquí este fragmento
hay un error durante la compilación:
¿Por qué?
Esto puede ser una variante de la búsqueda de señales en la barra que necesitamos:
//+---------------------------------------------------------------------------------------+//| Проверка пересечения скользящих средних |//+---------------------------------------------------------------------------------------+int GetCrossingMa (int fi_Bar = 1)
{
double i_maFast1 = iMA (Symbol(), i_TF, i_maFastPeriod, i_maFastShift, i_maFastMethod, 0, fi_Bar), // Вычисляем быстрые скользящие..
i_maFast2 = iMA (Symbol(), i_TF, i_maFastPeriod, i_maFastShift, i_maFastMethod, 0, fi_Bar + 1), //..средние
i_maSlow1 = iMA (Symbol(), i_TF, i_maSlowPeriod, i_maSlowShift, i_maSlowMethod, 0, fi_Bar), // Вычисляем медленные скользящие..
i_maSlow2 = iMA (Symbol(), i_TF, i_maSlowPeriod, i_maSlowShift, i_maSlowMethod, 0, fi_Bar + 1); //..средние//----if (i_maFast2 < i_maSlow2) if (i_maFast1 > i_maSlow1) // Если быстрая скользящая пересекла медленную снизу вверх..return (CROSSINGTOUP); //.. значит, - пересечение вверхif (i_maFast2 > i_maSlow2) if (i_maFast1 < i_maSlow1) // Если быстрая скользящая средняя пересекла медленную сверху вниз..return (CROSSINGTODOWN); //..значит, - пересечение вниз//----return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Стохастика |//+---------------------------------------------------------------------------------------+int GetStochSignal (int fi_Bar = 1)
{
double stochD1 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 1, fi_Bar), // Вычисляем значения сигнальной линии..
stochD2 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 1, fi_Bar + 1), //..стохастика
stochK1 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 0, fi_Bar), // Вычисляем значения главной линии..
stochK2 = iStochastic (Symbol(), i_TF, i_stoch_D, i_stoch_K, i_stoch_slowing, 0, 0, 0, fi_Bar + 1); //..стохастика//----if (stochD2 < stochK2) if (stochD1 > stochK1) // Если сигнальная линия пересекла главную снизу вверх..return (CROSSINGTOUP); //..значит, - пересечение вверхif (stochD2 > stochK2) if (stochD1 < stochK1) // Если сигнальная линия пересекла главную сверху вниз..return (CROSSINGTODOWN); // ..значит, - пересечение вниз
}
//----return (CROSSINGWAIT); // Ожидаем пересечения
}
//+---------------------------------------------------------------------------------------+//| Получение сигнала от Моментума |//+---------------------------------------------------------------------------------------+double GetMomentumSignal (int fi_Bar = 0)
{return (iMomentum (Symbol(), i_TF, i_momPeriod, 0, fi_Bar));}
//+---------------------------------------------------------------------------------------+//| Получение общего сигнала для входа в рынок |//+---------------------------------------------------------------------------------------+int GetSignal (int fi_Bar = 1)
{
int li_Signal;
//----double ld_SignalMomentum = GetMomentumSignal (fi_Bar);
int li_SignalStoch = GetStochSignal (fi_Bar),
li_CrossingMA = GetCrossingMa (fi_Bar);
//----return (li_Signal);
}
Y en la última función GetSignal() haces una "suma" de todas las señales (por ti mismo).
P.D. Hay un momento "delicado" en la obtención de la señal del indicador. Por ejemplo, se puede fijar el hecho de que maSlow esté por encima/por debajo de maFast, o se puede "coger" el momento de su intersección. El enfoque y el código son diferentes.
Así que tiene sentido. Se trata de transferir parámetros a través de enlaces.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y intGetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular las mismas máscaras en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué malgastar recursos adicionales en ello?
Las explicaciones son claras, pero las acciones no. Son estos: "Lafunción int GetSignal() obtiene valores de escalas y otros indicadores" las acciones en su variante son "cuestionables", por decirlo suavemente, porque no hay necesidad de tales acciones.
completo P.... ¿Te das cuenta de lo que está "pasando" aquí? - Se busca en vano toda la "fila de la barra", y al final del bucle, las variables quedan con valores... Adivina lo que pasa después.
Buenos días amigos! ¿Pueden decirle a un profesional cómo empezar a utilizar la plataforma de comercio NZ MT4? No puedo entender la interfaz de la plataforma, por dónde empezar, me refiero a una cuenta demo, cómo comprar una acción con la posterior venta?
¿Es necesario crear programas separados (tareas) para desactivar los terminales habilitados?
Aquí está mi tutorial de búho crudo de prueba:
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) la función obtiene la señal de cruce.
intGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) la función recibe la señal del estocástico.
La función void GetMomentumSignal() obtiene el valor del impulso.
La función int GetSignal() obtendrá la señal general basada en las 3 funciones anteriores y no sólo en ellas. La cuestión es la siguiente. Como la funciónint GetSignal() es la principal, por así decirlo, y obtiene la señal principal, obtengo todos los valores de los flaps(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) y de los estocásticos(stochD1,stochD2,stochK1,stochK2)
¿He hecho bien en optimizar el código?
Por supuesto, todos los parámetros obtenidos en la funciónGetSignal() se pasan por referencia a las funciones correspondientes.
Pero aquí este fragmento
hay un error en la compilación:
Aquí está mi tutorial de búho crudo de prueba:
Aparece un error al compilar:
Porque sí:
No me gusta hurgar en el código personalizado, pero enseguida me di cuenta de por qué hay & (!) después del doble en las funciones. Esto es lo que provoca los errores.
Así que tiene sentido. Se trata de transferir parámetros a través de enlaces.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y int GetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular la misma máscara en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué gastar recursos adicionales en esto?
Así que tiene sentido. Se trata de transferir parámetros a través de enlaces.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y int GetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular las mismas máscaras en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué gastar recursos adicionales en esto?
¿Has programado en otro lenguaje que no sea µl4?
Aquí está mi tutorial de búho crudo de prueba:
int GetCrossingMa(double& i_maFast1, double& i_maFast2, double& i_maSlow1, double& i_maSlow2) la función obtiene la señal de cruce.
intGetStochSignal(double& stochD1, double& stochD2, double& stochK1, double& stochK2) la función recibe la señal del estocástico.
La función void GetMomentumSignal() obtiene el valor del impulso.
La función int GetSignal() obtendrá la señal general basada en las 3 funciones anteriores y no sólo en ellas. La cuestión es la siguiente. Como la funciónint GetSignal() es la principal, por así decirlo, y obtiene la señal principal, obtengo todos los valores de los flaps(i_maFast1,i_maFast2, i_maSlow1 ei_maSlow2) y de los estocásticos(stochD1,stochD2,stochK1,stochK2)
¿He hecho bien en optimizar el código?
Por supuesto, todos los parámetros obtenidos en la funciónGetSignal() se pasan por referencia a las funciones correspondientes.
Pero aquí este fragmento
hay un error durante la compilación:
Esto puede ser una variante de la búsqueda de señales en la barra que necesitamos:
Y en la última función GetSignal() haces una "suma" de todas las señales (por ti mismo).
P.D. Hay un momento "delicado" en la obtención de la señal del indicador. Por ejemplo, se puede fijar el hecho de que maSlow esté por encima/por debajo de maFast, o se puede "coger" el momento de su intersección. El enfoque y el código son diferentes.
¿Has programado en otro lenguaje que no sea µl4?
Así que tiene sentido. Se trata de transferir parámetros a través de enlaces.
Para evitar explicar el código en detalle, lo explicaré brevemente.
Hay 3 funciones:(int GetCrossingMa, int GetStochSignal y int GetSignal())
La función int GetSignal() obtiene los valores de los flaps y otros indicadores que se pasan por referenciaa las funcionesno centrales(int GetCrossingMa eint GetStochSignal) para obtener las señales correspondientes en ellas. Quiero hacerlo para evitar obtener los mismos datos en diferentes funciones. No creo que sea prudente calcular las mismas máscaras en 2 o más funciones. Es más fácil calcularlo una vez y ya está. ¿Por qué malgastar recursos adicionales en ello?
Las explicaciones son claras, pero las acciones no.
Son estos: "Lafunción int GetSignal() obtiene valores de escalas y otros indicadores" las acciones en su variante son "cuestionables", por decirlo suavemente, porque no hay necesidad de tales acciones.
Este código:
completo P.... ¿Te das cuenta de lo que está "pasando" aquí? - Se busca en vano toda la "fila de la barra", y al final del bucle, las variables quedan con valores... Adivina lo que pasa después.