Discusión sobre el artículo "Experto comercial universal: trabajando con órdenes pendientes y cobertura (parte 5)" - página 2
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
Sesgo hacia los métodos const. Me hice programador en C# - y allí no existe, porque la limitación impuesta por el modificador no es efectiva.
Ingenuamente pensé que este modificador también le dice al compilador dónde crear código nativo más óptimo durante la compilación.....
Yo mismo lo uso para autocontrolarme.
El tiempo principal en el probador de estrategias se gasta en el trabajo de su infraestructura (desplazamiento de barras, emulación del entorno comercial, etc.) El código del Asesor Experto en sí toma mucho menos tiempo.
Por otra parte, la creación de perfiles ha demostrado que los principales métodos de CSTartegy que consumen muchos recursos son los métodos BuyInit, SellInit, BuySupport y SellSupport, es decir, la propia lógica del Asesor Experto. Todo el resto de la carga se compila en código plano de forma óptima, o simplemente se elimina si no se utiliza. Por eso se justifica la programación OOP de alto nivel.
Tenga en cuenta que en los Asesores Expertos más o menos complejos con muchas reglas y una infraestructura pesada, la programación en una forma inicialmente plana (sin funciones y OOP) conducirá a errores inevitables del programador, y como consecuencia el rendimiento de tal Asesor Experto será aún menor que con OOP. Los tiempos del ensamblador han terminado. Hace tiempo que el compilador derrotó al ser humano en ciertos ámbitos de la optimización. Queda para un humano definir una arquitectura inicialmente competente y escalable con un número mínimo de interfaces y una buena manejabilidad.
.
Ingenuamente pensé que este modificador también le dice al compilador dónde crear código nativo más óptimo durante la compilación......
Yo mismo lo uso para el autocontrol.
Estoy a favor de OOP con las manos y los pies. Siempre y cuando no se escondan detrás soluciones de muleta, como con multisymbol OnTick. Que oficialmente es considerado por los desarrolladores como una solución no muleta.
Desgraciadamente, aquí no se puede hacer nada a nivel de usuario. Aunque OnTick en CStrtategy es multivalente, su multivalencia también se emula mediante muletillas. Simplemente en cada evento entrante se solicita el tick de otro instrumento, y si ha cambiado, se genera un nuevo evento OnTick para este instrumento. En FORTS, por cierto, CStrategy proporciona un OnTick realmente multidivisa, gracias al evento OnBookEvent. Pero de nuevo, esto es una emulación cuando se trabaja en el probador.
Otra opción es proporcionar CStrategy con un indicador de recursos. Al inicio CStrategy lanza una instancia de este indicador en el símbolo necesario y recibe de él el evento de llegada de un nuevo tick. A continuación, se convierte en OnTick CStrategy. Se trata de una muletilla clásica, pero toda la implementación se oculta magistralmente entre bastidores, y cualquier estrategia funciona de forma unificada sin saber cómo se recibieron estos ticks.
Desafortunadamente, aquí no se puede hacer nada a nivel de usuario. Aunque OnTick en CStrtategy es multidivisa, su multidivisa también se emula mediante muletillas. Simplemente en cada evento entrante se solicita el tick de otro instrumento, y si ha cambiado, se genera un nuevo evento OnTick para este instrumento. En FORTS, por cierto, CStrategy proporciona un OnTick realmente multidivisa, gracias al evento OnBookEvent. Pero de nuevo, esto es una emulación cuando se trabaja en el probador.
Desafortunadamente, este enfoque pierde ticks.
Otra opción es proporcionar CStrategy con un indicador de recursos. Al inicio CStrategy lanza una instancia de este indicador en el símbolo necesario y recibe de él el evento de llegada de un nuevo tick. A continuación, se convierte en OnTick CStrategy. Esta es una variante clásica de muleta, pero toda la implementación se oculta magistralmente entre bastidores, y cualquier estrategia funciona de forma unificada sin saber cómo se recibieron estos ticks.
Lamentablemente, este enfoque falla garrapatas.
Sí, esta opción está aprobada por los desarrolladores. Pero, en mi humilde opinión, parece una muletilla terrible si tenemos en cuenta cómo se gastan los recursos de un probador optimizado en la tarea más sencilla para otras plataformas. Sin duda, la programación orientada a objetos oculta la muleta de forma magistral.He leido en diagonal, articulos muy utiles, apenas puedo pasar por ellos - tal vez me he perdido algo, me interesan los colgantes, pero faltan muchos datos en el impulso, por favor apunten con el dedo... o tengo que introducirlos yo mismo????
He leido en diagonal, articulos muy utiles, apenas puedo pasar por ellos - tal vez me he perdido algo, me interesan los colgantes, pero faltan muchos datos en el impulso, por favor apunten con el dedo... o tengo que introducirlos yo mismo????
Si no entiendes algo, puedes preguntar en este hilo.