初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1388

 
OK、ありがとうございます。
 
Vladimir Karputov #:

WinAPI関数 'GetLastError' からコードを取得する方法は?WinAPI関数DeleteFileWで、存在しないファイルを削除したい。

DeleteFileWの ヘルプによると、もし

コード説明 'ERROR_FILE_NOT_FOUND

error_file_not_found

2 (0x2)

指定されたファイルはシステムで見つけることができません。


つまり、存在しないファイルを削除しようとすると「2」が表示されるはずなのですが、「0」が表示されるのです。


私のスクリプトコード

実行結果です。

uint res = kernel32::GetLastError();
 

Koldun Zloy #:

uint res = kernel32::GetLastError();


!ありがとうございました。

 

このチェックを有効にするにはどうしたらよいですか?

double arrHTF[];
double arrETF[];

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

どうすればこのチェックを有効にできるのか?

ArrayCompare でない場合は、要素ごとの比較でループする。

 
JRandomTrader #:

ArrayCompare でない場合は、ループ内で要素ごとに比較する。

内容ではなくポインタを比較したい(arr がどの配列を指しているのか?)

 

こんにちは。必要なマージン値を得るために、ご協力をお願いします。

#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()
  {

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

出力:"必要なマージン =1.797693134862316e+308", すなわち double の最大値です。どこがエラーなのか、正しい値を得るにはどうすればいいのか、教えていただけませんか。



 
-IMXO- #:

こんにちは。必要なマージン値を得るために、ご協力をお願いします。

出力:"必要なマージン =1.797693134862316e+308", すなわち double の最大値です。どこがエラーなのか、どうすれば正しい値が得られるのか、アドバイスをお願いします。

一般に、2重の値を印刷する場合は、以下を使用します。

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

一般に、2重の値を印刷する場合は、以下を使用します。

役に立ちません。機能そのものが不自由なのです。そしてSBを使うのは二重の意味で厄介です。

そして、まだ何もロードされていないOnInit()でも実行されます。
 
-IMXO- #:

こんにちは。必要なマージン値を得るために、ご協力をお願いします。

出力:"必要なマージン =1.797693134862316e+308", すなわち double の最大値です。エラーの場所や正しい値を得る方法を教えてください、よろしくお願いします。



営業時間外に何かを確認するときは、スクリプトで確認します。

理由: