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

 
lowech:

Por ejemplo, abrí una posición de compra utilizando la siguiente condición OPEN[0]> OPEN[3] y cerré el TakeProfit . Después de cerrar la orden, la posición de compra sigue activa, por lo que el Asesor Experto abrirá otra posición de compra. Necesito evitar la apertura de más órdenes cuando se alcanza el TakeProfit. Me refiero a una orden de mercado, no a una orden pendiente.

Ponga este código antes de la condición de apertura de la posición:

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров
{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы
}  }  }
 
paladin80:

Ponga este fragmento de código antes de la condición de apertura de la posición:


¡Muchas gracias! ¡Probemos!

Lo he probado, pero sigue abriendo un montón de órdenes. ¿Hay alguna forma de hacer que el experto en TakeProfit se desactive cuando se cierra la orden?

 
lowech:

¡Muchas gracias! ¡Probemos!

Lo he probado, sigue abriendo un montón de órdenes. ¿Hay alguna forma de desactivar el Asesor Experto TakeProfit cuando se cierra una orden?

Si está en lo cierto al poner este trozo de código antes de la condición de apertura de posición, su EA no debería abrir más de 1 posición para esta divisa. En cuanto a la desactivación del EA después de TakeProfit - no hay necesidad de desactivarlo. Es mejor hacer el código correcto de inmediato.
 
paladin80:
Si está en lo cierto al poner este trozo de código antes de la condición de apertura de posición, su Asesor Experto obviamente no debería abrir más de 1 posición para una divisa determinada. En cuanto a la desactivación del EA después de TakeProfit - no hay necesidad de desactivarlo. Es mejor hacer el código correcto de inmediato.

if(OrdersTotal()>0) //encuentra el número total de posiciones/órdenes

{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы 
}  }  }

Este código, según entiendo, busca posiciones abiertas! Mi problema es que el EA abre orden tras orden, no de forma consecutiva, y después de que la orden anterior cierre el TakeProfit o el StopLoss, la posición se abrirá de nuevo y sólo 1 orden !

 
lowech:

if(OrdersTotal()>0) //encuentra el número total de posiciones/órdenes

Este código, según entiendo, está buscando posiciones abiertas! Mi problema es que el EA abre orden tras orden, no en una fila, y después de que la orden anterior se cierre la posición TakeProfit o StopLoss se abrirá de nuevo y sólo 1 orden !

¿He entendido bien el algoritmo?
Tras activar una condición de entrada, sólo se abre una posición. Si cierra con ganancias o pérdidas, no opere el día que cerró. Por cierto, ¿operas con un símbolo o con varios?
No sé lo de desactivar el EA porque no lo uso, quizás alguien que sepa aquí escriba si es posible.
 
La función SendFTP envía un archivo de texto al servidor. Pero en el servidor el archivo está vacío - 0 KB. ¿Cuál puede ser el problema?
 
serler2:
La función SendFTP envía un archivo de texto al servidor. Pero en el servidor el archivo está vacío - 0 KB. ¿Cuál puede ser el problema?
¿Y en el cliente?
 
Reshetov:
¿Y en el cliente?

He probado muchas opciones. Tanto la imagen como el texto y las estadísticas. Todos vienen con volumen cero. En el ordenador local, por supuesto, los archivos no están vacíos.

 
serler2:

He probado muchas opciones. Tanto la imagen como el texto y las estadísticas. Todos vienen con volumen cero. En el ordenador local, por supuesto, los archivos no están vacíos.

Entonces XZ, es decir, preguntar a los telépatas, o codificar en el estudio.

Sin embargo, no siempre el servidor tiene éxito con las transacciones de MT4. Hubo casos en los que cambiar entre los modos pasivo-activo ayudó, y hubo casos en los que nada ayudó. No todos los servidores ni todos los clientes soportan el protocolo RFC 959 completo, de ahí los problemas.

 

¡Buenas noches!

Estimados profesionales, ¿podrían aconsejar a un novato? Estoy escribiendo un EA y he tropezado con un momento determinado:

Estoy tratando de abrir órdenes de acuerdo a un determinado esquema y pueden cerrarse en el día de apertura o permanecer en el mercado durante otros 3 días.

No consigo averiguar cómo registrarme para poder encontrar una orden que ha estado activa durante 3 días y cerrarla sin cerrar una orden abierta posteriormente.

El esquema de apertura es el mismo para todos los pedidos. Asigno magias a todos ellos de la siguiente manera: Magia_s =Magia_s+1.

Por favor, si alguien sabe cómo solucionar este problema, que escriba una respuesta. Estaré muy agradecido :)