Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1246

 
Alexey Viktorov:

¿Con qué estás escribiendo tantas líneas de código? Aquí está uno de mis últimos EAs, trabajando con un conjunto de valores en FORTS

Como son muchos los valores que figuran en esta lista, son muchos los que se negocian. Y este EA con control de dos timeframes de trading, con trailing y por supuesto con análisis, sólo 326 líneas.

Si desea utilizar el interruptor, no tiene que añadir la apertura de la posición en cada variante. Basta con especificar el nombre del símbolo, el tipo de operación comercial y el

Pero sería mejor, en mi opinión, envolverlo todo en una función definida por el usuario.

Gracias. Pero no es que sea intolerante, es que fue mi primera versión de escritura y en mi opinión más versátil. Podrías añadir todo tipo de métodos de análisis y no escribir en cada apertura de orden, porque no sería necesario y centrarte en el análisis y las nuevas funciones, en lugar de escribir lo mismo. No sé cómo lo has metido en más de 300 líneas, no estoy tan avanzado en este idioma. Al final he escrito todo en cada función y me han salido 1050 líneas sin tener en cuenta todo lo demás, como el cálculo del lote, el arrastre, etc. El Asesor Experto sólo puede abrir operaciones en 7 pares simultáneamente teniendo en cuenta las condiciones de apertura, y eso es todo en principio. Entonces quiero escribir una nueva función y tener que prescribir la apertura de pedidos una y otra vez, en lugar de escribirla una vez y usarla. El trailing stop funciona todo el tiempo y modifica todas las órdenes abiertas, pero se escribe una vez, así que por qué no escribir una función para las órdenes abiertas y utilizarla para cualquier tipo de análisis. Todavía no lo tengo claro.
 
Denis Diakonov:
Gracias. Pero no es tan intolerante, es que esta fue mi primera variante de escritura y, en mi opinión, es más universal. Podríamos añadir todo tipo de métodos de análisis y no escribir una apertura de orden en cada uno de ellos, simplemente porque no sería necesario y centrarnos en el análisis y las nuevas funciones en lugar de escribir lo mismo. No sé cómo lo he metido en más de 300 líneas, no estoy tan avanzado en este idioma. Al final he escrito todo en cada función y me han salido 1050 líneas sin tener en cuenta todo lo demás, como el cálculo del lote, el arrastre, etc. El Asesor Experto sólo puede abrir operaciones en 7 pares simultáneamente considerando las condiciones de apertura, y eso es todo en principio. Entonces quiero escribir una nueva función y tener que prescribir la apertura de pedidos una y otra vez, en lugar de escribirla una vez y usarla. El trailing stop funciona todo el tiempo y modifica todas las órdenes abiertas, pero se escribe una vez, así que por qué no escribir una función para las órdenes abiertas y utilizarla para cualquier tipo de análisis. Todavía no lo tengo claro.

Si tiene más de un símbolo en funcionamiento, la opción más eficaz es trabajar con una función personalizada. Para cada símbolo, en mi variante, la función analiza la apertura desde el array y si la función de análisis devuelve true, llama a la función para abrir una orden. Una función analiza la situación de todos los símbolos uno por uno y abre órdenes para el símbolo con señal. No importa cuántos símbolos haya en la matriz. Hemos recibido una señal, hemos abierto una orden, hemos vuelto a la matriz de símbolos, comprobamos el siguiente. Y así sucesivamente...

 
Alexey Viktorov:

Si tiene más de un símbolo en funcionamiento, la opción más eficaz es trabajar con una función personalizada. Para cada símbolo, en mi variante, la función analiza la apertura desde el array y si la función de análisis devuelve true, llama a la función para abrir una orden. Una función analiza la situación de todos los símbolos uno por uno y abre órdenes para el símbolo con señal. No importa cuántos símbolos haya en la matriz. Hemos recibido una señal, hemos abierto una orden, hemos vuelto a la matriz de símbolos, comprobamos el siguiente. Y así sucesivamente...

Esta es una buena opción.
De esta manera será aún más conveniente y el código es más compacto, además, se proporcionará la posibilidad de llamar a la función de apertura de órdenes para cualquier tipo de análisis de mercado añadido. El propósito era encontrar una manera de no escribir constantemente el mismo código, y por lo tanto, ¡tu propuesta es digna de atención! Gracias.
 
Denis Diakonov:
Esa es una buena.
De esta manera será aún más cómodo y el código será más compacto, además se abrirá la posibilidad de llamar a la función de apertura de órdenes para cualquier tipo de análisis de mercado añadido. El objetivo era encontrar una manera de evitar escribir constantemente el mismo código, ¡y por eso tu sugerencia es digna de atención! Gracias.

Alexey te está diciendo cosas estándar...

 
Artyom Trishkin:

Alexei te está diciendo lo normal...

Lo normal es que haya un código distinto para cada día. )))))

 
Artyom Trishkin:

Alexei te está diciendo lo normal...

Bueno, estoy en mi tercera semana con esta lengua.

Desde 2008, pero recién ahora estoy tratando de escribir algo.

 

Hola @Artyom Trishkin ,

Tengo problemas para resolver la lógica. Por favor, ayúdenme con ello. Aquí hay un enlace a mi hilo: https://www.mql5.com/ru/forum/350570

Espero tener noticias tuyas más adelante.

 

Calcular el precio medio en un intervalo dado con un número determinado de aproximaciones.

Hola Hay una matriz de valores.

La tarea consiste en escribir una función.

Parámetros de entrada:

- la matriz contiene los números de elementos necesarios para calcular la mediana - bufInBar[]

- tamaño del array -bufInBar[] - count

- número de aproximaciones a la mediana - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

Es decir, hay una clase

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

En la salida :

BP[bufInBar[i]].Mediana; 

Rellenado en orden ascendente, por ejemplo, de 0 a 10.

Es decir, sifokus=10 en la condición, entonces en el intervalo i<cuenta los diez valores

BP[bufInBar[i]].Mediana;

será de 1 a 10.

Por ejemplo

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...

Listo para transferir 12 dólares de la cuenta

 
Mikhail Toptunov:

Calcular el precio medio en un intervalo dado con un número determinado de aproximaciones.


Listo para transferir desde la cuenta $12

sabes que para algo como estohttps://www.mql5.com/ru/job

y aquí - si comenzó a hacerlo usted mismo, pero no funcionó o no está claro

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Доработать существующий советник, чтобы он осуществлял выходы из сделок по виртуальному тейк-профиту на основе слежения за мультитаймфрейменным боллинжер бендз. Советник должен следовать за линиями боллинжера и выходить по указанному алгоритму Здравствуйте, нужно создать Программу для сравнения данных и отображения их. Данные надо будет брать с...
Razón de la queja: