每点的价格 - 页 5

 

@Gordon

"你说的'即时执行'是什么意思?(暗示它与'市场执行'不一样)..."

MT4服务器似乎是指(你会在其手动订单打开的下拉列表中看到)在订单打开时将止损设置为 "即时执行 "的能力;以及在需要设置为0和修改时设置为 "市场执行"。

@SDC和1005philip

"在所有对符号的引用中使用Symbol()不是更简单吗,那么即使经纪人服务器将欧元兑美元输入为mooncheese,只要EA也知道欧元兑美元被称为mooncheese,就不会有问题了"

当符号名称被经纪人改变时,这需要打开一个新的图表,你将在其中添加你的EA。

CB

 
cloudbreaker:

MT4服务器似乎指的是(你会在其手动订单打开的下拉列表中看到)在订单打开时将止损点设置为 "即时执行 "的能力;以及在需要设置为0和修改时设置为 "市场执行"。

我真该死,当登录到一个只接受0点止损的账户时,下拉菜单实际上已经改变了,我从未注意到这一点。谢谢。
 
SDC:

在所有对符号的引用中使用Symbol()不是更简单吗?那么,即使经纪商的服务器将欧元兑美元输入为mooncheese,只要EA也知道欧元兑美元被称为mooncheese,就不会有问题。

哇!这个话题已经发展到42个帖子,而且还在增加,这是一个记录......

如果大家不介意的话,....,继续我之前的话题...

SDC,如果我没有弄错的话,菲利普正在布置他的自定义函数,以独立产生TickValue,而不是简单地调用预定义的MarketInfo。当然,在Symbol()上调用MODE_TICKVALUE是最容易做到的逻辑事情。但除了证明/证明TickValue在哪里/如何得到它的值 之外。我可能是错的,但我认为这有一个好处,那就是可以合成任何特定经纪商可能不提供的某个/某些奇特的货币对。我们可以对所有可用的基础/计数器进行变通。我手头没有一个例子。但我敢肯定,经纪人所提供的并不是一个完整的基数/计数器。我只是在探讨菲利普发布的内容。除非需要对冲/套利或其他,否则可能没有用......

 

如果你觉得有价值的话,我很乐意与你分享我这里的更多代码。 老实说,我认为这只是一条平凡的/常规的道路,大多数人在他们自己的编码冒险过程中已经走过了,所以我不想侮辱任何人的智慧,假设它对社区来说是什么新东西。 (此外,我的代码在我的硬盘上并不完全是我认为值得发表的形式,在错误的人手中可能会造成更大的伤害,我真的不希望有人因为我缺乏评论风格而损失钱财,等等)。

能够从基本面计算tickvalue的好处(我认为更多的是 "必要性")并不是为了对冲/套利(尽管它当然也可以在这方面发挥杠杆作用),而是为了更简单的东西。 在我的案例中,我发现它对于计算风险资产、止损位置等很有必要。

(另外,请注意:MODE_TICKVALUE的marketinfo值严格基于货币对的买入价,而不是卖出价,因此,marketinfo tickvalue实际上只在技术上正确地用于取决于买入价的计算,如多头头寸的获利值或空头头寸的止损......同样,这种差异是很小的,而且对于账户货币 为反货币的货币对,如EURUSD等,自然没有什么区别)

使用marketinfo Tickvalue的问题是,它只对当前市场价格有效。 除了那些以账户货币为相对货币的货币对,其他货币对的Tickvalue都取决于市场价格。 (USDJPY的tickvalue在USDJPY=99.00和98.00时是不同的,等等)。

创建你所说的 "合成 "货币对的原因是,对于交叉货币对,tickvalue取决于两个 货币对的价格。 被交易的符号以及由账户货币和被交易符号中的对应货币对形成的货币对都是如此。

一个例子。 假设你的账户面额是美元,你想交易欧元兑英镑。 一旦你建立了欧元兑英镑的头寸,其价值将取决于欧元兑英镑的市场价格以及英镑兑美元的市场价格

你可以在0.8500开一个欧元兑美元的多头头寸,它可以在这个价格上坐一整天,但如果在此期间英镑兑美元一直呈下降趋势,你的交易就会被淹没。 (这也是为什么你可能读过我之前的一两篇文章,其中我说如果你想管理你的风险,在交易交叉货币对时,对冲是必要的,但不切实际)。

在我的案例中,我喜欢以编程方式确定在账户货币和交叉货币对之间搭桥的货币对,因此使用了 "合成 "货币对的形成。

 
1005phillip:

如果你觉得有价值的话,我很乐意与你分享我这里的更多代码。

是的,那就太好了......!如果你愿意的话,请附上它或给我发邮件。 谢谢你,菲利普...

能够从基本面计算tickvalue的好处(我认为更多的是 "必要性")并不是为了对冲/套利(尽管它当然也可以在这方面发挥杠杆作用),而是为了更简单的东西。 在我的案例中,我发现它对于计算风险资产、止损位置等是必要的。

(另外,请注意:MODE_TICKVALUE的marketinfo值严格基于货币对的买入价,而不是卖出价,因此,marketinfo tickvalue实际上只在技术上正确地用于取决于买入价的计算,如多头头寸的获利值或空头头寸的止损...同样,这种差异很小,而且对于账户货币为反货币的货币对,如EURUSD等,自然没有区别。)

这是否意味着交易的另一方,即空头(问价)的市场信息如果独立计算,会有差异?

使用marketinfo Tickvalue的问题是,它只对当前市场价格有效。 除了那些以账户货币为相对货币的货币对,其他货币对的Tickvalue都取决于市场价格。 (USDJPY的tickvalue在USDJPY=99.00与98.00时是不同的,等等)

创建你所说的 "合成 "货币对的原因是,对于交叉货币对,tickvalue取决于两个 货币对的价格。 被交易的符号以及由账户货币和被交易的符号中的对应货币对组成的货币对都是如此。

是的,这在mql4书中有明确描述。我一直把交叉货币对的 TickValues看成是 "浮动的"。

一个例子。 假设你的账户面额是美元,你想交易欧元兑英镑。
,一旦你开了欧元兑英镑的头寸,其价值将取决于欧元兑英镑的市场价格以及英镑兑美元的市场价格

你可以在0.8500建立一个欧元兑美元的多头头寸,它可以在这个价格上坐一整天,但如果在此期间英镑兑美元一直呈下降趋势,你的交易就会被淹没。 (这也是为什么你可能读过我之前的一两篇文章,其中我说如果你想管理你的风险,在交易交叉货币对时,对冲是必要的,但不切实际。)

我从来没有这样看待过!"。需要思考一下这个问题,....。:)

在我的案例中,我喜欢以编程方式确定在账户货币和交叉货币对之间的货币对,因此使用 "合成 "货币对的形成。

有一个问题(也许是个愚蠢的问题):你是否遇到过没有美元作为基础/计数器,但以十字星形式存在的货币对?


 
gordon:

不幸的是,MODE_TICKSIZE和MODE_TICKVALUE的命名 为Tick 增加了 第二个定义(我推测这是混淆的根源...)。在这种情况下,Tick的定义是:Tick是有关符号的最小可能的价格变化

  • MODE_TICKSIZE - 这个变化在价格方面的大小(文件声称"Tick size in points",但这显然是不准确的)。
  • MODE_TICKVALUE - 该变化在账户存款货币中的价值(这由经纪人在服务器端计算)。
评论。
  1. 一个 "点"(MODE_POINT)是有关符号的小数点左边尺寸的最小可能价格变化。这与MODE_TICKSIZE不一样。从技术上讲。MODE_TICKSIZE>=MODE_POINT,尽管它们几乎总是相等。
  2. 点子 "是一个惯例,是我们都同意的东西。它不是 符号的数学属性或MT4服务器的属性。因此,举例来说,在4位数的经纪商那里,欧元兑美元的点数是1点,但在5位数的经纪商那里,点数是10点。
  3. 关于如何自动确定点子的大小,这里有一个很好的讨论->https://www.mql5.com/en/forum/124692。
  4. MODE_TICKSIZE可以变化,尽管极其罕见(另一方面,点是固定的)。CB有一个方法来处理这些变化,在这里->https://www.mql5.com/en/forum/109552/page3#195878。

如果我可以提供到目前为止我的解释--对Gordon在上面很好地阐述的内容进行补充。

  • Point : 总是以1 结尾。它是一个转换系数,与我们称之为'价格'的比率。
  • MODE_TICKSIZE : 以点为单位的最小的价格变动单位。
  • MODE_TICKVALUE : 对应货币的当前价值,转换为其基本比率。
 

cameofx:

点评:总是以1 结尾。这是一个转换系数,我们称之为 "价格 "的比率。
对戈登的 "几乎总是 "做一个澄清,我无法立即想到哪种外汇工具不是这样的,但当经纪人提供金属、指数等时,这很少是真的。例如,在Alpari的黄金合约上,TICKSIZE是0.05(而Point是0.01)。据我所知,MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS)
 
cameofx:

是的,那就太好了......!如果你愿意的话,请附上它或给我发邮件。谢谢你,菲利普...


包括在附件的rar文件中。我相信你会有使用方面的问题,请提出来吧。


cameofx:

这是否意味着交易的另一方,即空头(问价)的市场信息如果独立计算,会有差异?



这是正确的。但误差百分比只是点差除以要价(~0.02%-0.05%,取决于货币对)......只有在你想计算每一分钱的时候才重要。


cameofx:

我从来没有这样看过!需要思考一下这个问题,....。:)


我在所附的rar文件中包含了一个excel文件,希望在你思考的时候能进一步帮助你。

cameofx:

有一个问题(也许是个愚蠢的问题):你是否曾经遇到过没有美元作为基础/计数器,而以交叉的形式存在的货币对?



按照你的问题目前的写法,简单的答案是肯定的--每个没有美元的交叉盘都符合你的标准。但我认为你的意思是问一个不同的问题--即我是否遇到过一个经纪人提供交叉货币对,同时不提供必要的货币对,即包含交叉货币对的对应货币和账户面值的货币?

这个问题的答案是否定的,而且有充分的理由,因为经纪人根本无法做到。经纪人不能这样做的原因是,他们受到这里详述的方程式的相同基本价格联系的约束......换句话说,他们需要获得相同的价格信息,以便计算和报告你的交叉货币头寸估值。

例如,假设你有一个以欧元计价的账户,你买了1手英镑兑美元。英镑兑美元的对应货币是美元。因此,为了计算你在英镑兑美元头寸上的利润/亏损,你的经纪人(和你)也需要知道欧元兑美元的价格。(欧元是您的账户货币,美元是您开仓的交叉货币对的对应货币)

如果经纪商没有将欧元兑美元作为提供的货币对,那么MT4终端就无法逐点计算您的头寸的浮动利润/损失。因此,你永远不会发现一个经纪人为你提供交易交叉货币对(相对于你的账户面额)的能力,而不提供包含你账户货币的主要货币对。
 
jjc:
对戈登的 "几乎总是 "进行澄清,我无法立即想到哪种外汇工具不是如此,但当经纪商提供金属、指数等时,这很少是真的。例如,在Alpari的黄金合约上,TICKSIZE是0.05(而Point是0.01)。据我所知,MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS)
这两点都同意。我从未见过MODE_POINT和MODE_DIGITS不确认这个公式的情况。
 
cameofx:
点:总是以1 结尾。
"一个'点'(MODE_POINT)是最小的 可能的价格变化",因此显然它必须以1结尾。
MODE_TICKSIZE : 以点为单位的最小的价格变动单位。

正如我之前所说,尽管文件中声称"以点为单位的Tick大小",但这显然是不准确的。它也是以价格为单位的。

MODE_TICKVALUE : 对应货币的当前价值,转换为其基本比率。

这个定义不清楚...(也许英语不是你的母语?)。