[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 776

 
vasya_vasya:
creando un objeto errow donde se selecciona el código del símbolo o utilizando un objeto label

Gracias) Eh, es una pena que no haya puntos(
 
FoxUA:
No soy un trabajador, pero estoy tratando de escribir un Asesor Experto para la semana que he estado trabajando. Estoy tratando de escribir un EA para un trabajo, pero he aprendido más que su nombre y aplicación hace sólo una semana, No sé para qué sirve, pero me imaginé que es difícil desmontar las cosas sin saber para qué sirven, así que decidí intentar hacer algo nuevo, pero claro, no se ve todo, sólo hice lo que quería hacer: quitar la orden REMOTA al precio REMOTO y es una obviedad. PERO GRACIAS POR SU TIEMPO,

No te ofendas. Su código es complicado para un principiante. Hay que ir de lo simple a lo complejo. Debe haber un enfoque sistemático del aprendizaje, de lo contrario no servirá de nada.
 
¿Puedo utilizar mql4 para averiguar el número de barra o cualquier parámetro de precio de esta barra que no esté en el período actual del gráfico, si se conoce la hora de su apertura (de esta barra)?
 
drknn:

No se ofenda. Su código es complicado para un principiante. Hay que ir de lo simple a lo complejo. Hay que tener un enfoque sistemático del aprendizaje, de lo contrario no servirá de nada.

En eso no estoy de acuerdo contigo, debes tener un objetivo en mente y lo demás vendrá por añadidura, pero necesitas ayuda. En cuanto a la complejidad, ¿qué no es tan complicado y simple con el robot de trading de ejemplo? No estoy haciendo un gran EA con cálculos complicados, sino uno simple que abre el mercado y pende, luego modifica y borra toda la tabla para aprender el funcionamiento y los métodos de afectar al otro!
 
FoxUA:

No estoy de acuerdo con usted allí, usted debe tener un propósito, todo lo demás seguirá, pero, por supuesto, no se puede hacer sin ayuda. En cuanto a la complejidad, lo que usted piensa que es simple y fácil de construir? No estoy haciendo un gran EA con cálculos e indicadores complejos, pero uno simple que abre el mercado uno, entonces modifica y elimina toda la tabla para aprender el principio de funcionamiento y los métodos de afectar a la otra!


Cambiar la lógica de la construcción del código y la lógica de la denominación de las variables. Esto es lo primero que debes hacer. No pasa nada si el nombre de una variable tiene más de 5 caracteres. En la lucha por la claridad del código, la claridad de los nombres, la delimitación de los bloques con espacios, los signos de párrafo y los comentarios es condenadamente importante. Cuanto más aprendas un lenguaje (y no sólo MQL), más complicado será tu código. Si no te acostumbras a dar nombres de variables fáciles de leer, y si no te acostumbras a organizar el código en bloques (con explicaciones), tarde o temprano crearás un código en el que te costará encontrar el error lógico, maldiciéndote por hacer tu código tan ilegible.

Si el código que has mostrado no te parece complicado como principiante, eso es una ventaja para ti.

 
FoxUA:
¿qué me recomiendas? ¡Me interesaría mucho tu opinión!

He aquí un ejemplo de código organizado en bloques y en el que los nombres de las variables no plantean dudas sobre el motivo por el que se aplica una determinada variable - fíjate en sus nombres, en los comentarios de los bloques...

 
RekkeR:
Buenas noches a todos y que tengan una buena semana. Supongo que estoy siendo tonto con el calor, en realidad la pregunta es ¿cómo determinar la distancia entre las líneas en pips?

Speed1=(Price12-Price11)/(Bar11-Bar12); Speed2=(Price22-Price21)/(Bar21-Bar22);

Price1=Price11+Speed1*Bar11; Price2=Price21+Speed2*Bar21;

Distancia=(Precio1-Precio2)/Punto;

Esto es si se quiere determinar la distancia entre dos líneas en el momento actual.

 
drknn:

He aquí un ejemplo de código que está organizado en bloques y en el que los nombres de las variables no provocan dudas sobre el porqué de tal o cual variable - fíjate en sus nombres, en los comentarios de los bloques...

Estoy de acuerdo con el hecho de que a veces se necesita para recordar lo que quería escribir allí y no se acuerdan, pero es más un método de trabajo, pero no un estudio, es por así decirlo el pincel en las manos de un artista, y estoy interesado en la elección de los colores y las técnicas para la escritura de un pequeño cuadro simple, porque ya tengo un paisaje y se forma claramente, ¡así que me preguntaba si es posible tener en la mano un libro interesante que describa la técnica de escritura para en todo lo mismo en Internet y en el libro de texto, sólo en otras palabras y lo que escribió en el ejemplo de las raíces, es una técnica de la robótica por lo que sería feliz de leer si los ejemplos y las imágenes!

 
tara:

Speed1=(Price12-Price11)/(Bar11-Bar12); Speed2=(Price22-Price21)/(Bar21-Bar22);

Price1=Price11+Speed1*Bar11; Price2=Price21+Speed2*Bar21;

Distancia=(Precio1-Precio2)/Punto;

Esto es si se quiere determinar la distancia entre dos líneas en el momento actual.

Hay varias líneas horizontales, necesito determinar las cuotas entre ellas en diferentes combinaciones, en principio, en esta etapa estoy bastante satisfecho con la determinación entre las dos líneas, el resto lo haré manualmente. ¿Quizás haya un script preparado o un indicador de este tipo? Gracias por sus comentarios.
 
FoxUA:

...

¡es el tipo de cosas que me gustaría leer con ejemplos e imágenes!

Bueno, ¡hagamos un experimento! Vamos a escribir dos guiones. Uno de ellos contendrá una descripción correcta de la función. El otro contendrá el equivocado. Así que, este es el guión correcto:

#property show_inputs //эта строка выводит окно пользовательских параметров на экран
extern double DlyaKornya=300; // величина. из которой нужно извлечь кв. корень
//+------------------------------------------------------------------+
//|                 Старт работы правильного скрипта                 |
//|                 вычисляющего квадратный корень                   |
//+------------------------------------------------------------------+
int start(){
  double Koren=0;
        Alert("--------------------------------------------");
  if(DlyaKornya<0){
    Alert("Ошибка! Переменная ",DlyaKornya," не может быть меньше нуля");
    return(0);
  }
  Koren=MyKoren(DlyaKornya);
  Alert("Наша подпрограмма выдала результат = ",Koren);
        Alert("На вход функции MyKoren() было подано число = ",DlyaKornya);
  Alert("---- Правильное применение функции ----");
        return(0);
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

// ------------ MyKoren() -------------------------------------
// функция возвращает квадратный корень числа
// ------------------------------------------
double MyKoren(double MyValue){
        double Rezult=0;
        Alert("Внутри функции переменная MyValue имеет значение = ",MyValue);
        Rezult=MathSqrt(MyValue);
        return(Rezult);
}

Y este es el guión equivocado:

#property show_inputs //эта строка выводит окно пользовательских параметров на экран
extern double DlyaKornya=300; // величина. из которой нужно извлечь кв. корень
//+------------------------------------------------------------------+
//|                 Старт работы неправильного скрипта               |
//|                 вычисляющего квадратный корень                   |
//+------------------------------------------------------------------+
int start(){
  double Koren=0;
        Alert("--------------------------------------------");
  if(DlyaKornya<0){
    Alert("Ошибка! Переменная ",DlyaKornya," не может быть меньше нуля");
    return(0);
  }
  Koren=MyKoren(DlyaKornya);
  Alert("Наша подпрограмма выдала результат = ",Koren);
        Alert("На вход функции MyKoren() было подано число = ",DlyaKornya);
  Alert("----НЕправильное применение функции ----");
        return(0);
}
//+------------------------------------------------------------------+
//|                  Пользовательские подпрограммы                   |
//+------------------------------------------------------------------+

// ------------ MyKoren() -------------------------------------
// функция возвращает квадратный корень числа
// ------------------------------------------
double MyKoren(double MyValue=36){
        double Rezult=0;
        Alert("Внутри функции переменная MyValue имеет значение = ",MyValue);
        Rezult=MathSqrt(MyValue);
        return(Rezult);
}

Es incorrecto porque la línea double MyKoren(double MyValue=36){ inicializa la variable MyValue con valor = 36. No tiene sentido porque pasamos valor = a la variable DlyaKornya en la subrutina .

Ahora lanzamos ambos scripts secuencialmente al gráfico. Esto es lo que vemos:

Por desgracia, ambos guiones dieron el mismo resultado.

La segunda secuencia de comandos (incorrecta) debería haber producido un valor = 6. Lo más probable es que el compilador tenga incorporada una función a prueba de errores, ya que la línea double MyKoren(double MyValue=36){ no tiene sentido. La inicialización de la variable en ella con valor =36 probablemente funcionará sólo si la función se llama sin especificar parámetros. En nuestro caso, debió ocurrir lo siguiente: al llamar a la subrutina, primero se declaró la variable double MyValue, luego se le asignó el valor = 36 y sólo después se le asignó el valor almacenado en la variable DlyaKornya. No se me ocurre ninguna otra explicación.

De todos modos, es mejor no utilizar construcciones como double MyKoren(double MyValue=36){ sino escribirlo como debería ser - double MyKoren(double MyValue){, de lo contrario te preguntarás por qué el subprograma no funciona como debería.

Razón de la queja: