mt5策略测试器的刻度 - 页 14

 
WhooDoo22:

你好,MQL5社区。

我一直在阅读'OrderSend'MQL5网站文档,.pdf和.chm资源。


除了简短的 "描述"("按要求执行")外,没有一个人提供"SYMBOL_TRADE_EXECUTION_REQUEST " 的细节。显然,'ENUM_SYMBOL_TRADE_EXECUTION'有四个标识符类型。

你读过这个吗(向下滚动一点):https://www.mql5.com/en/docs/constants/structures/mqltraderequest
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5
 
angevoyageur:

俄罗斯论坛 上发现。

  • 立即执行 (Instant Execution) 在这种模式下,在经纪人 提供 价格执行市场订单。 当发送请求执行,终端将自动填写订单的当前价格。 如果经纪人采取的价格,订单将被执行。 如果经纪人没有收到要求的价格,然后有所谓的 "Perekotirovanie"(Requote) - 经纪人返回的价格,可以执行此订单。
  • 请求执行(Request Execution)
    在这种模式下,以先前从经纪人那里收到的价格执行市场订单。 向经纪人发送市场订单之前,要求其执行的价格。 收到后,以这个价格执行权证,你可以确认或拒绝。
  • 市场的表现(市场执行)
    在这种执行模式下,市场订单执行价格的决定采取经纪人,而不需要交易者的批准。 以这种方式发送 市场订单意味着与它将被执行的价格的早期协议。
  • 交易所版本(交易所执行)在这种模式下,在终端执行的交易操作被输出到外部交易系统(证券交易所)。 交易操作是在当前的市场价格报价上进行的。

你好,阿兰。

是的,我想你的帖子包含了我正在寻找的内容,谢谢你的好意。


我不认为'OrderSend'的第十二个参数enum_order_type_filling是在MQL4中使用的,我以前也没有经验将它应用到MQL5'OrderSend'的参数代码。

enum_order_type_filling

"一个订单只能以指定的数量进行填充"。

这个 "指定金额 "是订单的手数吗?


"如果目前市场上没有金融工具的必要数量,订单将不会被执行。"

什么是 "金融工具的必要量"?

市场上怎么会没有必要数量的金融工具?


"所需数量可以使用目前市场上的几个报价来填补"。

什么是 "所需数量",如何使用 "几个报价 "来满足它?


enum_order_type_filling的目的是什么?


谢谢你

 
RaptorUK:
你读过这个吗(向下滚动一点):https://www.mql5.com/en/docs/constants/structures/mqltraderequest

你好,西蒙。

"你读过这个吗(向下滚动一点)"

我确实读了,但我还没有读到'OrderSend'的第十二个参数enum_order_type_filling。我对它没有兴趣,因为没有一个参数来应用这些内容。


是的,我想你的帖子的链接包含了我正在寻找的内容,谢谢你的好意。

由版主编辑。

 
嗨,内森,没有必要在两个帖子中重复相同的问题;-)
 
WhooDoo22:

"an order can be filled only in the specified amount".

这个 "指定数量 "是订单的手数吗?

是的。"指定金额"、"订单量"、"手数 "都是一样的。


"如果目前市场上没有必要数量的金融工具,该订单将不会被执行。"

什么是 "金融工具的必要数量"?

当你传递一个订单,例如买入1手,肯定 有人 想卖出1手。在外汇市场上,这不是问题,因为这个市场非常巨大,但在一些市场上, 不一定 有人要卖


目前市场上怎么会没有必要数量的金融工具?

见上文。你可以通过1手的订单,而市场上只有0.5手可用。


"所需数量可以用目前市场上的几个报价来填补。"

什么是 "所需数量",如何使用 "几个报价 "来满足它?

见上文。你想买1手,市场上有2个卖0.5手的报价。


enum_order_type_filling的目的是什么?

我希望上面的回答能让你更清楚。这个参数 是由经纪人设置的。你必须在传递订单之前检查。

谢谢你

欢迎你的到来。
 
WhooDoo22:

你好,阿兰。

是的,我认为你的帖子包含了我正在寻找的内容,谢谢你的好意。


我不认为'OrderSend'的第十二个参数enum_order_type_filling是在MQL4中使用的,而且我以前也没有将其应用于MQL5'OrderSend'的参数代码的经验。

我猜你以前没有遇到过Fill or Kill?
Fill Or Kill (FOK) Definition | Investopedia
Fill Or Kill (FOK) Definition | Investopedia
  • www.investopedia.com
