Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1388

 
OK, vielen Dank.
 
Vladimir Karputov #:

Wie erhält man den Code der WinAPI-Funktion 'GetLastError'? Ich möchte eine nicht existierende Datei mit der WinAPI-Funktion DeleteFileW löschen.

Laut derDeleteFileW-Hilfe, wenn

Codebeschreibung 'ERROR_FILE_NOT_FOUND

FEHLER_DATEI_NICHT_GEFUNDEN

2 (0x2)

Das System kann die angegebene Datei nicht finden.


Das heißt, ich sollte eine "2" erhalten, wenn ich versuche, eine Datei zu löschen, die nicht existiert - aber ich erhalte eine "0".


Mein Skript-Code:

Ergebnis der Ausführung:

uint res = kernel32::GetLastError();
 

Koldun Zloy #:

uint res = kernel32::GetLastError();


! Ich danke Ihnen!

 

Wie kann ich diese Prüfung durchführen?

double arrHTF[];
double arrETF[];

bool printArr(double& arr[])
   {
   bool isequal=arr==arrETF;
   Print("equals ETF"+isequal);
   return true;
   }
 
Max B #:

Wie können wir diese Prüfung durchführen?

Wenn nicht ArrayCompare, dann in einer Schleife durch Element-für-Element-Vergleich.

 
JRandomTrader #:

Wenn nicht ArrayCompare, dann in Schleife durch Element-für-Element-Vergleich.

Ich möchte nur Zeiger vergleichen, nicht Inhalte (auf welches Array zeigt arr?)

 

Guten Tag! Bitte helfen Sie mir, den erforderlichen Margenwert zu ermitteln.

#include <Trade\SymbolInfo.mqh>  
#include <Trade\AccountInfo.mqh>

CSymbolInfo    m_symbol;                     // symbol info object
CAccountInfo   m_account;                    // account info object
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   m_symbol.Name(Symbol());
   
   const string this_symbol = m_symbol.Name();
   //ENUM_ORDER_TYPE order_type = ORDER_TYPE_BUY;
   double order_volume =  0;
   double order_price = 0;
   double Price_Min_Lot = 0;
   
   
   order_volume = 1;
   order_price = m_symbol.Ask();
   Price_Min_Lot = m_account.MarginCheck(this_symbol, ORDER_TYPE_BUY, order_volume, order_price);
   Print("Требуемая маржа =", Price_Min_Lot);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

   
  }
//+---------------------------------------------------------------

Ausgabe: "Erforderlicher Spielraum =1,797693134862316e+308", d.h. maximaler Wert von double. Können Sie mir bitte sagen, wo der Fehler liegt oder wie ich den richtigen Wert ermitteln kann, vielen Dank im Voraus.



 
-IMXO- #:

Guten Tag! Bitte helfen Sie mir, den erforderlichen Margenwert zu ermitteln.

Ausgabe: "Erforderlicher Spielraum =1,797693134862316e+308", d.h. maximaler Wert von double. Bitte sagen Sie mir, wo der Fehler liegt oder wie ich den richtigen Wert erhalte, vielen Dank im Voraus.

Wenn Sie einen doppelten Wert drucken, verwenden Sie im Allgemeinen:

Print( DoubleToString(Price_Min_Lot,2) );
 
Vitaly Muzichenko #:

Wenn Sie doppelte Werte drucken, verwenden Sie im Allgemeinen:

Es wird nicht helfen. Die Funktion selbst ist verkrüppelt. Und die Verwendung von SB ist doppelt unangenehm.

Und es wird auch in OnInit() ausgeführt, wenn noch nichts geladen wurde.
 
-IMXO- #:

Guten Tag! Bitte helfen Sie mir, den erforderlichen Margenwert zu ermitteln.

Ausgabe: "Erforderlicher Spielraum =1,797693134862316e+308", d.h. maximaler Wert von double. Bitte sagen Sie mir, wo der Fehler liegt oder wie ich den richtigen Wert erhalte, vielen Dank im Voraus.



Wenn Sie etwas nach Feierabend überprüfen, überprüfen Sie es mit einem Skript.

Grund der Beschwerde: