Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1482

 
MrBrooklin #:

Estoy de acuerdo, si no hubiera varias posiciones abiertas en un símbolo diferente y en diferentes direcciones. Me refiero a comprar y vender. ¡Pero gracias por el consejo de todos modos!

Saludos, Vladimir.

Da igual cuántas posiciones estén abiertas y si van al norte o a la mierda o en todas direcciones a la vez... La última será PositionsTotal()-1.

 
Alexey Viktorov #:

Da igual cuántas posiciones estén abiertas y si lo están hacia el norte, hacia el norte o en todas las direcciones a la vez... La última será PositionsTotal()-1.

Hola Alexei, estaba un poco confundido. ¡¡¡Tienes razón como siempre!!! )))

Saludos, Vladimir.

 
Alexey Viktorov #:

En realidad, ayer experimenté con el muestreo de posiciones y llegué a la conclusión de que PositionsTotal() se necesita sólo para determinar el número de posiciones. Y este número es necesario sólo para limitar el bucle.

He aquí un bucle de este tipo


funciona incluso si antes se obtiene una lista de órdenes o posiciones del historial. El otro día voy a comprobar si la selección de órdenes pendientes interferirá.

También hay una sutileza aquí.

Si la lista es realmente grande y está ordenada por algún criterio, puede ser más rentable buscar el elemento requerido no buscando en todos los elementos del bucle, sino por división por la mitad, y aquí el conocimiento del número total de elementos de la lista puede ser muy útil.

 
JRandomTrader #:

Aquí también hay sutileza.

Si la lista es realmente grande y está ordenada por algún criterio, puede ser más rentable buscar el elemento requerido no haciendo un bucle por todos los elementos, sino por división por la mitad, y aquí el conocimiento del número total de elementos de la lista puede ser muy útil.

No he dicho que la función sea completamente inútil. Pero en algunos casos se puede y se debe prescindir de ella. Al fin y al cabo, cada función es tiempo. Usted puede escribir un poco a la vez hasta que los frenos....

 
MrBrooklin #:

¡Hola, Alexei! Fui tonto. ¡¡¡Tienes razón como siempre!!! )))

Saludos, Vladimir.

Estoy en lo cierto, pero no especifiqué que la función tal y como la has escrito no funcionará correctamente si se abren varias operaciones en diferentes símbolos.

Ya que sólo comprueba la última, y ésta (la última) puede abrirse en otro símbolo.

 
Aleksandr Slavskii #:

Correcto, pero no especifiqué que la función tal y como la has escrito no funcionará correctamente si se abren varias operaciones en diferentes símbolos.

Ya que sólo comprueba la última, y ésta (la última) puede abrirse en otro símbolo.

Hola Alexander, ya he pensado en este tema, pero no he empezado a hacer la pregunta aquí todavía, porque no he llegado al lugar en el código donde habrá diferentes posiciones de símbolos. ¡Gracias por la pista! )) Ahora estoy perplejo en un punto, pero no quiero traerlo aquí para su revisión pública, ya que hay un deseo implacable de "terminarlo" por mis propios esfuerzos.

Por cierto, me he dado cuenta de que todos mis supuestos "tropiezos" residen en cosas tan pequeñas que no puedo ver. Por ejemplo, el especificador del que me habló Artem Trishkin. Es una cosa tan pequeña, y aquí me he roto la cabeza sobre por qué el script no funciona. O el mismo enlace &. Tanto tiempo perdido en ello. En general, todavía para aprender, aprender y aprender, y en ruso - para leer, leer y leer Documentación.

Saludos, Vladimir.

 
Buenas tardes.


Tengo una cuenta de netting.

En mi Expert Advisor uso el código para controlar las operaciones realizadas:

HistorySelect(0,TimeCurrent());
ulong ticket = OrderGetTicket(0);
N_transacciones = TotalTransacciones();

Pero también necesito estimar el número de operaciones cerradas.
Creo que necesito utilizar el modificador DEAL_ENTRY_OUT.
Pero no entiendo cómo usarlo.

Por favor, ayúdenme.

Saludos, Alexander


 
klycko DEAL_ENTRY_OUT.
Pero cómo usarlo, no puedo entender.

Por favor, ayúdeme.

Atentamente, Alexander


Usted está en la dirección correcta. Pero no lo suficientemente atento


 
klycko DEAL_ENTRY_OUT.
Pero cómo usarlo, no puedo entender.
void  OnTradeTransaction(
   const MqlTradeTransaction&    trans,   // структура торговой транзакции
   const MqlTradeRequest&        request, // структура запроса
   const MqlTradeResult&         result   // структура ответа
)
  {
   if(trans.type==TRADE_TRANSACTION_DEAL_ADD)
     {
      if(HistoryDealSelect(trans.deal) && HistoryDealGetInteger(trans.deal,DEAL_ENTRY)==DEAL_ENTRY_OUT)
        {

           //---

        }

Saludos, Vladimir.

 
Alexey Viktorov #:

Estás en la dirección correcta. Pero no lo suficientemente atento

Hola Alexei, es genial que apoyes a los principiantes que están aprendiendo un lenguaje de programación y no te canses de gente como nosotros. Muchas gracias.

Cuál es el principal problema de los principiantes. Hablaré sólo por mí. Sí, efectivamente, no siempre entiendo cómo aplicar la variedad de posibilidades que ofrece el lenguaje de programación MQL5. Sin formación básica o práctica de programación en lenguajes de alto nivel, es muy difícil adentrarse en este tema. Sólo los miembros del foro como tú me ayudan. Me doy cuenta de que mucha gente está cansada (y a veces no tiene suficiente tiempo o paciencia) de estar constantemente incitando a un recién llegado que ha aparecido de repente en el foro.

¡¡¡¡Me gustaría expresar mi gratitud una vez más a todos los que responden a nuestras preguntas diletantes y desearles - Dios les conceda a todos salud, larga vida, buena suerte y prosperidad!!!!

Saludos, Vladimir.

Razón de la queja: