Bibliotecas: MT4Orders

 

MT4Orders:

Uso paralelo de los sistemas de órdenes de MetaTrader 4 y MetaTrader 5.

Autor: fxsaber

 
Algo increíble - muchas gracias ... la mejor manera de usarlo es probablemente en MT5 hedge.... sí, no muchos comerciantes están todavía en mt5...)))))
 
Después de haber visto un montón de Sistemas de Lenguaje de Órdenes (NinjaTrader, TradingStation, MetaStock, WealthLab, Dukascopy JForex, FXCM ForexConnect, LMAX API, IB TWS, MT4/5, etc.), he llegado a una conclusión inequívoca: MT4 es el punto de referencia de OJS. Es el OJS más conveniente, ¡una obra maestra!

Si alguien necesita escribir un Asesor Experto para otro NMC, recomiendo no pisar el rastrillo y empezar inmediatamente a escribir tal adaptador a MT4-NMC. Es mejor invertir tiempo al principio, pero luego lo recuperarás con creces al escribir, depurar y probar Asesores Expertos.

Por corrección política seguiré hablando sólo de Metatrader. Alguien dirá que sólo tienes que acostumbrarte a MT5-OS. Aquí es imposible estar en desacuerdo. Uno puede acostumbrarse a todo. Hablando de la comodidad de la NFC, me refería a algo diferente.

Cuando usted consigue sus manos en un MQ4-advisor, es bastante fácil de entender desde el código qué y dónde lo hace. Hacer cambios. Ayudar a una persona si pregunta sobre el código, etc. Este es el caso de casi cualquier codobase advisor, por ejemplo. Y la razón no es porque casi todos estén escritos en estilo procedimental (los MQ4-advisors OOP, por cierto, son más fáciles de entender).

Cuando se toma un MQ5-asesor (véase el pobre codobase), la comprensión de sus partes de algoritmos de negociación requiere un esfuerzo mental más grave. Incluso diría que se siente incomodidad. Y es precisamente con SNF. La comprensión siempre llega, pero requiere mucho más tiempo y esfuerzo.

Por supuesto, si usted lee/edita/añade exclusivamente su propio código, no sentirá ninguna diferencia significativa entre MT4 y MT5-NFC: usted ha escrito su propia biblioteca universal y eso es todo. Pero esto es sólo para su propio beneficio. Si se encuentra con el código de otra persona, le caerá un jarro de agua fría. Y, por desgracia, la biblioteca estándar de los desarrolladores no te ayuda a salir de la zona de incomodidad.

Debido a esto, es extremadamente difícil discutir constructivamente/refinar juntos una idea de trading en MQL5, como se ha practicado durante mucho tiempo en varias comunidades de trading en MQL4. Y el deseo de cambiar a MT5 en este sentido no brilla con motivación.

Me gustaría creer que este trabajo, como una adición a MT5-Hedge, finalmente permitirá que las buenas ideas de trading sean probadas (y discutidas) en un fuerte probador de MT5 y reducirá significativamente las conversaciones sobre las diferencias entre MT4 y MT5. Permitirá que el componente de trading de los EAs recupere el liderazgo en las discusiones sobre el componente de programación técnica.

En defensa de MT5-NFC me gustaría decir que este NFC da muchas más posibilidades que MT4. Esto es especialmente cierto para el comercio de acciones. Pero incluso en FOREX puede, por ejemplo, obtener estadísticas importantes sobre la calidad de ejecución de órdenes pendientes a través de MT5-NFC. Por lo tanto, el medio de oro de la conveniencia / oportunidad es el uso paralelo de ambos NFC. Eso es lo que este trabajo nos permite hacer.

Ahora es muy fácil comparar MT-testers de diferentes generaciones - el mismo código (MQL4) se ejecutará en ambos. No será difícil darse cuenta de que el probador MT5 tiene un rendimiento inferior en ejecuciones individuales. Las órdenes limitadas y los niveles TP en el probador MT5 se ejecutan con un deslizamiento positivo irrealmente alto. No hay posibilidad de probar en la propia historia y algo más (a veces esencial). Pero estos son, quiero creer, malentendidos temporales. Hay un montón de ventajas en la forma de la Nube, incorporado garrapatas reales, multidivisa y algunos otros. Y si la Nube y los ticks reales todavía se pueden emular en el antiguo probador, entonces la multidivisa es una ventaja definitiva del nuevo.

El ejemplo en la descripción presenta, en particular, una idea de comercio de garrapatas conocido desde hace mucho tiempo en ciertos círculos - Lucky (en su forma original). Y si debido a la inexactitud de MT5-tester con órdenes limitadas (build 1368) es imposible dar una evaluación inequívoca de este sistema, incluso en el modo "Cada tick basado en ticks reales". Aquella idea multidivisa simple en código (gracias a MT4-OJAS) en forma de MQ4-advisor Spreader (ver ejemplo) encuentra una nueva vida en MT5-tester.

Muchas viejas ideas que antes eran difíciles/imposibles de probar en el MT4-tester ahora pueden ser fácilmente resucitadas y exploradas productivamente casi en su versión original.
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При...
 
Сергей Криушин:
Algo increíble - muchas gracias ... la mejor manera de usarlo es probablemente en MT5 hedge.... sí, no muchos comerciantes todavía en mt5...))))
Probablemente sea para escribir sistemas que compilen en cuatros y cincos sin cambios.
 
No funciona con la historia. Así que no hay muchos milagros.
 
Dmitry Fedoseev:
No funciona con la historia. Así que no hay mucho de milagroso.
Voy a aceptar los detalles de usted con gratitud. No puedo reproducir "no funciona" sin ellos.
 
fxsaber:

En defensa de la MT5-NFC, me gustaría decir que esta NFC ofrece muchas más posibilidades que la MT4. Esto es especialmente cierto para el comercio de acciones. Pero también en FOREX puedes, por ejemplo, obtener importantes estadísticas de la calidad de ejecución de órdenes pendientes a través de MT5-NFC.

https://www.mql5.com/es/code/16134

SlipPage
SlipPage
  • 2016.08.25
  • fxsaber
  • www.mql5.com
Расчет проскальзываний совершенных сделок в валюте счета.
 
fxsaber:
Aceptaré sus detalles con gratitud. Sin ellos no puedo reproducir el "no funciona".
¿Y cómo "intentó" reproducirlo?
 
Dmitry Fedoseev:
¿Y cómo "intentaste" "reproducirlo"?

Ejecuté muchos scripts/asesores de MT4 y analicé si funcionaban correctamente.

También creé mis propias pruebas mientras escribía la biblioteca.

 
fxsaber:

Ejecuté muchos scripts/asesores de MT4 y analicé la corrección de su trabajo.

También creé mis propias pruebas mientras escribía la biblioteca.

¿Cuáles fueron las pruebas relacionadas con el trabajo con el historial?
 

Se detectan algunos rudimentos en el trabajo con el histórico:

   static int MT4OrdersHistoryTotal(void)
     {
      int Res=0;

      if(::HistorySelect(0,::TimeCurrent()))
        {
         const int TotalDeals=::HistoryDealsTotal();

         for(int i=0; i<TotalDeals; i++)
            if(MT4ORDERS::IsMT4Deal(::HistoryDealGetTicket(i)))
               Res++;

         const int TotalOrders=::HistoryOrdersTotal();

         for(int i=0; i<TotalOrders; i++)
            if(MT4ORDERS::IsMT4Order(::HistoryOrderGetTicket(i)))
               Res++;
        }

      return(Res);
     }

Cada vez que se llama a OrdersHistoryTotal(), se recorre todo el histórico de la cuenta con un montón de comprobaciones.

La selección en el histórico por índice también recorre todo el histórico.