错误、漏洞、问题 - 页 1453

 
Vladislav Andruschenko:

然而,该表显示了以下数值。

填充或杀死

符号_填充_福克

1

这个政策意味着,只有在指定的数量下才能执行交易。如果目前市场上没有某种金融工具的必要数量,订单将不会被执行。所需的数量可以使用目前市场上的几个报价来填补。

即时或取消

符号_填充_ioc

2

在这种情况下,交易商同意在订单中指明的范围内,以市场上最大的交易量执行交易。如果订单不能完全填满,那么订单的可用量将被填满,而剩余的量将被取消。使用IOC订单的可能性由交易服务器决定。

返回

没有标识符

该政策仅用于市场订单(买入和卖出)、限价和止损订单,并且仅用于市场或交易所执行的符号。在部分成交的情况下,有剩余成交量的市场或限价订单不会被取消,而是进一步处理。

但一定是数据混在一起了!

你还没有读完《帮助》。

你可以通过标志的组合为每个符号设置一个以上的模式。标志的组合用逻辑 OR (|) 运算表示 ,例如 SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC要检查一个仪器是否允许有特定的模式,必须将逻辑 (&) 的结果 与模式标志进行比较

 

对于符号来说,SYMBOL_FILLING_MODE 属性意味着标志的组合--即它描述了在交易该符号时允许哪些填充模式

你是否尝试过按照文件中的规定进行检查?

В режимах исполнения "По запросу" и "Немедленный" для рыночных ордеров всегда используется политика заполнения Все/Ничего, а для лимитных ордеров - режим "Вернуть". В данном случае, при от отсылке ордеров функциями OrderSend или OrderSendAsync тип заполнения для них можно не указывать.

在 "按市场 "和 "交易所 "的执行模式中,所有订单类型都允许 "返回 "填充政策。其他订单类型的允许性可以通过SYMBOL_FILLING_FOK和SYMBOL_FILLING_IOC属性来检查。

例子。

//+------------------------------------------------------------------+
//|检查指定填充模式的允许性。
//+------------------------------------------------------------------+
bool IsFillingTypeAllowed(string symbol,int fill_type)
{
//---获得描述填充模式的属性值
int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE)。

return((fill&fill_type)==fill_type)。
}


 
Rashid Umarov:

对于符号来说,SYMBOL_FILLING_MODE 属性意味着标志的组合--即它描述了在交易该符号时允许哪些填充模式

你是否尝试过按照文件中的规定进行检查?


以下的解决方案是有效的

         switch((int)SymbolInfoInteger(Symbol(), SYMBOL_FILLING_MODE))
   {
   case SYMBOL_FILLING_FOK:
      request.type_filling=ORDER_FILLING_FOK;
      break;
   case SYMBOL_FILLING_IOC:
      request.type_filling=ORDER_FILLING_IOC;
      break;
   default:
      request.type_filling=ORDER_FILLING_RETURN;
   }
 
Vladislav Andruschenko:

这个解决方案有助于

如果你更仔细地阅读帮助,你会发现当两种模式都可用的情况没有得到处理--SymbolInfoInteger 的值将是 (SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC )。
 

而且您可以用这个代码在 "RoboForex-MetaTrader 5 "服务器上检查它。

//+------------------------------------------------------------------+
//|                                                 Info_FILLING.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property description "Варианты исполнения ордера по объему"
#include<Trade\Trade.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
// Все/Ничего     SYMBOL_FILLING_FOK   1
// Все/Частично   SYMBOL_FILLING_IOC   2
// Вернуть        Идентификатор отсутствует
   Print("Все/Ничего: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_FOK));
   Print("Все/Частично: ",IsFillingTypeAllowed(Symbol(),SYMBOL_FILLING_IOC));
   Print("Вернуть: ",IsFillingTypeAllowed(Symbol(),NULL));

   CTrade oTrade;
   switch((int)SymbolInfoInteger(Symbol(),SYMBOL_FILLING_MODE))
     {
      case SYMBOL_FILLING_FOK:
         Print("ORDER_FILLING_FOK");
         break;
      case SYMBOL_FILLING_IOC:
         Print("ORDER_FILLING_IOC");
         break;
      default:
         Print("ORDER_FILLING_RETURN");
     }
  }
//+------------------------------------------------------------------+ 
//| проверяет разрешенность указанного режима заполнения             | 
//+------------------------------------------------------------------+ 
bool IsFillingTypeAllowed(string symbol,int fill_type)
  {
//--- получим значение свойства, описывающего режим заполнения 
   int filling=(int)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
//--- вернем true, если режим fill_type разрешен 
   return((filling&fill_type)==fill_type);
  }
//+------------------------------------------------------------------+

以及转换的结果。

2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Ничего: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Все/Частично: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      Вернуть: true
2015.12.22 18:13:09.946 Info_FILLING (AUDCAD.m,D1)      ORDER_FILLING_RETURN


你可以看到,开关变体没有告诉我们真相。但这里有一个文档中的例子,给我们提供了全面的信息。

 

有什么问题呢?

MarketInfo(Symbol(),MODE_MARGININIT) 和 SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

为什么它们会返回零 ?????

 
Vladimir Pastushak:

有什么问题呢?

MarketInfo(Symbol(),MODE_MARGININIT) 和 SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)

为什么它们会返回零 ??????

半年来,贷款金额的计算有问题,帮助中的信息与网站上的信息不一致,帮助中的信息与网站上的实际信息不一致,开发商请做出正确的描述。

抵押品的计算

错误,MetaTrader 5 MQL5,已打开,开始时间:2015.07.13 16:23,#1259415

下面是MQL5帮助中的一个例子。

符号_计算_模式_外汇

外汇模式 - 外汇的利润和保证金计算

保证金:批量*合同大小/杠杆率

这是一个计算正向报价的公式。 反向报价会有不同的交叉,第三个是交叉的。该网站有同样的错误。

因此,无论你采取哪种市场类型,其公式都是相当可疑的......

而我今天发现,MarketInfo(Symbol(),MODE_MARGININIT)和SymbolInfoDouble(Symbol(),SYMBOL_MARGIN_INITIAL)返回0。

但在这个资源上也有奇怪的著作,https://metaquotes5.wordpress.com/2012/08/,据我所知,它是MetaQuotes博客。

What are Expert Magic Numbers?
  • 2012.08.11
  • skebanga
  • metaquotes5.wordpress.com
Expert magic numbers are ids given to a particular expert advisor. Care should be taken to ensure the ids are unique. This is because the magic number is used by the MetaTrader back end to know which expert advisor to send information to. For example, when a trade notification is...
 
周围都是敌人。除了发工资的时候我们的女人,没有人想要我们。
 
Алексей Тарабанов:
到处都有敌人。没有人需要我们,只有我们的女人在发薪日需要我们。

问候阿列克谢

如果你能在MT5上重写指标 iPulsar,请在代码库中重写它。

谢谢你


 

同事们好!

对不起,我在看到这个主题之前,在主线上搞得一团糟。

请告知如何解决这个问题:FORTS上的MT5专家顾问在下BAY_STOP或SELL_STOP订单时一直显示错误10022:"请求中的无效订单到期日"。

过期日期对我来说并不重要,但我找不到任何参数可以直接设置订单。我们在外汇方面没有这样的问题。我的经纪人是开放的。该错误发生在测试器中。