遗憾的是,这个问题没有明确说明,也没有从提出的例子中得出结论。目前还不清楚--究竟什么是表示为错误。
请准确地表述你的问题,附上所获得的结果并指出其中的错误所在。
例如,指出这里的错误所在。
EURGBP BuyPlus=158.40000000 BuyMinus=-158.48000000 SellPlus=-158.48000000 SellMinus=158.40000000 Profit=1.58398000 Loss=1.58482000
我在最后添加了SYMBOL_TRADE_TICK_VALUE_PROFIT 和SYMBOL_TRADE_TICK_VALUE_LOSS值。
你可以看到,利润实际上考虑到了不同的刻度值,这取决于交易的盈利或亏损。这是因为有一个隐含的转换操作,当一个人必须卖出(如果是盈利)或买回(如果是亏损)获得的财务结果在一种货币中进行转换。
- www.mql5.com
一个"√"的价值并不取决于交易的利润或损失。
盈利和亏损将以同一价格收盘。转换是一样的。
只有短线和长线的交易才会有刻度值的差异,并且在转换为存款货币 时可以有不同的计算方法。
BuyPlus和BuyMinus的例子将是相等的。也有SellPlus和SellMinus。你只能购买....与卖家不同...
你在这里混淆了一些东西。
...当你要卖出(如果是盈利)或买回(如果是亏损)的财务结果,以一种货币进行转换。
- www.mql5.com
当你开立欧元兑英镑的交易,而入金的货币是 美元,你基本上有(大致)买入欧元兑美元和卖出英镑兑美元。(音量的差异并不重要,因为在你关闭时它们不会改变)
开盘:以 Ask(EURUSD) 买入 EURUSD,以 Bid(GBPUSD) 卖出 GBPUSD。
在收盘时(如果是盈利,如果是亏损),你有相同的价格:买入(EURUSD)和卖出(GBPUSD)。
为什么盈利/亏损 的刻度值不同?
- www.mql5.com
一个"√"的价值并不 取决于交易是盈利还是不盈利。
盈利和亏损将以同一价格收盘。在转换时,价格也将如此。
这只是它的作用。
要做到这一点,你需要了解具有复杂交叉 转换的数学计算。只要你用欧元兑美元和英镑兑美元等主要货币进行操作,你就不会看到什么。
是的,乍一看似乎并不取决于它,但如果你详细地检查十字架 ,你会发现它确实如此。
这就是问题所在,它取决于。
这实际上是一个没有意义的问题。雷纳特的逻辑很清晰,乍一看甚至似乎很正确。
当你做交叉交易时,你在其基础货币 中获得了利润。例如,欧元兑英镑 交易的利润是以英镑 计算的。但在MT5 中没有多币种利润的概念,所以英镑的利润 会被即时转换为账户货币。而且,似乎在正数利润的情况下,它必须按照当前的汇率GBPUSD_Bid 进行转换,而在负数的情况下--GBPUSD_Ask。
然而,这里有一个反例。
- 你有两个独立的账户。你决定把资金从一个转到另一个。
- 在EURGBP 上,你将一个账户的内部价差设置为BuyLimit。因此,投标价格 成为你的。
- 在另一个账户上,使用市场订单,你执行卖出。
- 通过这个简单的操作,你已经卖给了自己。
- 一段时间过去了,你决定完成交易。
- 在第一个账户中,你在价差内设置SellLimit。现在你的价格变成了 "要价"。
- 在另一个账户上,你用市场订单来买入。
- 事实证明,你现在已经从你自己的账户中购买了。
- 每个账户中的两笔交易都已关闭。你买了又卖给你自己。
- 在一个账户中你有正的利润,而在另一个账户中则是负的。
- 你认为你们两个账户中的资金数额有变化吗(不包括经纪人的佣金)?
- 根据雷纳特的逻辑,它已经改变了。因为一个账户的利润将不等于另一个账户的损失。而且,尽管你自己也在买进和卖出。
- 这样说对吗?
我们在谈论市场条件--ECN/STP 经纪人。
- www.mql5.com
然而,一个反例。
- 这是正确的做法吗?
这是关于市场条件 -ECN/STP 经纪人。
这就是问题所在:这取决于。
要做到这一点,你需要深入研究具有复杂交叉 转换的数学计算。只要你用欧元兑美元和英镑兑美元等主要货币进行操作,你就不会看到什么。
是的,乍一看,似乎不应该依赖,但如果你详细检查十字架 ,你会发现它确实如此。
要价/出价的计算可能很复杂,但 事实上,对于所有的交叉盘,你有2个交易。
1. 买入或卖出SYMBOL_CURRENCY_BASE-ACCOUNT_CURRENCY的要价/出价
2) 买入或卖出SYMBOL_CURRENCY_PROFIT -ACCOUNT_CURRENCY的要价/出价
每笔交易,如果我们以买入价开盘,我们将以卖出价收盘。反之亦然......。
结果符号对于收盘价来说并不重要,就像现在MetaTrader 5上所做的那样!
请记住,至少还有两个内部转换有自己的传播。
我们谈论的是什么转换操作?逻辑很简单,你必须将多币种利润转换为账户货币,仅此而已。在这个例子中,英镑的利润必须转换为美元。利润是正数还是负数并不重要,你必须转换它。
你已经放弃了获取多币种利润并在展期时进行兑换的市场计划。这与定位为市场平台的MT5的市场条件 不同。但为了简化起见,这种背离可以理解,而且在许多情况下(不是所有情况下)不会产生严重的费用。
但在利润计算的情况下,以正确的名称称呼事物,你是有意或无意地促成了一个欺诈性的计划,从客户那里拿钱,而有利于使用MT5的经纪人。让 我解释一下,目前经纪人在MT5上从所有客户的交易中获得的额外利润等于(大致)他所有客户在交叉盘上的营业额,乘以相应的主力合约的点差。
你已经实施了一个免费的计划,在价差上赚钱,而且是在任何价差上赚钱。例如,在新闻期间,在同一个英镑兑美元上,点差可能非常大,如果在经纪商的客户处有收盘/开盘,经纪商就会在一个平坦的地方赚取这个巨大的点差。
这是一个缺点,多币种利润放弃,因为多币种价差在新闻期间可以以非常讨厌的价格转换。而事实上,在展期期间,多币种利润是按所有客户的总净值进行转换的。而这种不平衡是不可能发生的,如上面的反例所示。
运行一个简单的脚本。
这个错误是清晰可见的...
问题一定来自SYMBOL_TRADE_TICK_VALUE_PROFIT 和SYMBOL_TRADE_TICK_VALUE_LOSS。
我们将需要SYMBOL_TRADE_TICK_VALUE_LONG和SYMBOL_TRADE_TICK_VALUE_SHORT。
搜索结果发现了一些有趣的东西。
Renat:
Я вчера, когда смотрел код, неверно выразился по поводу разной стоимость пункта в зависимости от направления.
Точнее сказать, что TickValue при конвертации в целевую валюту зависит от того, убыточна она или нет. То есть, если мы получили убыток в 1 пипс, то нам надо его выкупить по цене Ask, а если прибыль в 1 пипс, то продать по цене Bid.
这当然是错误的。对于一个空头头寸,价格反过来说....
我真的希望这个错误是不由自主的。你能不能纠正它,请!