La competencia. Voy a escribir un experto de forma gratuita. - página 11

 
OZ0 писал (а) >>

Sergey, debes haber querido decir en este hilo (no en el foro).

Estoy de acuerdo. Esta es su condición, ya que usted establece las reglas aquí.

Por eso he abierto un hilo aparte sobre el MEM.

Por lo que entiendo, se trata de la posibilidad técnica de escribir un mensaje privado utilizando las facilidades del foro (algo así como el correo interno). En muchos foros existe esta posibilidad, en el foro mql4.com no.

Y quién se conecta con quién usando sus credenciales, es un asunto privado de cada uno y no pienso regularlo de ninguna manera, ni siquiera en este hilo.

 
SK. писал (а) >>

Por lo que entiendo, se trata de la posibilidad técnica de escribir un mensaje privado en el foro (algo así como el correo interno).

Eso es exactamente lo que estaba preguntando. Gracias, pensé que se me había pasado otra vez :)

 
SK. писал (а) >>

Funciona bien con su programa en una cuenta real. Hasta ahora todo bien - abro en movimientos rápidos y gracias a la visibilidad y

excelentes herramientas, puedo reaccionar rápidamente a los movimientos del mercado. Durante la última semana el comercio con su programa fue rentable.



Tengo algunas preguntas cuando estoy estudiando el modo AT.

Para obtener todas las respuestas te propongo que pongas en práctica el algoritmo que aparece a continuación, si la oferta sigue siendo válida.



El algoritmo es el siguiente:
___________________________________________________________________________________________
1. Las distancias entre niveles se establecen como variables externas, por ejemplo:
0)Lev0 = 0;
1)Lev1 = 40; (es decir, este nivel está a 40 puntos del anterior, etc.)
2)Lev2 = 40
3)Lev3 = 45
4)Lev4 = 55;

5)Lev5 = 60;
6)Lev6 = 65;
7)Lev7 = 75;
8)Lev8 = 80;
9)Lev9 = 85;

2. Los volúmenes de las órdenes abiertas en cada nivel se establecen como una variable externa, por ejemplo:
0)Lote0 = 0,01;
1)Lote1 = 0,01;
2)Lote2 = 0,01;
3)Lote3 = 0,03;
4)Lote4 = 0,06;

5)Lote5 = 0,12;
6)Lote6 = 0,24;
7)Lote7 = 0,48;
8)Lote8 = 0,96;
9)Lote9 = 1,92;
3. En forma de una variable externa, se establece el número de nivel, que llamaremos - el nivel de inclusión de la protección, por ejemplo como sigue:

Protect_Lev = 5; (Protect_Lev >= 1 & Protect_Lev <= 9)

4. Criterios de apertura:

4.1. 4.1. NUEVO CICLO DE NEGOCIACIÓN (ТC)
4.1.1. Según el valor del indicador (cualquier indicador a su criterio) y el valor de la variable externa:
Trade_Type = +1 - abrir TP sólo hacia arriba
Trade_Type = -1 - abrir TP sólo hacia abajo
Trade_Type = 0 - no hay nuevo TP,
abrir orden en
Lev (0):
- volumen Lote (0)
- TP = valor de la variable externa
- SL = 0
4.1.2. Para todo i = 1 a i = Protect_Lev: órdenes limitadas
- volumen = Lote (i)
- TP = a Lev(i-1)
- SL = 0
4.1.3. En el nivel Lev(Protect_Lev) se establece una orden stop para que se dispare simultáneamente con la orden limitada
del mismo nivel
- volumen = SUMM(i=0 a i = Protect_Lev):Lote (i)
-TP = 0
-SL = en el nivel Lev(Protect_Lev - 1) para que la orden stop se dispare simultáneamente con el TP de la orden limitada
del mismo nivel

5. Criterios de modificación:
5.1. Cuando alguna de las órdenes limitadas se dispara en los niveles de
Lev (i) (i = 1 a i = Protect_Lev),
se realizarán las siguientes modificaciones de la orden:
Para todo j = 0 a j = i - 1: TP(j) = OP(i - 1)
5.2. Movimiento "manual" de las órdenes limitadas
5.2.1 Cuando se mueven "manualmente" las órdenes limitadas establecidas según 4.1.2. en los niveles Lev (i) (i = 1 a i = Protect_Lev-1)
TP(i) no debe cambiar y la posición de TP(i+1) debe cambiar en sincronía con la posición de la orden limitada que se mueve.
5.2.2 Cuando se mueve "manualmente" la orden de límite establecida según 4.1.2. en el nivel Lev (Protect_Lev)
1. La posición de TP(Protect_Lev) no debe cambiar
2. La orden de stop fijada según 4.1.3 se moverá de forma sincronizada con la orden de límite, y su nivel de stop
no cambiará
5.3. Movimiento "manual" de una orden de stop
Al mover "manualmente" una orden de stop fijada según 4.1.3. en el nivel Lev (Protect_Lev)
1. La posición de parada de esta orden no cambiará
2. Una orden limitada establecida de acuerdo con 4.1.2. se moverá de forma sincronizada con la orden de stop, y el nivel de su TakeProfit
no cambiará
5.4. La posición de takeprofit de la orden de nivel Lev (i)(i = 1 a i = Protect_Lev) que se activó por última vez en la dirección de TP
puede cambiar dinámicamente en cualquier momento en función del valor de la variable externa int Last_Order_TP.
La variable externa int_Order_TP establece el porcentaje (<=100%) de distancia entre los niveles Lev (i) y Lev (i-1)
de un takeprofit positivo de la orden de Lev (i)(i = 1 a i = Protect_Lev).
El valor int Last_Order_TP = 100% significa la posición inicial de la orden de recogida de beneficios del nivel Lev (i)(i = 1 a i = Protect_Lev):
TP(i) = OP(i - 1)
5.5. La ubicación del stop (o una orden ya abierta al TP contrario) del nivel Lev(Protect_Lev)
puede cambiar dinámicamente en cualquier momento dependiendo del valor de la variable externa int Protect_Order_SL.
La variable externa int Protect_Order_SL establece el stop de la orden de parada de los niveles Lev(Protect_Lev) y Lev(Protect_Lev-1) en porcentaje(<=100%) de la distancia
Lev (Protect_Lev).
El valor de int Protect_Order_SL = 100% significa la posición inicial del stop en el nivel de Lev(Protect_Lev), cuando
SL(Protect_Lev) está en el nivel de Lev(Protect_Lev - 1), cuando la orden de stop debe ser cerrada por el stop
al mismo tiempo que la orden limitada de nivel Lev(Protect_Lev - 1) en takeprofit, siempre que esta orden dimit
TP(Protect_Lev - 1) = OP(Protect_Lev - 1)
5.6. La última orden en el nivel TP(i) (i = 1 a i = Protect_Lev-1) puede cerrarse en cualquier momento
cuando alcance cualquier beneficio. En este caso, todas las órdenes limitadas en los niveles j = i+1 a j = Protect_Lev y la orden stop
en el nivel Protect_Lev se eliminan y todas las órdenes limitadas en los niveles
j = i a j = Protect_Lev se reajustan según las reglas de la cláusula. 4.1.2. y reposición de la orden de stop en el nivel Protect_Lev según las reglas del apartado 4.1.3. 4.1.3.
5.7. La orden de stop puede cerrarse en cualquier momento cuando alcance algún beneficio. En este caso es necesario establecer en
una nueva orden de stop con las características de volumen, TakeProfit y Stop Loss según la cláusula 4.1.3. a una distancia igual al valor de la variable externa
int Protect_Order_DS de su precio de cierre. Entonces su "tirando hacia arriba" siguiendo el precio debe ser organizado.
Tirando hacia arriba la orden de parada, supervisar la equidad y el equilibrio. Si el patrimonio supera el saldo, todas las órdenes abiertas deben cerrarse
y la orden de stop debe eliminarse.



NOTA: 1. El algoritmo es bastante viable. Tengo un Asesor Experto de trabajo basado en él; algunas de las funciones anteriores
se hacen manualmente. La dirección del ciclo de negociación también se selecciona manualmente basándose en las lecturas del V.T.E.
Los ajustes anteriores de niveles y lotes proporcionan hasta 20 libras por día en el símbolo NZDUSD.
El punto crítico del algoritmo se describe en 5.7. Lo principal es no precipitarse y esperar a que se produzca un pinchazo.
Y en general, es necesario "cogerle el tranquillo"
2. Por supuesto, al implementar este algoritmo en el sistema SK, son posibles algunos cambios en cuanto a

Para fijar los valores de las variables externas.

______________________________________________________________________________________________________________________

Atentamente - S.D.

 
SK, Sergey, necesitamos una instrucción simple y clara sobre la programación de funciones con señales de comercio. Sólo que sin un montón de enlaces a cosas incomprensibles. Todo el manual puede ser una docena de frases como máximo. La gente está pidiendo, y el producto es suyo, debe estar directamente interesado en él.
 
Integer писал (а) >>
SK, Sergei, necesitamos una instrucción simple y clara para programar funciones con señales de comercio. Pero no proporcione muchos enlaces a cosas ininteligibles. Todo el manual puede ser una docena de frases como máximo. Piden a la gente, y el producto es suyo, deben estar directamente interesados en él.

Entiendo perfectamente el sentido de lo que escribes. Pero no funciona así.

--

En aguas neutrales, cerca de un crucero estadounidense, un submarino no tripulado se sumerge.

Sale el contramaestre: "Oye, en el crucero, dame la dirección de África".

Desde el crucero: "North North West 234... longitud..."

Bosun: "No, muéstrame con la mano a dónde vas".

--

Eso no va a funcionar.

=============================

En cuanto a los códigos personalizados para AutoGraf 4.

Hay dos funcionalidades.

.
1. El usuario transfiere el algoritmo en MQL4 de su EA a la función de trading automático con nombre predefinido AG_AT.ex4

Su funcionamiento es muy fácil de entender. Echa un vistazo al esquema en http://autograf.dp.ua/Pages/2/26/267/2671.htm

La flecha azul inferior va desde la función de autocomercio de AT personalizada hasta el servidor. Significa que el código escrito por un usuario en esta función se ejecuta simplemente por las reglas de ejecución de los códigos MQL4. Esto significa que todo lo que se puede hacer en MQL4 está disponible allí: se pueden abrir, cerrar y modificar órdenes, se pueden establecer objetos gráficos, se pueden utilizar indicadores técnicos y personalizados.

En esta parte el programador no necesita ningún consejo mío. Todas las funciones de MQL4 están a su servicio.

Lo único que hay que tener en cuenta es que el experto AG_exp.ex4 está en bucle y se aplica aproximadamente 200 veces por segundo. En cada iteración se llama a la función AG_AT.ex4. Es decir, no cada tic, sino entre tic.

.

2. es posible controlar las herramientas de AutoGraf 4 desde la función personalizada AG_AT.ex4.

El modo de hacerlo es imposible de describir en una sola palabra.

La aplicación utiliza una matriz de 4 dimensiones que está disponible para el análisis en la función de negociación automática definida por el usuario AG_AT().

Las peculiaridades de la instalación y eliminación de cada herramienta se describen en el sitio web. Para cada herramienta, se ofrece un ejemplo de cómo utilizarla. Hay comentarios detallados en los códigos. Los ejemplos se instalan en el PC del usuario durante la instalación. Para ver cómo funciona el ejemplo, basta con tomar un archivo del subdirectorio \experts\libraries\Example_AT y ponerlo en el directorio \experts\libraries en lugar del que ya está allí. Y luego encenderlo y ver cómo funciona. Puedes hacerlo en el probador en modo de visualización.

==

Estoy muy interesado en que todos los usuarios-programadores sepan cómo funciona esto.

En cuanto a la sugerencia de Sart, tengo que pensarlo. Hasta ahora, está claro que no se puede implementar de esta forma: nadie entenderá nada allí. Necesitamos algo más sencillo. Lo pensaré durante un tiempo.

 

El chiste era Zuid-Zuid-West y la respuesta correcta era - Tú no me zuid, apunta con el dedo. Algo se descubrió:

Нижняя синяя стрелка идёт от пользовательской функции автоматической торговли АТ на сервер. Это значит, что код, прописанный пользователем в этой функции, исполняется просто по правилам исполнения MQL4 - кодов. Это значит, что там можно всё, что можно в MQL4 - открывать, закрывать и модифицировать ордера, выставлять графические объекты, использовать технические и пользовательские индикаторы.

En esta parte el programador no necesita ningún consejo mío. Todas las funciones de MQL4 están a su servicio.

No está claro, entonces ¿cuál es la participación de su programa en esto?


Quizás, me interesa la flecha superior que va a la unidad de análisis. ¿Cuáles son las funciones del bloque analítico? ¿Cuáles son las funciones del bloque comercial? Las descripciones de los bloques de análisis y comercio en la página no se encontró, he encontrado algunos enlaces throughavascript, pero en mi navegador son glitchy por alguna razón.

¿Sólo puede haber una función de negociación automática? ¿Cómo es posible cambiar sus parámetros? ¿Dónde debe estar el archivo AG_AT.ex4?

Cómo hacerlo es imposible de decir en una sola palabra.

Entonces, ¿escribe un manual o sugiere que necesariamente hay que instalar AutoGraf en el ordenador, y rebuscar en todo el código de sus miles de archivos?

Las peculiaridades de la instalación y eliminación de cada herramienta se describen en el sitio.

¿Para qué lo necesitas? (para mí). Se necesita una descripción concreta y concisa de la interfaz de estas herramientas para interactuar con ellas desde AG_AT.

 

>> No está claro, entonces, ¿cuál es la participación de su programa en esto?

La implicación es evidente:

1. El usuario, a su discreción, puede activar o desactivar la ejecución del algoritmo AT en cualquier momento.

2. El usuario puede interferir manualmente en el proceso de negociación al mismo tiempo que se ejecuta el algoritmo AT.

3. El usuario puede instalar y eliminar herramientas que se ejecutarán simultáneamente con la ejecución del algoritmo AT.

.

>>Supongo que me interesa la flecha superior que va a la unidad de análisis. ¿Cuáles son las funciones del bloque analítico? ¿Cuáles son las funciones del bloque comercial?

El bloque analítico y comercial sólo se muestra provisionalmente en el esquema para ilustrar el papel de los modos de AutoGraf 4.

El grupo de funcionesanalíticas está destinado a apoyar el funcionamiento del programa. En particular, el propósito de algunos de ellos es:

1. Aplicar reglas de requisitos y permisos cuando se instalan las herramientas. Por ejemplo, en StopLoss es imposible configurar las herramientas 1, 2 (Pull Up y Pull Down) para que funcionen simultáneamente. Esto no es técnicamente factible. Si el usuario intenta hacerlo, se establece un nuevo instrumento y se borra el anterior.

2. Analizar la necesidad de mostrar mensajes al usuario.

3. Análisis de las acciones de los usuarios. Rechazo a la ejecución de acciones incorrectas del usuario.

4. Ejecución de acciones de control de un usuario.

5. Formulación de órdenes de negociación en función de las condiciones comerciales actuales.

Las funciones de un bloque comercial también son obvias:

1. Mantenimiento de las operaciones comerciales: envío de órdenes al servidor y análisis de errores.

2. En general, el bloque de negociación implementa la negociación basada en las prioridades de negociación descritas aquí:

