如何计算地段大小? - 页 3

 
chaffinsjc:

假设我的迷你账户有10,000美元的保证金,我想在下一笔交易中冒2%的风险(也就是说,只需用200美元买入<某个数量>的合约)。

[我意识到这是对 "风险 "的一种有限看法。我对止损点,或盈利目标,或其他什么都不感兴趣。]

使用MetaTrader,我从我的经纪人那里得到以下迷你账户信息。

accountLeverage =AccountLeverage(); //值 = 200
modeLotSize = MarketInfo("EURUSDm", MODE_LOTSIZE); // 值 = 10000
modeLotStep = MarketInfo("EURUSDm", MODE_LOTSTEP); // 值 = .01
modeMinLot = MarketInfo("EURUSDm", MODE_MINLOT)); // 值 = .01

问题:我如何计算200美元的手数? 知道最小手数的成本会很有用。在这种情况下,最小尺寸的手是0.01)。

问题:所有货币对的手数计算公式是否相同?

非常感谢你的提议。


我给你发了一个很好的手数计算器,它是基于权益而不是余额的。如果你有更多的交易,那会更好。

 
我把我的手数计算发送给你。它是基于权益而不是基于余额。如果你在一起使用超过1个交易,那就更好了。
附加的文件:
 

在文档中。

MODE_TICKVALUE

16

以存款货币为单位的滴答值

MODE_TICKSIZE

17

以点为单位的滴答大小


对于我的五位数经纪商 : mode_tickvalue = 1; mode_ticksize = 0.00001

那么,为什么每个人都给这一行。

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

这不是错的吗?

 

这是不对的,措辞不当(?)

double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

应该是:如果数字==5,如果你以点为单位工作,那么....。

if (Digits==3 || Digits==5) pipValue *= 10;

如果有人在点上工作,那么他就不关心点数。

 
ffoorr:

在文档中。

MODE_TICKVALUE

16

以存款货币为单位的滴答值

MODE_TICKSIZE

17

以点为单位的滴答大小


对于我的五位数经纪商 : mode_tickvalue = 1; mode_ticksize = 0.00001

那么,为什么每个人都给这一行:

这不是错的吗?

   double pipValue = MarketInfo(Symbol(),MODE_TICKVALUE);
 if (Digits==3 || Digits==5) pipValue *= 10;

这只是针对人们以点为单位输入数值的情况。点通常不等于1点。
 
ffoorr: 这不是错的吗?

TickPIPPoint。它们在总体上都是不同的。Tick是价格的最小变化。一个点是报价的最小有效数字。在货币中,一个点被定义为0.0001(或日元为0.01)。

在一个4位数的经纪商,一个点(0.0001)=点(0.0001)。[JPY 0.01 == 0.01] 在5位数的经纪人那里,一个点(0.00001)=1/10点(0.00010/10)。仅仅因为你多报了一个数字,并没有改变一个点的价值。(0.0001 == 0.00010) EA必须将点数调整 为点(对于mq4.) 在货币中,一个刻度就是一个点。价格可以通过最小的有效数字来改变(1.23456 -> 1.23457)

在金属中,一个Tick仍然是最小的变化,但比一个点大。如果价格可以从123.25变化到123.50,你的TickSize 是0.25,点是0.01。点子没有任何意义。

这就是为什么你不使用TickValue 本身。只能作为与TickSize 的比率。见DeltaValuePerLot()

 
Roman Kramar:

这个问题没有完全定义。如果你说你想冒2%的风险,那么你必须固定一个变量:止损水平或交易量。既然你问的是计算手数,这意味着你不希望它被固定,但这需要你对止损点感兴趣,尽管你说你不感兴趣。如果你没有止损,那么冒2%的风险意味着采取固定的手数,例如1.0,并等到你目前的损失达到初始保证金的2%。你不需要在这里计算手数,因为你看到了。


一旦止损水平进入视野,计算就简单了。


double tradeVolume =AccountFreeMargin() * Risk/100 / ( StopLossPoints * MarketInfo( Symbol(), MODE_TICKVALUE )。


也就是说,给定任何特定交易的止损水平,如果采取了止损,你将永远有初始保证金的指定百分比的损失。


你还需要通过MODE_LOTSTEP将结果值归一化,并通过MODE_MINLOT和MODE_MAXLOT将其上限化。

我怎样才能计算出我所有的开仓订单尺寸(美元)?

 
magonicolas: 我如何计算我的所有开仓订单尺寸( 美元)?
  1. 不要重复发帖!你已经打开了这个 主题。
    论坛的一般规则和最佳做法。-一般 - MQL5编程论坛

  2. 毫无意义。如何以美元计算我的夸特?

    永远不要冒超过您账户的一小部分风险,当然,每笔交易的风险低于2%,账户的总风险为6%。风险取决于 您的初始止损、手数大小和货币对的价值。它并不取决于保证金和杠杆。
    1. 你把止损放在它需要的地方--交易的理由不再有效的地方。例如,交易一个支撑位的反弹时,止损要低于支撑位。
    2. 帐户余额 * 百分比/100 =风险 = 订单手数 * (|订单开盘价 - 订单止损| * DeltaPerLot + 佣金PerLot) (注意OOP-OSL包括点差DeltaPerLot 通常在10美元/点左右,但它考虑了货币对与您帐户货币的汇率。
    3. 不要单独使用TickValue -DeltaPerLot,并验证MODE_TICKVALUE 是否像文件中承诺的那样,以你的入金货币返回数值,或者它是否以工具的基础货币返回数值。
      MODE_TICKVALUE在许多经纪商的非外汇工具上不可靠 - MQL4编程论坛 2017.10.10
      对于Tick值有一个通用的解决方案吗?-货币对 - 一般 - MQL5编程论坛 2018.02.11
      批量价值的计算偏离了100的系数 - MQL5编程论坛 2019.07.19
    4. 你必须正确规范手数,并对照最小最大 手数进行检查。
    5. 你还必须检查FreeMargin以避免止损

    大多数货币对每个PIP 价值约10美元。一个5美元的风险和一个(非常小的)5PIP SL是5/10/5美元或0.1手的最大值。

 
William Roeder:
  1. 不要重复发帖!你已经打开了这个 主题。
    论坛的一般规则和最佳做法。-一般 - MQL5编程论坛

  2. 毫无意义。如何以美元计算我的夸特?

    永远不要冒超过您账户的一小部分风险,当然,每笔交易的风险低于2%,账户的总风险为6%。风险取决于 您的初始止损、手数大小和货币对的价值。它并不取决于保证金和杠杆。
    1. 你把止损放在它需要的地方--交易的理由不再有效的地方。例如,交易一个支撑位的反弹时,止损要低于支撑位。
    2. 帐户余额 * 百分比/100 =风险 = 订单手数 * (|订单开盘价 - 订单止损| * DeltaPerLot + 佣金PerLot) (注意OOP-OSL包括点差DeltaPerLot 通常在10美元/点左右,但它考虑了货币对与您帐户货币的汇率)。
    3. 不要单独使用TickValue--DeltaPerLot,并验证MODE_TICKVALUE 是否像文档中承诺的那样,以你的入金货币返回一个值,或者是否以工具的基础货币返回一个值。
      MODE_TICKVALUE在许多经纪商的非外汇工具上不可靠 - MQL4编程论坛 2017.10.10
      对于Tick值有一个通用的解决方案吗?-货币对 - 一般 - MQL5编程论坛 2018.02.11
      批量价值的计算偏离了100的系数 - MQL5编程论坛 2019.07.19
    4. 你必须正确规范手数,并对照最小最大 手数进行检查。
    5. 你还必须检查FreeMargin以避免止损

    大多数货币对每个PIP 价值约10美元。一个5美元的风险和一个(非常小的)5PIP SL是5/10/5美元或0.1手的最大值。

我不是在谈论风险,我只是想知道已开订单的美元金额。

 
magonicolas:

我不是在谈论风险,我只是想知道已开订单的美元数额。

停止 重复发帖!