A type of time-in-force designation used in securities trading that instructs a brokerage to execute a transaction immediately and completely or not at all. This type of order is most likely to be used by active traders and is usually for a large quantity of stock. The order must be filled in its entirety or canceled (killed). The purpose of a...
 
angevoyageur:
嗨,Nathan,没有必要在两个帖子中重复相同的问题;-)

我在看了两个帖子后意识到两个几乎相同的帖子是不必要的,但决定就这样算了。下一次,我将尝试把我的回应指定为一个新的帖子。

谢谢你

 
angevoyageur:
WhooDoo22:
是的。"指定金额"、"订单量"、"手数 "都是一样的。


当你传递一个订单,例如买入1手,肯定 有人 想卖出1手。在外汇市场上,这不是问题,因为这个市场非常巨大,但在一些市场上, 不一定 有人要卖


见上文。你可以通过1手的订单,而市场上只有0.5手可用。


见上文。你想买1手,市场上有2个卖0.5手的报价。


我希望上面的回答能让你更清楚。这个参数是由经纪人设置的。你必须在传递订单之前检查。

欢迎你的到来。
"我希望上面的答案能更清楚。这个参数是由经纪人设置的。你必须在传递订单之前检查一下。"


在你阅读并回复我的回复后,我将让你来判断:)

//ENUM_ORDER_TYPE_FILLING identifiers
ORDER_FILLING_FOK

ORDER_FILLING_FOK是一个程序,只执行两种入市类型中的一种,即1.00的买手与1.00的卖手相匹配(type_1)或1.00的买手与0.25、0.25和0.50大小的三个卖手相匹配(type_2)。如果type_1或type_2不能执行,该订单就不会进入市场。

//ENUM_ORDER_TYPE_FILLING identifiers
ORDER_FILLING_IOC
ORDER_FILLING_IOC是一个程序,只执行一种入市类型,1.00买入手数与目前可用的任何卖出手数相匹配。匹配的卖出手数可以是1.00以下的任何大小。
//ENUM_ORDER_TYPE_FILLING identifiers
ORDER_FILLING_RETURN
ORDER_FILLING_RETURN的过程是什么?

这个(文件)短语是什么意思?"在部分成交的情况下,有剩余量的市场或限价订单不会被取消,而是进一步处理。"( 写得不好,直接了当)

我对上述短语的翻译是:"如果一个市场/限价订单被部分填满,它不会被取消,它的剩余量也不会被取消,而是进一步处理。"。


我的印象是该程序是在以下标准下执行的(订单类型(三种)和符号类型(两种))。

订单类型。

type_1:ORDER_TYPE_BUY和SELL

type_2: ORDER_TYPE_BUY 和 SELL_LIMIT

type_3: ORDER_TYPE_BUY 和 SELL_STOP_LIMIT

符号类型。

type_1:市场执行

type_2:交易所执行

它们
之间有什么区别?它们是什么?

"为了激活ORDER_TYPE_BUY_STOP_LIMIT和ORDER_TYPE_SELL_STOP_LIMIT 订单,会创建一个相应的限价订单ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT,其执行类型为ORDER_FILLING_RETURN。"
ORDER_TYPE_BUY_STOP_LIMIT//Upon reaching the order price, a pending Buy Limit order is places at the StopLimit price

ORDER_TYPE_SELL_STOP_LIMIT//Upon reaching the order price, a pending Sell Limit order is places at the StopLimit price

我假设如果价格达到 "止损价"(高于当前市场价格的价格),就会发送买入止损限价单,一旦价格达到 "止损价",订单就会变成买入或卖出限价单(取决于代码),订单再次等待价格低于当前价格到达买入限价(买入限价单)或继续上升到高于当前价格到达卖出限价(卖出限价单)。买入止损限价单首先是一个止损单,然后变成一个限价单。这是对的,是吗?

MQL4中不包括止损限价单,而且我以前没有编码经验。

谢谢你

 
RaptorUK:
我猜你以前没有遇到过 "填充或杀戮"?

你猜得没错 :)

谢谢你

 

你好,MQL5社区。

当我在元编辑器中编码时,我试图使用订单类型函数,并被元编辑器的工具箱中的一个错误所提醒(见下面的快照)。

订单类型未定义

正如你应该看到的,订单类型函数没有定义,但它似乎被文档定义了(https://www.mql5.com/en/docs/standardlibrary/tradeclasses/chistoryorderinfo/chistoryorderinfoordertype)

我正在尝试的一个条件是

if(OrderType()==ORDER_TYPE_BUY)

如果没有定义订单类型函数,如何在元编辑器中使用它?

谢谢你