在MQL5中一起学习和写作 - 页 34

 
Yedelkin:

像这样一个简单的脚本给我带来了奇怪的结果

也许有人能解释一下原因是什么?当数字254被明确地转换为Uchar时,它就会如期工作。

谢谢你的留言,让我们研究一下。
 
Rosh:
谢谢你的留言,我们会解决这个问题。

与ushort的情况相同。

void OnStart()
  {
   for(ushort i=32760;i<32775;i++)
     {
      switch(i>USHORT_MAX-2)
        {
         case   true:  Print(__FILE__," ",__FUNCTION__,": ",i,">(USHORT_MAX-2) - true");   break;
         case  false:  Print(__FILE__," ",__FUNCTION__,": ",i,">(USHORT_MAX-2) - false");  break;
        }
     }
  }
 

你如何使它在条件发生时,音乐开始?嘿嘿,这是一个有点奇怪的mql的应用))但是看着画面等待合适的时机是很无聊的,而完全把所有的工作交给机器人多少有些不理智。所以我决定让音乐在我想要的时候播放,然后我自己来做))。

我翻阅了参考书,也许是我找得太认真了还是什么,但我没有找到)。

 
请看函数 PlaySound()
 
Rosh:
请看函数 PlaySound()

非常感谢你)。
 

关于跟踪重新报价的问题。

OrderSend()函数的描述说:"在下市场订单时,OrderSend()方法的成功完成并不总是意味着交易成功。你需要检查...的重码值"。也就是说,可以推断出,如果OrderSend()==true,我们仍然可以得到一个重新报价。好的。

但在"交易请求结果的结构"一节的例子("发送交易请求并处理结果")中,只有当OrderSend() ==false时才会检查关于重新报价的信息。

那么,在哪些情况下我们要检查重新报价:在OrderSend()返回的任何值,还是只在OrderSend()==false时检查?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Yedelkin:

关于跟踪重新报价的问题。

OrderSend()函数 的描述说:"在下市场订单时,OrderSend()方法的成功完成并不总是意味着交易成功。

OrderSend()的成功执行只意味着请求被检查是否正确,并被放在队列中执行。但它的进一步命运是不被保证的 - 订单可能在其处理过程中被取消,例如,由于填充政策的原因。

但一般来说,如果有一个重新报价,OrderSend()显然已经失败。

 
Rosh:

成功执行OrderSend()仅意味着请求已被检查为正确并排队执行。但它的进一步命运是不被保证的 - 订单可能在其处理过程中被取消,例如,由于填充政策的原因。

但一般来说,如果有一个重新报价,OrderSend()显然已经失败。

换句话说,重新报价 意味着该请求最初未能通过正确性检查?
 
Yedelkin:
换句话说,重新报价意味着该请求最初未能通过正确性检查?

嗯,是的,请求中所述的价格不适合,你被提示考虑新的价格,这些价格可以从MqlTradeResult 服务器的响应结构中获得。

struct MqlTradeResult
  {
   uint     retcode;          // Код результата операции
   ulong    deal;             // Тикет сделки, если она совершена
   ulong    order;            // Тикет ордера, если он выставлен
   double   volume;           // Объем сделки, подтверждённый брокером
   double   price;            // Цена в сделке, подтверждённая брокером
   double   bid;              // Текущая рыночная цена предложения (цены реквота)
   double   ask;              // Текущая рыночная цена спроса (цены реквота)
   string   comment;          // Комментарий брокера к операции (по умолчанию заполняется расшифровкой)
  };

 
Rosh:

嗯,是的,请求中所述的价格不匹配,提示你考虑到新的价格,这可以从MqlTradeResult 服务器的响应结构中获得。

好的!

可能,我说得太多了,但这里有另一个问题。在发送下市价单的请求(开仓)之前,我将交易票据重置为零,即我使 result.deal=0。我们能否期望服务器在MqlTradeResult 响应结构中返回一个空的交易票据,但稍后,交易将被执行,头寸将被打开?还是说服务器返回的空交易单保证了该仓位无法被打开,并且不会根据这个请求进一步打开?