[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 762

 
FoxUA:

La cuestión es cómo escribir esta función correctamente

funciona así

y necesito que ambos funcionen por favor expliquen

No es una pregunta muy clara, pero está bien.
Es muy fácil escribirlo, casi igual que el tuyo:

void tmp_function(){
   if(my_total_order == 0){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot,PRAsk); 
      OpenBuyLimitOrder(Lot,PRAsk);
   }
   if(my_total_order == 5){
      OpenBuyOrder(Lot,PRAsk);
      OpenBuyStopOrder(Lot*3,PRAsk); 
      OpenBuyLimitOrder(Lot*3,PRAsk);
   }
}
 
ToLik_SRGV:

La pregunta no es muy clara, pero está bien.
Es muy sencillo de escribir, casi igual que el tuyo:


No soy muy bueno para explicar las cosas, ¿qué se puede hacer? Bueno, esto fue una digresión, y ahora de hecho hay un código compuesto de 2 partes, cada una es el nombramiento de la variable por lo que la pregunta es si es posible cómo combinar estas dos funciones sin cortar nada de ellos

if(my_total_order == 0)           //|                     //|   
{double Lt=Lot;                  //|                     //|
  double PR=PRAsk;                //| --- первая функция  //|
  OpenBuyOrder(Lt,PR);            //|                     //|
  OpenBuyStopOrder(Lt,PR);        //|                     //|
  OpenBuyLimitOrder(Lt,PR);}      //|                     //|
//+--------------------------------+                      //|----  надо обеденить в одну
if(my_total_order == 5)           //|                     //|
{double Lt=Lot*3;                //|                     //|
  double PR=PRBid;                //| --- вторая функция  //|
  OpenSellOrder(Lt,PR);           //|                     //|
  OpenSellStopOrder(Lt,PR);       //|                     //|
  OpenSellLimitOrder(Lt,PR);}     //|                     //|

проблема   'Lt' - variable already defined (уже определенная переменная),       
           'PR' - variable already defined (уже определенная переменная), 
'Lt' 'PR' -  они как раз и нужны но как им присвоить разные значения ? 



 
FoxUA:

No soy muy bueno para explicar las cosas, ¿qué se puede hacer? Bueno, eso fue una digresión, y ahora de hecho hay un código compuesto de 2 partes, cada una es el nombramiento de la variable por lo que la pregunta es si es posible combinar estas dos funciones sin cortar nada de ellos

Pueden declararse como globales, por ejemplo, fuera de la función.
¿Y sólo se necesitan para pasar los valores Lot y PRAsk? Es posible, como he escrito, pasarlos directamente.
 
ToLik_SRGV:
Puede declararlos como globales, por ejemplo, fuera de las funciones.
¿Sólo son necesarios para pasar los valores de Lot y PRAsk? Puedes pasarlos directamente, como he escrito.

Sí, pero el valor de un lote será de 10 y + cada uno de ellos estará en PRAsk y PRBid total de las funciones para abrir, a saber, " int OpenBuyOrder(double Lt, double PR).............." y el resto, será el infierno de un montón, así que estoy buscando cómo no describiría en 3 volúmenes

 

LA SOLUCIÓN HA SIDO ENCONTRADA, GRACIAS A TODOS.

 

Otra pregunta, ¿cómo puedo desde una orden de mercado, precio StopLoss yTakeProfit ser asignado a una variable de tiempo?

 
Techno:
en sin visualización, ¿por qué no funciona? Objetos gráficos, ¿objetos de esquina que no usas?
Aunque se trate de una estrategia básica sin gráficos, lo mismo... vacío en los resultados, como en el vacío...
 
FoxUA:

Otra pregunta es ¿cómo puedo asignar el precio StopLoss y TakeProfit de una orden de mercado a una variable de tiempo?

Busque la orden requerida en el mercado y utilice las funciones OrderStopLoss() y OrderProfit() para obtener la información que necesita...

================================================================================

double OrderStopLoss( )
Devuelve el precio de cierre cuando se alcanza el stop loss de la orden actualmente seleccionada.
El pedido debe ser preseleccionado mediante la función OrderSelect().

double OrderProfit( ) )
Devuelve el valor de la ganancia neta (sin canjes ni comisiones) para la orden actualmente seleccionada. En el caso de las posiciones abiertas, se trata del beneficio actual no realizado. En el caso de las órdenes cerradas, es el beneficio fijo.
El pedido debe ser preseleccionado mediante la función OrderSelect().
================================================================================
... y lo escribes en las variables.
 
artmedia70:

Busque la orden requerida en el mercado y utilice OrderStopLoss() y OrderProfit() para recuperar la información que necesita...

================================================================================

double OrderStopLoss( )
Devuelve el precio de cierre de una posición cuando se alcanza el nivel de stop loss de la orden actualmente seleccionada.
El pedido debe ser preseleccionado mediante la función OrderSelect().

double OrderProfit( )
Devuelve el valor de la ganancia neta (sin canjes ni comisiones) para la orden actualmente seleccionada. En el caso de las posiciones abiertas, se trata del beneficio actual no realizado. En el caso de las órdenes cerradas, es el beneficio fijo.
El pedido debe ser preseleccionado mediante la función OrderSelect().

Lo siento, pero no he preguntado cómo debo encontrar los datos de StopLoss y TakeProfit; ¡ya lo sabemos!

 

Estimados expertos en programación ¿Podría añadir la función de comprobación de los horarios de apertura al código del EA? Es decir, el EA debe abrir posiciones sólo dentro de un determinado intervalo de tiempo, por ejemplo de 8 am a 8 pm en la zona horaria de Moscú.

Archivos adjuntos: