Fehler, Irrtümer, Fragen - Seite 111

 
sergeev:

alles passte.

2010.08.28 20:57:09 Servis (EURUSD,H1) L1=6653490000 L2=6653490000 L3=6653490000 M1=6653490000
2010.08.28 20:57:09 Servis (EURUSD,H1) A=665349 B=665349 C=665349
2010.08.28 20:57:09 Servis (EURUSD,H1) --- OnInit() --- 1 --- !


und mein M1 passte nicht dazu.

PQ      0       Servis (EURUSD,H8)      22:06:24        --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!
LE      0       Servis (EURUSD,H8)      22:06:24         A=100652  B=100652  C=100652
CP      0       Servis (EURUSD,H8)      22:06:24         L1=1006520000   L2=1006520000   L3=1006520000   M1=4294966006
 
sergey1294:

Je nachdem, wofür Sie die erste Zahl benötigen, könnten Sie Folgendes versuchen

Ja, so ist es einfacher, man muss nicht einmal extra Anführungszeichen am Ende setzen.
return(StringToTime((string)str.year+"."+(string)str.mon+".01 00:00"));
 
SHOOTER777:

Noch einmal appelliere ich an die Neugierigen!

Der Code ist beigefügt.

Wenn ich das Programmieren verstehe, müsste es L1 = L2 = L3 = M1 sein. Und was ist mit Ihnen?

Zuerst beschwerte sich der Compiler über das Fehlen von "#import "lbS7N_Servis.ex5".

Nachdem ich diese Zeile gelöscht hatte, gab er den Geist auf:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Als ich die Kontonummer im Code durch meine eigene ersetzte, erhielt ich die folgende Meldung:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

MQ-Server, Build 316.

 
sergey1294:

und mein M1 hat nicht gepasst

einzigartige Situation... :(
 
Warum gibt SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), Null zurück?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergeev:
Eine einzigartige Situation... :(

Und es gibt sogar drei einzigartige Situationen. Dies sind die entdeckten Fälle. Und wie viele unentdeckt?

Und unter diesen Umständen startet MetaQuotes in einem Monat die Meisterschaft 2010?

Oh, MetaTrader 5 steckt voller Überraschungen...

 
Kos:
Warum gibt SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), Null zurück?

Und zusätzlich die Version, die eine Erfolgsmeldung zurückgibt (in der Hilfe als 2. bezeichnet ). Gibt je nach Erfolg der Funktion true oder false zurück. Bei Erfolg wird der Wert der Eigenschaft in der Zielvariablen abgelegt, die durch den letzten Parameter als Referenz übergeben wird.) Meldet den Erfolg des Anrufs:

void OnStart()
{
  double SymbolVolumeLimit1 = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT);
  double SymbolVolumeLimit2 = DBL_MAX;

  Print("Symbol() = ", Symbol(), ", bool SymbolInfoDouble() = ", SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT, SymbolVolumeLimit2));
  Print("SymbolVolumeLimit1 = ", SymbolVolumeLimit1, ", SymbolVolumeLimit2 = ", SymbolVolumeLimit2);
}

/* Вывод в лог (хронология - сверху вниз):
JN      0       1 (EURUSD,M15)  02:41:18        Symbol() = EURUSD, bool SymbolInfoDouble() = true
JJ      0       1 (EURUSD,M15)  02:41:18        SymbolVolumeLimit1 = 0, SymbolVolumeLimit2 = 0
*/

Die zweite Version von SymbolInfoDouble() gab true zurück, d.h. sie wurde erfolgreich ausgeführt. Sie können es auch in der Variablen SymbolVolumeLimit2 sehen, die ursprünglich mit DBL_MAX initialisiert wurde, aber nach dem Aufruf von SymbolInfoDouble() den Wert 0 erhielt.

Und wie sollten nach Meinung von MetaQuotes unter solchen Bedingungen Expert Advisors auf den von solchen Funktionen zurückgegebenen Werten basieren, anstatt fest kodierte Werte zu verwenden?

 

Wer hat die Funktion OrderCheck verwendet.

Dies ist ein Konstrukt:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Beim Kompilieren erhalte ich eine Fehlermeldung: 'result' - parameter conversion is not allowed.

Wenn Sie OrderCheck entfernen, wird alles normal kompiliert und die Position im Testgerät geöffnet.

 

Hier ist, was es ist...

Alert(" прибыль=",ПросчетПрибылизаПериод(D'2010.08.01 00:00:00'));


double ПросчетПрибылизаПериод(datetime датаначалапросчетаприбыли)
  {
   int i;
   double прибыльзапериод;
   ulong тикет;
   HistorySelect(датаначалапросчетаприбыли,TimeCurrent());
   //HistorySelect(D'2010.08.20 00:00:00',D'2010.08.20 23:59:00');
   for(i=1;i<=HistoryDealsTotal();i=i+1)
     {
      тикет=HistoryDealGetTicket(i);
      if(HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_IN || HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_STATE)
         continue;
      прибыльзапериод=прибыльзапериод+HistoryDealGetDouble(тикет,DEAL_PROFIT)+HistoryDealGetDouble(тикет,DEAL_COMMISSION)+HistoryDealGetDouble(тикет,DEAL_SWAP);
     }
   return(прибыльзапериод);
  }

Es sollte die Gewinne aus den Geschäften ab dem angegebenen Datum zählen. Das Ergebnis sieht völlig anders aus, als es tatsächlich ist. Ich habe zum Beispiel 611 statt des Ergebnisses von 2000 erhalten. Ich habe begonnen, jeden Tag zu prüfen (kommentierte Zeile). Es gibt(!!) Tage, an denen das Ergebnis das gleiche ist, aber normalerweise ist es nicht das, was es sein sollte...(ich konnte keine Regelmäßigkeit finden). Und der Debugger produziert den gleichen exakten Zyklus für die gesamte Anzahl der Trades. Allerdings kann ich nur diese Anzahl von Geschäften nachvollziehen, da für alle anderen Variablen außer den int-Variablen keine Werte angezeigt werden (Ausdruck konnte nicht ausgewertet werden).

Ist dieser Code korrekt, und verwende ich den Debugger richtig...?

 
SHOOTER777:

Ich danke Ihnen. Ich werde mich dann mit den Entwicklern in Verbindung setzen.

Hallo! Beschreiben Sie Ihre Situation detailliert im Servicedesk, wo Sie die Build-Nummer, das Betriebssystem und die Bitrate angeben und den Code anhängen.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5