Der große und schreckliche MT4 für immer (oder wie man einen Übergang strategisch plant) - Seite 17

 
Andrey Khatimlianskii:

Wir freuen uns schon darauf. Wenn Sie Hilfe benötigen, schreiben Sie uns bitte.

Jeder ist herzlich eingeladen, die erste Version der Lösung zu testen.

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

Jeder ist herzlich eingeladen, die erste Version der Lösung zu testen.

Es ist schade, dass niemand dies in seinen Konfigurationen überprüft hat. Gehen wir davon aus, dass das Problem der Positionsverdopplung tatsächlich gelöst ist.

 
fxsaber:

Es ist schade, dass niemand dies an seinen eigenen Konfigurationen getestet hat. Gehen wir davon aus, dass das Problem der Positionsverdopplung tatsächlich gelöst ist.

Ich sah keinen Sinn darin, einfach den gleichen Test durchzuführen. Jetzt tickt es nicht, ich kann es nicht überprüfen.

 
Andrey Khatimlianskii:

Ich sah keinen Sinn darin, einfach den gleichen Test durchzuführen.

Wenn der Test von jemandem nicht funktioniert, werden alle anderen in Schwierigkeiten geraten.

 

Dies ist ein interessanter Ort:

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

Wann und warum kann diese Ungleichheit auftreten?

Im Allgemeinen ist der Code noch nicht ganz klar, ich muss Zeit darauf verwenden, ihn zu parsen :/

Ich kann nicht sagen, dass es einfach und schnell ist und bei jedem Tick aufgerufen werden kann.

Anstelle von ByPass.Is() sollten Sie versuchen, einen anderen Code aufzurufen, der in der gleichen Zeitspanne ausgeführt werden kann.

Vielleicht hängt die Lösung aber auch nur mit der Ausführungszeit zusammen.

Vielleicht werden sich in dieser Zeit alle Listen und Mengen auf natürliche Weise normalisieren?

 
Dmitry Fedoseev:

Dies ist ein interessanter Ort:

Wann und warum kann diese Ungleichheit auftreten?

Im Allgemeinen ist der Code noch nicht ganz klar, ich muss Zeit darauf verwenden, ihn zu parsen :/

Ich kann nicht sagen, dass es einfach und schnell ist und bei jedem Tick aufgerufen werden kann.

Anstelle von ByPass.Is() sollten Sie versuchen, einen anderen Code aufzurufen, der in der gleichen Zeitspanne ausgeführt werden kann.

Vielleicht hängt die Lösung aber auch nur mit der Ausführungszeit zusammen.

Vielleicht werden sich alle Listen und Mengen in dieser Zeit auf natürliche Weise normalisieren?

Eine weitere Möglichkeit besteht darin, um Punkt 10 Uhr auf FORTS nachzusehen.

 
Dmitry Fedoseev:

Es ist ein interessanter Ort:

Sie haben gut daran getan, Ihre Fragen zur Umsetzung selbst in ihrem Thread zu vervielfältigen. Ich werde sie dort beantworten.

 

Ich muss ein Skript für einen MT5 schreiben, das 100 Positionen auf einem leeren Konto eröffnet.


Auf MT4 habe ich das so gelöst.

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


Wer hat eine Lösung für MT5?

 
fxsaber:

Ich muss ein Skript auf einem MT5 schreiben, das 100 Positionen auf einem leeren Konto eröffnet.


Auf MT4 habe ich das so gelöst.


Wer hat eine Lösung für MT5?

Wie wäre es damit?

//+------------------------------------------------------------------+
//|                                                    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 von
 
SanAlex:

Können Sie das tun?

Nein.
Das Ergebnis ist nicht garantiert.