|
|
|
|
-
Hola, codificadores experimentados!
He experimentado un problema extraño en matrices en MT4. Mi EA está tratando con múltiples pares. Así que necesito usar arreglos.
como se muestra en el código adjunto, declaro algunas variables en forma de matriz antes de init (). más adelante, en un procedimiento para resumir el número de operaciones, el número de lotes y la pérdidaganancia flotante, el cálculo para colocar estos valores en estas variables de matriz declaradas no funcionará.
las 4 alertas () puse en el código todas devuelven 0 para los valores correspondientes (NO. de oficios, lotes y PL), mientras que en realidad se supone que reflejan valores como 2,3,0.6 o 120 ( por ejemplo).
Un ejemplo: esta línea:
Alerta (lt; 2gt ;: este Pairs [i] tiene PL de DoubleToStr (PairNetPL [i], 1));
debería darme
lt; 2gt ;: este USDJPY tiene un PL de 110.5
pero en realidad me da:
lt; 2gt ;: este USDJPY tiene un PL de 0
el problema es que estoy seguro de que OrderProfit () también devuelve 110.5. Al parecer, de alguna manera, los valores simplemente no se pueden transmitir a la matriz, ni siquiera mi código lo escribe.
¿Alguien puede arrojarme una luz aquí?
muchas gracias.
Código insertado double PairBuys # 91; # 93;, PairSells # 91; # 93;, PairNetPos # 91; # 93;, PairNetLot # 91; # 93;, PairNetPL # 91; # 93 ;;/antes del init () void Count_PL_Trades_Lots () {TotalTrades = 0; EAPL = 0.0; ArrayInitialize (PairBuys, 0); ArrayInitialize (PairSells, 0); ArrayInitialize (PairNetPos, 0); ArrayInitialize (PairNetLot, 0); ArrayInitialize (PairNetPL, 0); para (int k = 0; k lt; OrdersTotal (); k ) {OrderSelect (k, SELECT_BY_POS, MODE_TRADES); if (OrderMagicNumber () == MagicNumber OrderLots () == Lots) {for (int i = 0; i lt; ArraySize (Pairs); i ) {if (OrderSymbol () == Pairs # 91; i # 93;) {Alerta (lt; 1gt ;: par es Pairs # 91; i # 93; con el tipo de OrderType () , y PL OrderProfit ()); PairNetPL # 91; i # 93; = PairNetPL # 91; i # 93; OrderProfit (); Alerta (lt; 2gt ;: this Pairs # 91; i # 93; tiene PL de DoubleToStr (PairNetPL # 91; i # 93;, 1)); EAPL = EAPL PairNetPL # 91; i # 93 ;; if (OrderType () == OP_BUY) {PairBuys # 91; i # 93; = PairBuys # 91; i # 93; 1; Alerta (lt; 3gt ;: DoubleToStr (PairBuys # 91; i # 93;, 1)); } if (OrderType () == OP_SELL) PairSells # 91; i # 93; = PairSells # 91; i # 93; 1; Alerta (WindowExpertName () Pairs # 91; i # 93; tiene DoubleToStr (PairBuys # 91; i # 93;, 0) buys; y DoubleToStr (PairSells # 91; i # 93;, 0) se vende .); }}}} para (i = 0; i lt; ArraySize (Pairs); i ) {if (PairBuys # 91; i # 93; gt; PairSells # 91; i # 93;) PairNetPos # 91; i # 93; = PairBuys # 91; i # 93; - PairSells # 91; i # 93 ;; de lo contrario PairNetPos # 91; i # 93; = -PairBuys # 91; i # 93; PairSells # 91; i # 93 ;; PairNetLot # 91; i # 93; = PairNetPos # 91; i # 93; * Un montón; TotalTrades = TotalTrades PairNetPos # 91; i # 93 ;; }/Alerta (WindowExpertName () - TotalTrades: DoubleToStr (TotalTrades, 0)); retorno (0); }
Permisos de publicación
- No puedes crear nuevos temas
- No puedes responder temas
- No puedes subir archivos adjuntos
- No puedes editar tus mensajes
-
Reglas del foro
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso.
Más información y política de cookies.
Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español.
Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.