初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1388

 
好的,谢谢你。
 
Vladimir Karputov #:

如何从WinAPI函数'GetLastError'获得代码?我想用WinAPI函数DeleteFileW来删除一个不存在的文件。

根据DeleteFileW的 帮助,如果

代码描述 '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",即双倍的最大值。你能不能告诉我错误在哪里,或者怎样做才能得到正确的值,提前感谢你。



 
-IMXO- #:

下午好!请帮助我获得所需的保证金价值。

输出:"所需保证金=1.797693134862316e+308",即双倍的最大值。请告诉我错误在哪里,或者如何获得正确的值,提前感谢。

一般来说,当你打印一个双倍值时,使用。

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

一般来说,当你打印双倍数值时,请使用。

这不会有帮助。该功能本身是残缺的。而使用SB则显得加倍尴尬。

它也会在OnInit()中执行,此时还没有加载任何东西。
 
-IMXO- #:

下午好!请帮助我获得所需的保证金价值。

输出:"所需保证金=1.797693134862316e+308",即双倍的最大值。请告诉我错误在哪里,或者如何获得正确的值,提前感谢。



当你在下班后检查东西的时候,要用脚本检查。