La gran y terrible MT4 para siempre (o cómo hacer una estrategia de transición) - página 17

 
Andrey Khatimlianskii:

Estamos deseando que llegue. Si hay algo en lo que necesites ayuda, escríbenos.

Todo el mundo está invitado a comprobar la primera versión de la solución.

Библиотеки: TradesID
Библиотеки: TradesID
  • 2021.03.29
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: TradesID
 
fxsaber:

Todo el mundo está invitado a comprobar la primera versión de la solución.

Es una pena que nadie lo haya comprobado en sus configuraciones. Consideremos que el problema de la duplicación de la posición está resuelto.

 
fxsaber:

Es una pena que nadie lo haya probado en sus propias configuraciones. Supongamos que el problema de la duplicación de posiciones se ha resuelto.

No vi el sentido de hacer la misma prueba. Ahora no hace tictac, no puedo comprobarlo.

 
Andrey Khatimlianskii:

No vi el sentido de hacer la misma prueba.

Si la prueba de alguien no funciona, todos los demás tendrán problemas.

 

Este es un lugar interesante:

else if (::HistoryOrderGetInteger(this.Orders[i], ORDER_TICKET) != this.Orders[i])

¿Cuándo y por qué puede producirse esta desigualdad?

En general el código no está claro todavía, tendré que dedicar tiempo a analizarlo :/

No puedo decir que sea fácil y rápido y que se pueda llamar en cada tic.

En lugar de ByPass.Is(), debe intentar llamar a cualquier otro código que se ejecute en el mismo tiempo.

O tal vez la solución esté relacionada con su tiempo de ejecución.

¿Quizás durante este tiempo todas las listas y cantidades se normalicen de forma natural?

 
Dmitry Fedoseev:

Este es un lugar interesante:

¿Cuándo y por qué puede producirse esta desigualdad?

En general el código no está claro todavía, tendré que dedicar tiempo a analizarlo :/

No puedo decir que sea fácil y rápido y que se pueda llamar en cada tic.

En lugar de ByPass.Is(), debe intentar llamar a cualquier otro código que se ejecute en el mismo tiempo.

O tal vez la solución esté relacionada con su tiempo de ejecución.

¿Quizá todas las listas y cantidades se normalicen de forma natural durante este tiempo?

Otra opción es comprobar en FORTS a las 10 de la mañana en punto.

 
Dmitry Fedoseev:

Es un lugar interesante:

Has hecho bien en duplicar tus preguntas sobre la propia aplicación en su hilo. Lo responderé allí.

 

Necesito escribir un script en una MT5 que abra 100 posiciones en una cuenta vacía.


En MT4 lo resolví de esta manera.

void OnStart()
{
  while (OrdersTotal() < 100)
    OrderSend(_Symbol, OP_BUY, 0.1, Ask, 0, 0, 0);
    
  Print(OrdersTotal());
}


¿Quién tiene una solución en MT5?

 
fxsaber:

Necesito escribir un script en una MT5 que abra 100 posiciones en una cuenta vacía.


En MT4 lo resolví de esta manera.


¿Quién tiene una solución en MT5?

¿Qué te parece esto?

//+------------------------------------------------------------------+
//|                                                    maxLimits.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>
//---
CTrade m_trade; // trading object
//---
uint maxLimits=100; // Кол-во Позиции Открыть в одну сторону
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for(uint i=0; i<maxLimits; i++)
     {
      //--- open position
      if(m_trade.Buy(0.01))
         printf("Position by %s to be opened",_Symbol);
     }
  }
//+------------------------------------------------------------------+
Foto de
 
SanAlex:

¿Puedes hacerlo?

No.
El resultado no está garantizado.
Razón de la queja: