文章 "DoEasy 函数库中的时间序列(第三十九部分):基于函数库的指标 - 准备数据和时间序列事件" - 页 2

 
Dima Diall:

您好 - 在仔细查看事件处理程序代码时,我注意到您使用了不同的方法来解析事件源......在某些情况下,它基于OnChartEvent() 中的图表事件 id 参数,而在另一些情况下,您通过engine.EventSource(lparam)lparam 参数中提取了事件源 - 是否有什么特殊原因导致在每种情况下都不同?

你好,Artyom - 能帮我解释一下吗?
 
Dima Diall :
你好,Artyom - 能帮我澄清一下吗?

请稍后再说--我现在很忙

 

你好,Artyom

在您的示例中,挂单起 作用了,但市场订单在可视化回溯测试模式下不起作用。

请提供帮助,非常感谢

宝石

 
jewelnguyen :

嗨,阿尔乔姆

在您的示例中,挂单起 作用了,但市场订单在可视化回溯测试模式下不起作用

请提供帮助,非常感谢

宝石

我检查过了--正常。位置在测试仪中打开了。它们也会关闭。

请更详细地说明您的操作。

 
感谢您的快速回复、
我使用 Windows 7 上的一个应用程序录制了屏幕画面
2 个挂单正常,2 个买单卖单 没有响应

非常感谢



附加的文件:
Screenshot_1.jpg  123 kb
Screenshot_2.jpg  132 kb
Screenshot_3.jpg  127 kb
Screenshot_4.jpg  130 kb
screen.zip  340 kb
 
jewelnguyen :
Спасибо за быстрый ответ、
Я записываю экран с помощью приложения, доступного в Windows 7
2 отложенных ордера работают, 2 ордерана покупку и продажу не отвечают

Большое спасибо



日志 "选项卡中写了什么?

 

一切正常:


 

我和你一样,为什么不成功?你用 mt4 还是 mt5?我在 mt5 上试,你在这里:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 市场卖出失败 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [不支持填充模式]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 交易尝试 #2.Error : Invalidorder filling type


我需要它来测试我的手动策略,请帮助我


非常感谢

宝石

注:我在 mt4 上试过,效果很好,但在 mt5 上出现了与上述相同的错误
附加的文件:
Screenshot_1.jpg  337 kb
 
jewelnguyen :

我和你一样,为什么不成功?你用 mt4 还是 mt5?我在 mt5 上试,你在这里:

2021.04.11 14:29:21.646 2017.01.02 09:01:18 市场卖出失败 0.1 GBPUSD sl: 1.23561 tp: 1.23261 [不支持填充模式]

2021.04.11 14:29:21.646 2017.01.02 09:01:18 交易尝试 #2.Error : Invalidorder filling type


我需要它来测试我的手动策略,请帮助我


非常感谢

宝石

附注:我在 mt4 上试过,效果很好,但在 mt5 上出现了与上述相同的错误

您需要自己 设置正确的订单执行策略(ENUM_ORDER_TYPE_FILLING)。在 OnInit () 处理程序中使用:

...
...
...
 //--- 
   engine.TradingSetTypeFilling(ORDER_FILLING_XXX);
   return (INIT_SUCCEEDED);
  }
 //+------------------------------------------------------------------+

只有三种可能的值:

  • ORDER_FILLING_FOK- 这种执行策略意味着订单只能以指定的金额执行。如果目前市场上没有必要数量的金融工具,订单将不会被执行。所需数量可通过目前市场上的多个报价来完成。

  • ORDER_FILLING_IOC- 该模式表示交易者同意在订单中指定的最大市场可用交易量范围内执行交易。如果订单的全部交易量无法成交,则将成交其可用的交易量,剩余的交易量将被取消。

  • ORDER_FILLING_RETURN- 该策略仅用于市场订单(ORDER_TYPE_BUY 和 ORDER_TYPE_SELL)、限价订单和止损限价订单(ORDER_TYPE_BUY_LIMIT、ORDER_TYPE_SELL_LIMIT、ORDER_TYPE_LIMIT_STYPELL)。在部分成交的情况下,有剩余成交量的市场订单或限价订单不会被取消,而是会被进一步处理。
    为激活 ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT 订单,会创建一个相应的限价订单 ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT 且执行类型为 ORDER_FILLING_RETURN。
 
Artyom Trishkin:

您需要自己 设置正确的订单执行策略(ENUM_ORDER_TYPE_FILLING)。请在 OnInit () 处理程序中使用:

只有三种可能的值:

  • ORDER_FILLING_FOK- 这种执行策略意味着订单只能以指定的金额执行。如果目前市场上没有必要数量的金融工具,订单将不会被执行。所需数量可通过目前市场上的多个报价来完成。

  • ORDER_FILLING_IOC- 该模式表示交易商同意在订单中指定的最大市场可用交易量范围内执行交易。如果订单的全部交易量无法完成,则将完成可用的交易量,并取消剩余的交易量。

  • ORDER_FILLING_RETURN- 该策略仅用于市场订单(ORDER_TYPE_BUY 和 ORDER_TYPE_SELL)、限价订单和止损限价订单(ORDER_TYPE_BUY_LIMIT、ORDER_TYPE_SELL_LIMIT、ORDER_TYPE_LIMIT_STYPELL)。在部分成交的情况下,有剩余成交量的市场订单或限价订单不会被取消,而是继续处理。
    为了激活 ORDER_TYPE_BUY_STOP_LIMIT 和 ORDER_TYPE_SELL_STOP_LIMIT 订单,会创建一个相应的限价订单 ORDER_TYPE_BUY_LIMIT / ORDER_TYPE_SELL_LIMIT 以及 ORDER_FILLING_RETURN 执行类型。
好的,非常感谢