![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
Como estoy escribiendo para opciones binarias he hecho las cosas un poco diferentes:
¿Esto sería probablemente correcto?
Este es el problema
Hay 2 líneas en el terminal para 1 orden
Y para la orden que fue colocada por el Asesor Experto, Profit == 0
Creo que este es el problema
Hay 2 líneas en el terminal para 1 orden
Y en la orden que ha sido colocada por el Asesor Experto, Profit == 0
¿dónde has encontrado un precio por debajo de cero - muéstrame una captura de pantalla?
No se ve en esta captura de pantalla
Ya te han aconsejado sobre todo el algoritmo, no quiero interferir y ni siquiera he mirado tu código y los mismos consejos... Pero esto
me llamó la atención. Así que mi pregunta es: ¿No es más fácil y más legible utilizar el operador de conmutación
Creo que es más fácil de leer y entender. Quizá también funcione un poco más rápido.¿Quizás en lugar de una función se utilice un array volumen[n]?
Tal vez sea así... Estoy de acuerdo.
¿Dónde has encontrado un precio inferior a cero, muéstrame una captura de pantalla?
No hay nada de eso en esta captura de pantalla.
Estoy tratando de obtener OrderProfit() - da 0
aquí es una confirmación encontrado beneficio -0,01 como sale de esa línea adicional
![](https://c.mql5.com/3/376/Screenshot_8.png)
Tal vez sea así... Estoy de acuerdo.
No entiendo el precio negativo, todavía no está ahí.
contar el beneficio total así (extracto)
Lo que necesita está resaltado
for(i=0;i<OrdersHistoryTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderType()==ORDER_TYPE_BALANCE && OrderCloseTime()>startDate)Withdrawal=Withdrawal+OrderProfit()+OrderCommission()+OrderSwap();
if((OrderType()==ORDER_TYPE_BUY || OrderType()==ORDER_TYPE_SELL))
{
if(OrderCloseTime()>iTime(Symbol(),PERIOD_D1,0))hystCurrDay=hystCurrDay+OrderProfit()+OrderCommission()+OrderSwap();
if(OrderCloseTime()<iTime(Symbol(),PERIOD_D1,0) && OrderCloseTime()>iTime(Symbol(),PERIOD_D1,1))hystPrevDay=hystPrevDay+OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
No me pagan, es para mí y para mi desarrollo personal. Después del trabajo, es interesante hacer una búsqueda del grial
No me hagas caso. Sólo yo y Nikolay estamos teniendo una pequeña reunión...
La esencia de su problema: dado que OrderProfit() en el corretaje de divisas no da ningún valor real, tiene que definir una orden cerrada positiva/negativamente como la diferencia entre el precio de cierre y el precio de apertura de la orden. Ya se le ha hablado de esto
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
¿Comprobar qué he hecho mal?
Renat Akhtyamov, 2021.12.21 09:27
no entienden la lógica que hay detrás
¿Cómo es posible?
¿cómo el precio de cierre de la orden puede ser inferior a cero?
la orden de COMPRA estará en la posición positiva si el precio de cierre es mayor que el de apertura
aquí está la condición de una compra plus (excluyendo las comisiones y el canje):
Si es al revés, eso es un punto negativoNo me pagan tanto por mí y por mi autodesarrollo. Después del trabajo, es divertido ir a la búsqueda del grial.
Sí, Natalia - eso era sólo un meme de la serie "Cuando te pagan por una línea de código".
Ese es el tipo de humor que tienen los programadores.
![](https://c.mql5.com/3/376/2569586369970__1.png)
En tu caso no necesitas una función.
Sólo tienes que formar las variables Volumen1 ... Las variables Volumen10 deben formarse inicialmente como un array volumen[10]
y luego referirse a sus elementos volumen[n] por el índice n.
No te preocupes - casi todos los programadores han pasado por esto.
Lo principal es que te guste mucho la programación. Puedo sentirlo.
Entonces llegarás lejos.