Reglas de estructura. Aprender a estructurar los programas, explorar las posibilidades, los errores, las soluciones, etc. - página 6
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
ZS. Es un poco pequeño, ¿por qué no hacemos uno más global?
Bueno, pinchazo tady (en términos generales) ¿cómo tapas estas brechas en los cuatro primeros? ¿Está todo en DLL? :)
Sin DLL, puro MCL + winepi para el manejo de eventos .
Con respecto a esto, necesitamos encontrar tiempo para describir todo bellamente y hacer un gran artículo. Puedo lanzar un ejemplo o una implementación de pseudoclases visuales para MT4, pero me temo que será difícil de digerir sin una descripción detallada. La esencia de crear un DOM (módulo de objetos de datos) para MT por analogía con JS: son realmente similares de todos modos. Para semilla - la función principal del corazón por así decirlo:
¿Tiene una oferta específica?
Hay, y la tarea está viva, pero me da miedo pronunciarla aquí, puedo en un personal.
Hoy en día, ningún programador normal dibuja diagramas de flujo. Todo esto son tonterías teóricas pensadas para ser enseñadas a los escolares, pero no para trabajar en proyectos reales.
Sin DLL, puro MCL + Vinapi para el procesamiento de eventos.
Con respecto a esto, necesito encontrar tiempo para describir todo bien y hacer un gran artículo. Puedo lanzar cualquier ejemplo o implementación de pseudoclases visuales para MT4, pero me temo que será difícil de digerir sin una descripción detallada. La esencia es crear el DOM (Módulo de Objetos de Datos) para MT por analogía con JS - son realmente similares. Para una imprimación - la función principal del corazón por así decirlo:
(Sí, con un columpio. ))
DOM - eso es mucho. Dame un par de capturas de pantalla al menos... O (si está disponible) algún ejemplo compilado independiente, para sentirlo en la terminal. ¿Tienes uno?
(Risas...) Con una explosión. ))
DOM - eso es mucho. Dame un par de capturas de pantalla al menos... O (si está disponible) algún ejemplo compilado independiente, para sentirlo en la terminal. ¿Tienes uno?
¿Lo intentamos?
Nada.
1. El panel está a la cola. la estrategia es primordial, si no funciona, el panel no tiene sentido ni utilidad.
2. La aplicación de la parte comercial depende de la estrategia, por lo que no hay nada que discutir en el marco del asalto a una estrategia hipotética. La aplicación de la estrategia, curiosamente, también depende de la estrategia :)
3. Inmediatamente haga un trigger para desactivar la estrategia contabilizada en el bloque de negociación. Y desactivar la realización de nuevos pedidos.
4. Panel. Lo que es un panel: una rutina.
En cuanto a la redacción del ST, es algo así:
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Discusión sobre el comercio de alta frecuencia en MT5
hrenfx, 2013.02.06 14:30
Простой и довольно эффективной логикой написания боевого робота является следующая схема:
- робот делится на две части: тестер и синхронизатор.
- тестер на основании ранней истории и только что пришедшей выдает текущее состоянии торговой стратегии.
- синхронизатор "переносит" текущие тестерные открытые позиции и приказы на реал.
Это чем-то напиминает копирование торговых сигналов с одного счета на другой. Только вместо примитивного копировщика работает грамотный синхронизатор.
К сожалению, правильную логику синхронизатора посмотреть где-либо практически невозможно, поэтому озадачевшемуся придется подумать самому - очень полезно.
Но и такая логика построения боевого-робота далеко не совершенна, т.к. встает дилема первичности курицы и яйца. Поэтому применяются более сложные свои схемы, основанные на опыте автора-алготрейдера.
Все эти действия совершаются только ради одного - адекватной настройки стратегии. Какой бы совершенной не была схема, все равно одинаковые боевые роботы на разных счетах одного и того же ECN/STP брокера покажут расхождения. И помимо поиска рыночных закономерностей, важной задачей для алготрейдера также является уменьшение этих расхождений. Как уже говорилось выше, чем ближе брокер к возможстям HFT, тем меньше расхождения.
Если вникнуть в написанное, должно прийти понимание, что результаты работы стратегии на реале являются также своего рода тестером. И выводы на основании этой торговли также должны быть вероятностными.
Nada.
1. La estrategia es primordial, si no sigue adelante, el panel no tiene sentido ni utilidad.
2. La aplicación de la parte comercial depende de la estrategia, por lo que no hay nada que discutir en el marco de un hipotético asalto a la estrategia. La aplicación de la estrategia, curiosamente, también depende de la estrategia :)
3. Inmediatamente haga un trigger para desactivar la estrategia contabilizada en el bloque de negociación. Y desactivar la realización de nuevos pedidos.
4. Panel. Qué panel - una rutina.
Bueno, aquí tenemos algo que discutir de una vez. :))
No para discutir, digamos, sino para señalar las posibilidades:
1. Panel directo a la cola. La estrategia es primordial, si no va a arar, el panel es inútil y sin sentido.
Hasta ahora, estoy de acuerdo, pero con una advertencia: el programa debe ser inmediatamente orientado a trabajar en dos modos, por lo que la estrategia / parte de comercio debe ser prescrito a la vez, teniendo en cuenta la presencia / ausencia de control del panel y con / sin visualización de la información en el panel.
No depende de mi estrategia. Toda la parte de trading está escrita en una clase (CMarketDriver), que implementa completamente la entrada de órdenes, el seguimiento de posiciones, las recotizaciones y otras cosas relacionadas con el trading. Para todos los símbolos a la vez. La parte de la estrategia sólo recibe las posiciones de mercado recomendadas para los símbolos: es decir, rellena el array de estructuras del formato {string Instrument; double Position} y solicita la sincronización con el servidor: MD.Synchronize(PositionArray). Eso es todo. Por ahora sólo opera con órdenes de mercado, pero está en camino una versión que opera con límites fijados dentro del spread (para reducir los costes de las operaciones). Para el comercio takeprofits / paradas no utilizan, pero MarketDriver puede poner paradas de protección en caso de pérdida prolongada de la conexión con el servidor (parámetros de parada se especifican una vez en la configuración del conductor). Por cierto, muy exitoso, casi no hay problemas solución estructurada. Para la prueba de las ideas estratégicas en el probador - no hay problemas con el comercio, toda la atención se puede dedicar a la estrategia - todo el comercio ha sido durante mucho tiempo depurado y encapsulado en el controlador de comercio.
2............., así que no hay nada que discutir en el marco de un hipotético asalto de estrategia. La aplicación de la estrategia, curiosamente, también depende de la estrategia :)
Por ejemplo, tengo una nueva idea: operar en la intersección de un par de limpiaparabrisas. En este caso, el problema es reestructurar el programa para que, al desarrollarlo (por ejemplo, añadiendo un tercer limpiaparabrisas), no tenga que cambiar la mayor parte del código. Entonces, el programa puede desarrollarse hacia la multidivisa (para simplificar el proyecto, supongamos que el comercio por símbolos es estrictamente independiente y no se consideran las interrelaciones) ¿Cómo organizar la parte estratégica, previendo tal desarrollo?
3. Inmediatamente se establece el disparador para desactivar la estrategia tomada en cuenta en el bloque de negociación. Y desactivar la realización de nuevos pedidos.
Pero no es necesario. Después de todo, no esperamos muchos problemas aquí.
4. Panel. Bueno, el panel es una tarea.
Pero la organización de la conexión de la estrategia con el panel es una tarea bastante creativa, especialmente si intentamos desarrollar una plantilla más o menos universal para dicho panel que pueda adaptarse fácilmente a diferentes Asesores Expertos y desarrollarse fácilmente a medida que el proyecto crece/se desarrolla.
No hace falta, casi nunca depende de mí.
Conmigo casi siempre depende. Especialmente cuando se trabaja con ECN. Es decir, no todo se hace al nivel más bajo, por supuesto, sino a través de los cascos de las funciones comerciales estándar.
Conmigo casi siempre depende. Especialmente cuando se trabaja con ECN. Es decir, no todo se hace al nivel más bajo, por supuesto, sino a través de los cascos de las funciones comerciales estándar.
No sé cómo resultará mi relación con ECN allí (voy a abrir una cuenta con RoboForex), pero intentaré lo mejor posible para mantener este desacoplamiento estructural (estrategia/conductor de mercado). Es tan conveniente, que incluso estoy listo para algunos costos comerciales moderados (como la pérdida de ganancias).
Vea lo simple que parece el ciclo principal del EA al final:
Compruebe la versión simplificada de prueba y vea si le gusta el esquema. Si es así, ajústelo a sus necesidades y utilícelo en su beneficio.