http://autograf.dp.ua/Pages/2/26/264.htm, aquí http://autograf.dp.ua/Pages/2/26/262.htm y aquí http://autograf.dp.ua/Pages/2/26/263.htm.

.

>> Encontré algunos enlaces a través de javascript, pero están fallando en mi navegador por alguna razón.

Por favor, dame un enlace a la página con fallos (el sitio fue comprobado para IE, Opera y FF).

.

>>¿Puede haber sólo una función de negociación automática?

Sí. Está previsto ampliar el número de funciones utilizadas.

.

>>¿Cómo se pueden cambiar los parámetros de esta función?

Los parámetros de una sola función no pueden modificarse durante el funcionamiento. Los parámetros se eligen en la fase de diseño.

Esta cuestión debe ser debatida. Técnicamente, puede introducir los parámetros como variables externas de AutoGraf y pasarlos a AG_AT() mediante arrays. Pero este enfoque tiene desventajas: no está muy claro cuántos de estos parámetros deben estar ahí. Otra opción es la personalizada: puede introducir los cambios de parámetros a través de un script y de las variables globales de la cl.terminal.

De todos modos, hay que tener en cuenta que es imposible mostrar el panel de ajustes de una función independiente utilizando las herramientas MQL4.

.

>>¿Dónde debería estar ubicado el archivo AG_AT.ex4?

Está escrito aquí http://autograf.dp.ua/Pages/2/26/267/2672.htm. Sólo tienes que leerlo.

.

>>Entonces escribe la instrucción.

>>Así escomo se hace. Todo el sitio son las instrucciones detalladas. Específicamente:

1. Cada herramienta se presenta en una página separada. Para cada herramienta, hay reglas de permisos, restricciones y requisitos. (por ejemplo, un nivel de sonido de intrumento no puede colocarse en una orden; un tirón de línea de orden no puede colocarse en el campo de juego; una herramienta de limitación requiere un tirón de acompañamiento - una herramienta de limitación). Sección AutoGraf 4 >Herramientas.

2. Todo el contenido de AutoGraf 4 > Gestionar pedidos > Función AT es exactamente lo que le interesa.

3. Para cada herramienta puede encontrar un ejemplo de su uso AutoGraf 4 > Gestión de pedidos > Función AT > Ejemplos de función AG_AT.

.

>>¿Por qué? (a mí). Se necesita una descripción concreta y concisa de las interfaces de estas herramientas para interactuar con ellas desde AG_AT.

Sin eso, no se puede inventar el código para controlar las herramientas desde una función de usuario.

 
Integer писал (а) >>

El chiste era Zuid-Zuid-West y la respuesta correcta era: "No me digas, señala con el dedo". Ha surgido algo:

No está claro, entonces, ¿cuál es la participación de su programa en esto?

¿Para qué sirve? (a mí). Se necesita una descripción concreta y concisa de la interfaz de estas herramientas para interactuar con ellas desde AG_AT

Pareces muy enérgico...
En mi opinión, todo es bastante sencillo en principio:
Su programa recibe estas variables como entrada -
int Parol_AT,
double Order[][],
string Object[],
double Instrument[][][],
int Ddraw_Object[][],
double& Tuning[],
double& Manager[][],
string& Message[] )
Aquí las variables sin impersand son entradas - muestran el estado actual del comercio,
con impersand - salidas y con su ayuda se forman comandos de gestión de órdenes (más bien macros) para el autógrafo,
que ejecuta.
Así, el papel del autógrafo es el siguiente:
1. Envía el estado actual del comercio a su programa de una forma muy conveniente para el análisis
2. Usted analiza este estado actual en su programa y forma comandos de trabajo (macros) - acciones de control para el autógrafo,
que el autógrafo cumple tan pronto como recibe el control de vuelta de su programa.


Por ejemplo, un autógrafo
encuentra de forma independiente todos los pedidos y registra todas sus características en una forma matricial digerible doble Orden[][].
Cada fila de esta matriz representa una orden. Las columnas de esa línea representan las características del pedido.
Puede encontrar, por ejemplo, una orden que le interese por su columna Magic_Number y, si es necesario,
, por ejemplo, establecer un trailing stop (con las características necesarias) para esa orden.
Para ello utilice la función
int AG_Set_Instr(double& Manager[][], int ii, double v1, double v2, double v3,
double v4, double v5, double v6, int Ticket , int ih)
Debe establecer el instrumento requerido para esta orden y el auth lo rastreará por sí mismo. Todas estas herramientas tienen números 1, 2,...

Naturalmente, para trabajar hay que hacerlo:
1.Estudie los instrumentos que le interesan
2. estudiar la estructura de todas las matrices de entrada

En principio, es cierto que Autograf, mediante la ejecución de herramientas y el seguimiento del estado actual de la negociación, asume toda la parte técnica de la redacción de un Asesor Experto.

Se puede hablar de estructuras de datos complejas, pero, en mi opinión, estas estructuras están diseñadas de forma muy inteligente y natural.

Cuando escribo EAs desde cero, por así decirlo, suelo abordar el diseño de dichas estructuras de datos yo mismo, y no soy el único.

Saludos - S.D.

 

Sart:

На:


Yo también creo que es simple, pero con tanta retórica que no se puede ver el bosque por los árboles. Una pregunta y un montón de referencias en respuesta.

SK:

Los parámetros de una función individual no pueden modificarse durante el funcionamiento. Los parámetros se seleccionan en la fase de diseño.

¡¡¡Más allá de los elogios!!! ¿Y dónde ponerlo? .... "¡Silencio para los húsares!" (© Teniente Rzhevsky)

El bloque de análisis y negociación se muestra en el diagrama de forma convencional

¿Hay algo ahí específicamente, no convencional?

En general, tanto texto, y tan poco sentido, tal vez debería comprar un expansor de mano - para estirar los dedos para escribir sólo en la esencia. De nuevo, por 555ª vez has enumerado todas las funciones. La persona no tiene nada que ver con este desarrollo e incluso contestó, clara y concisamente (Sart). Por todas partes se ve casi el mismo texto.

Para eliminar o cerrar una o varias órdenes definidas por el usuario, hay que resaltar las líneas de la orden en cuestión con el ratón y pulsar la tecla Suprimir.

¿Cómo funciona esto? ¿Sólo hay que borrar la línea y el pedido se cerrará inmediatamente? ¿Estoy cometiendo un error? ¿Tal vez sería mejor sentarse en la bomba entonces?

 
Integer писал (а) >>

¿Cómo funciona eso? ¿Sólo hay que eliminar la línea y la orden se cierra inmediatamente? ¿Estoy cometiendo un error? ¿No sería mejor sentarse en la bomba entonces?

El miércoles, como si tal cosa, quise borrar la línea vertical y resalté por error la línea de orden de venta del euro. Al pulsar Suprimir, la orden se ha cerrado y la línea se ha eliminado.

El pedido tuvo una pequeña pérdida, me rendí y me fui a fumar. Volví en 10 minutos, y el euro ya había bajado 100 p.


Pero en general, debo decir honesta y francamente, que creo que el conjunto de herramientas de SK es genial. Con un poco de habilidad es simplemente imposible perder.

Incluso he empezado a desarrollar una nueva táctica de juego, que es imposible poner en práctica sin este tipo de herramientas para reaccionar muy rápidamente a los movimientos del mercado.


No digo nada sobre el modo AT, no lo he estudiado en detalle. Aunque, lo primero que he notado (y tú también lo harás):

"Los parámetros de una sola función no pueden modificarse en tiempo de ejecución. Los parámetros se seleccionan en la fase de diseño".

La contraseña se transmite, pero los parámetros no. Al menos podrías proporcionar una variable de cadena, y no es un problema entender la cadena,

especialmente desde que se facilita el diálogo del comerciante con el programa de TA.

Razón de la queja: