Fehler, Irrtümer, Fragen - Seite 1614

 
Wenn ein SellLimit im Tester aufgrund des Verfalls oder der Beendigung eines Backtests gelöscht wird, entspricht sein Verfallsdatum fälschlicherweise dem Datum der ausstehenden Order.

Wenn Sie das Verfallsdatum über TRADE_ACTION_MODIFY festlegen, wird es im Testgerät nicht ausgelöst.

Wiedergabe
void OnInit()
{
  MqlTradeRequest Request = {0};

  Request.action = TRADE_ACTION_PENDING;
  
  Request.symbol = Symbol();
  Request.volume = 1;
  Request.price = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
  
  Request.type = ORDER_TYPE_SELL_LIMIT;

  MqlTradeResult Result;
  
  if (OrderSend(Request, Result))
  {
    Request.action = TRADE_ACTION_MODIFY;
    Request.order = Result.order;
    
    Request.type_time = ORDER_TIME_SPECIFIED;
    Request.expiration = TimeCurrent() + 10000;
    
    if (OrderSend(Request, Result))
      if (OrderSelect(Request.order))
        Print("SetExpiration = " + (string)(datetime)OrderGetInteger(ORDER_TIME_EXPIRATION)); // установили дату экспирации        
  }
}

void OnDeinit( const int reason )
{  
  if (HistorySelect(0, TimeCurrent()))
  {
    const ulong Ticket = HistoryOrderGetTicket(0);
   
    if (Ticket > 0)
    {
      // Дата экспирации изменилась - стала равна дате установки ордера!
      Print("NowExpiration = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_EXPIRATION));
     
      // При этом ордер по ранее установленной дате экспирации не удалился!     
      Print("DeleteTime = " + (string)(datetime)HistoryOrderGetInteger(Ticket, ORDER_TIME_DONE));
    }
  }
}

 
Andrey Dik:

Historische Daten nehmen sehr viel Platz in Anspruch (dies ist keine Beschwerde, sondern eine Feststellung). Ich muss mehrere Terminals verwenden, und jedes von ihnen sammelt Gigabytes an Verlaufsdaten, die in den Ordnern des Testers und des Terminals dupliziert werden.

Können wir alle Verlaufsdateien in einem Ordner ablegen und den Referenzordner in den Terminals angeben? Werden wir nicht Probleme mit dem Zugriff auf die Historie zwischen verschiedenen Terminals haben?

Ich habe es ausprobiert. Jetzt habe ich mehrere Terminals, deren Tester auf einen einzigen Ordner mit dem Verlauf zugreifen. Mit Ausnahme von Beschwerden im Endstadium wie:

2016.07.19 16:39:02.276 Spreads config file open error [Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (32)]

2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (32)]

Ich sehe keine Probleme mit der Operation. Juhu!... Hunderte von Gigabytes an Festplattenspeicherplatz gespart!

Der Service Desk hat mich gewarnt, dass dies ein Risiko für den gemeinsamen Datenzugriff darstellt.


 
Andrey Dik:

Ich habe es ausprobiert. Ich habe jetzt mehrere Terminals und deren Tester, die auf einen einzigen Verlaufsordner zugreifen. Mit Ausnahme von Beschwerden im Endstadium wie:

2016.07.19 16:39:02.276 Spreads config file open error [Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (32)]

2016.07.19 16:39:02.276 Spreads config file open error [*****symbols\spreads-*********.dat][Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (32)]

Ich sehe keine Probleme mit der Operation. Juhu!... Hunderte von Gigabytes an Festplattenspeicherplatz gespart!

Der Service Desk hat mich gewarnt, dass dies ein Risiko für den gemeinsamen Datenzugriff darstellt.


Wie haben sie das gemacht?
 
coderex:
und wie haben Sie es umgesetzt?

Ich habe einen separaten Ordner mit dem Namen Bases erstellt und den Verlauf von einem der Terminals dorthin übertragen. Danach habe ich in allen Terminals und ihren Testern anstelle von echten Ordnern mit der Historie Links wie Junction zu einem gemeinsamen Ordner gesetzt.

Besonders bei der Nutzung mehrerer Terminals auf einem VPS können Sie durch die Wahl eines kleineren Speicherplatzes echte Einsparungen erzielen.

 
Ich arbeite mit einem Offline-Tester. Wie kann ich sicherstellen, dass das Protokoll nicht mit Hunderttausenden von Einträgen verstopft wird?
2016.07.21 07:48:41.578 MQL5.community  authorization failed

 
Wie hat es die Standardbibliothek geschafft, den Aufruf von ::OrdersTotal() zu vermeiden?
 
fxsaber:
Ich arbeite mit einem Offline-Tester. Wie kann ich sicherstellen, dass das Protokoll nicht mit Hunderttausenden von Einträgen verstopft wird?

Löschen Sie in den Community-Einstellungen(Hauptmenü - Extras - Einstellungen - Registerkarte Community) Ihre Autorisierungsdaten
 
Slawa:
Löschen Sie in den Community-Einstellungen (Hauptmenü - Extras - Einstellungen - Registerkarte Community) Ihre Autorisierungsdaten.
Ich habe sie dort nie eingegeben. Das ist nicht der Punkt.
 

Gibt es keine Tauschbörsen? Oder in welche Gruppe sollten sie eingeordnet werden?

 
Vladimir Pastushak:

Gibt es keine Tauschbörsen? Oder zu welcher Gruppe gehören sie?

Die Dienstprogramme müssen ausgewählt werden. Es stimmt, dass es dort überhaupt keine Kategorien gibt.