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
Perdón por la pregunta indiscreta a los organizadores del Campeonato:
Cómo se gestionará la fiscalidad del premio (porque el importe de cada premio es muy grande):
¿Tendrá que pagar cada premiado su propio impuesto? (¿y a qué ritmo?) ¿O se centralizará? (es decir, los impuestos ya se tienen en cuenta...).
Sería una pena renunciar a la mitad del premio por los impuestos.
En realidad, es mejor no ganar nada para no sentir pena... .
Perdón por la pregunta indiscreta a los organizadores del Campeonato:
Cómo se gestionará la fiscalidad del premio (porque el importe de cada premio es muy grande):
¿Tendrá que pagar cada premiado su propio impuesto? (¿y a qué ritmo?) ¿O se centralizará? (es decir, los impuestos ya se tienen en cuenta...).
Sería una pena renunciar a la mitad del premio por los impuestos.
Sí, los premiados pagan sus propios impuestos; es una práctica habitual en los premios de todo el mundo.
La pregunta es: si el código de error no es 135 o 138, ¿habrá un bucle? Si es así, ¿cómo se puede evitar esto, con la garantía de que las órdenes se cierren?
No hay manera de probar si este cierre de órdenes funcionará siempre correctamente:
Vuelve a leer el artículo de consejos, por favor.
Descuido flagrante del control de errores con el bucle
(Tengo control de errores, las órdenes pendientes no se utilizan, o debo hacer una condición de salida del bucle también? ¿Qué hacer entonces con la garantía de cierre de pedido? ¿O quizás no he procesado todos los códigos de error?
Falta de control de OrderSelect - procesos asíncronos en acción
(sí, ¡no compruebo lo que devuelve Order_Select! Digamos que si en este caso concreto devuelve false, ¿qué cambiará dentro del bucle, o qué será incorrecto? No estoy modificando el pedido, ¡lo estoy cerrando!)
Omisión de la función de actualización del entorno de mercado a través de RefreshRates()
(Creo que lo refresco, todo debería estar bien aquí)
¿Tal vez haya un código listo para cerrar TODOS los pedidos? Te agradecería que lo publicaras.
P.D. lo que Rosh sugirió http://www.alpari-idc.ru/ru/experts/articles/9.html , no garantiza el cierre de las órdenes.
- El resultado de OrderSelect no se comprueba
- el resultado de OrderClose() no se comprueba explícitamente
- GetLastError() puede ser llamado sin ninguna operación comercial (por ejemplo, si se ha encontrado una orden pendiente)
- RefreshRates() no se llama siempre, sino sólo cuando hay un fallo - esto es un grave error
- si hay órdenes pendientes en la lista, se trata de un bucle al 100%
Como resultado: hay 5 errores en 9 líneas - el código sólo puede ser desechado.Hasta 5 errores:
- El resultado de OrderSelect no se comprueba
- el resultado de OrderClose() no se comprueba explícitamente
- GetLastError() puede ser llamado sin ninguna operación comercial (por ejemplo, si se ha encontrado una orden pendiente)
- ...
Como resultado: hay 5 errores en 9 líneas - el código sólo puede ser desechado.El OrderSelect debe seleccionar y el OrderClose debe cerrar las órdenes necesarias.
Y no debería haber ningún error :-)
O a costa del cliente :-)
Hay incluso 5 errores:
Restricciones: no se utilizan las órdenes pendientes
1. ¿Por qué debemos comprobar el resultado si tenemos que cerrar una orden? Si devuelve false, volverá a él en la siguiente pasada, ya que se utiliza un bucle while.
2. Véase el punto 1.
3. Para ello existe una comprobación de los códigos de error.
4. Si se actualiza siempre, no tiene sentido comprobar los errores :(
5. No hay pedidos pendientes
Todos los ejemplos de cierre de pedidos que he encontrado en mi búsqueda son de un solo paso y sólo funcionan si todo está bien con el servidor, no hay recotizaciones, etc. Y todos ellos conducen a que un día no se cierre una orden y obtengamos un buen beneficio... Si me equivoco, corrígeme o dame un enlace donde pueda convencerme de que estoy equivocado.
Por supuesto, soy muy consciente de que mi código puede dar lugar a un bucle, pero en mi opinión es mejor que el riesgo de no cerrar una orden, lo que podría dar lugar a graves pérdidas financieras.
Aunque sería mejor que todos los pedidos se cerraran con un 100% de garantía y no hubiera posibilidad de que un pedido merodeara, este es el código que me gustaría que me dieran =)
Aquí hay un código ligeramente modificado, que debería considerar incluso las órdenes pendientes:
¿No es tan "temerario" como el anterior?
Sigo sin entender, ¿por qué comprobar OrderSelect y OrderClose en este caso?
OrderSelect debe estar siempre marcado, esto se indica explícitamente en los Consejos útiles:
Por lo general, un comerciante percibe su programa como una tarea única y exclusiva. Pero en realidad, hay una gran cantidad de cambios asíncronos en la cuenta de operaciones justo durante el funcionamiento del Asesor Experto. Las posiciones se modifican, se añaden y se eliminan. Si no se controla el resultado de cada llamada a OrderSelect(), puede ocurrir que en un momento dado el experto opere con datos erróneos (cero) y haga un movimiento equivocado.
Por desgracia, no hay garantías en las operaciones comerciales. El código anterior es mucho mejor que el anterior.
OrderSelect debe estar siempre marcado, esto se indica explícitamente en los Consejos útiles:
... Los puestos se modifican, se añaden y se eliminan. ...
No hay comentarios sobre "añadido y eliminado" :-(
Por favor, dame un ejemplo de código que funcione usando OrderSelect para obtener OrderCloseTime.