在MQL5中估计保证金要求 - 页 7

 
Vladimir:

你明白,这与代码无关,每一个知道如何重新计算的人。但你把波动性加到了特征列表中,你实际上已经确定了这些特征的影响。而如果你进一步进入木头,你会收集越来越多的木柴。如何将其纳入考虑范围?此案似乎相当无望...

我完全不明白你的意思。

这都是在交易条件中描述的,在实际的交易规则中。

这种现象基本上是司空见惯的。

计算方法也相应不同。

但这个问题是可以解决的

如何考虑到--以前的帖子。
 
Renat Akhtyamov:

我不知道你是什么意思。

这都是在交易条件中描述的,在实际交易规则中。

这种现象在本质上是普遍存在的。

因此,计算方法是不同的

但这个问题是可以解决的。

我将尝试解释。该算法如下:我们观察几十家经纪公司的几十个符号。为了简单起见,我把它称为交易的预期利润率,即它所采取的保证金。它对每一对都是不同的(符号,直流)。不仅包括在交易开启的时刻。为了选择那些符号和经纪公司,在那里我们将打开一个交易,我们需要比较这个数字。对于这种选择,我们需要估计杠杆率,在完成交易前的预期时间内,杠杆率将达到什么限度。毕竟,我们将不得不保留这一数额。

这是最大的方案。到目前为止,我甚至不知道我是否可以把OrderCalcMargin()作为估计所需保证金的基础。就让它成为当前时刻的保证金吧。你说,随着波动性的变化,杠杆率也在变化。因此,我们将不得不收集统计数据--在VC的每个符号中,它的变化范围是什么。或者说,将有可能找到这些波动的可接受范围。最糟糕的事情是,如果事实证明杠杆率以不可预测的方式变化......

我的问题 "OrderCheck() 或OrderCalcMargin()是否考虑了规范中规定的杠杆功能 "是这个方法的一个起点。
 
Vladimir:

让我试着解释一下。该算法如下:几十个DC中的几十个符号被监测。估算是在某一步骤进行的,为了简单起见,我将称其为交易的预期利润率,即它所采取的保证金。它对每一对都是不同的(符号,直流)。不仅包括在交易开启的时刻。为了选择那些符号和经纪公司,在那里我们将打开一个交易,我们需要比较这个数字。对于这种选择,我们需要估计杠杆率,在完成交易前的一个预期时期内,它将是什么限度。毕竟我们将不得不保留这一数额。

这是最大的方案。到目前为止,我甚至不知道我是否可以把OrderCalcMargin()作为估计所需保证金的基础。只让它成为当前时刻的保证金。你说,随着波动性的变化,杠杆率也在变化。因此,我们将不得不收集统计数据--在VC的每个符号中,它的变化范围是什么。或者说,将有可能找到这些波动的可接受范围。最糟糕的事情是,如果事实证明杠杆率以不可预测的方式变化......

我这是最后一次写信。

阅读某家经纪公司的交易条件,你不需要任何统计数据。

 
Renat Akhtyamov:

我最后一次写。

你可以自己决定改变杠杆,你可能在几个小时内只得到20个。

//我的问题 "OrderCheck()或OrderCalcMargin()是否考虑了规范中规定的杠杆作用的特点 "是这个方法的一个起点。

目前

你永远看不到减杠杆的邮件何时到来,可能有很多因素,这不仅仅是为了各国的选举。他们可以在 "飞行 "中酌情改变杠杆率,你可以把它从100设定为20,而且只需几个小时。

 
Vitaly Muzichenko:

你是否曾在邮件中看到一封信,通知你降低杠杆率,可能有很多因素,不仅是在国家选举中。你也可能得不到一封信--他们根据自己的情况临时改变杠杆率,他们可能从100到20,而且只是几个小时的时间。

维塔利,我已经在前一篇文章中写了跟踪算法,我自己也用了,因为杠杆率是1:2000。

在交易条件中,他们具体规定了杠杆变化的限制,条件,时间,在什么条件下他们完全不改变,等等。

你也可以临时改变它,这就是为什么我在跟踪它。

 
Vladimir:.
我的问题 "OrderCheck()或OrderCalcMargin()是否考虑了规范中规定的杠杆功能 "是这个方法的一个起点。

对不起,用你自己的话说。

"这不是关于代码的问题,而是关于每个能够重新计算的人。"

很可能你也把自己分配给了所有人。

算一算,一切都将是
 

或者是终端没有正确的信息?
我检查了终端是否每次都向服务器发送请求,或者它检查我是否有足够的资金。我发现MT5中只有一家经纪公司在资金不足的 情况下,将其请求记录在两行,有两个点。可能是因为在MT5中,这个终端是唯一连接到真实账户的,其他的MT5我都是模拟的。6次手动交易开仓尝试的日志。

2018.07.03 04:59:35.231 交易 '3038119': 市场买入1.26 EURUSD.m
2018.07.03 04:59:35.331 交易 '3038119': 市场买入1.26 EURUSD.m [没有钱]
2018.07.03 05:00:51.667 交易'3038119':市场买入1.26 EURUSD.m
2018.07.03 05:00:51.747 交易 '3038119': 市场买入1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:00:55.001 交易'3038119':市场买入1.26 EURUSD.m
2018.07.03 05:00:55.091 交易 '3038119': 市场买入1.26 EURUSD.m [没有钱]
2018.07.03 05:01:00.008 交易'3038119':市场卖出1.26 EURUSD.m
2018.07.03 05:01:00.091 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:01:02.911 交易 '3038119': 市场卖出 1.26 EURUSD.m
2018.07.03 05:01:03.007 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:01:05.952 交易'3038119':市场卖出1.26 EURUSD.m
2018.07.03 05:01:06.035 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]

请求线和无钱回答之间的时间间隔(以毫秒为单位):100 80 90 83 96 87。
此外,服务器在终端的ping是73.56ms。为什么终端等待80毫秒或更长时间才决定钱不够用?看起来它把所有的请求都发给了服务器,而没有检查是否足够。这是为什么呢?我看到一个自然原因--终端没有必要的信息来进行这种检查。
而且我一直确信,"钱不够...... "的信息是由终端本身发出的,它不仅仅是发送服务器的决定。

丹尼斯-基里琴科似乎是对我的问题最精确的回答https://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov,你在https://www.mql5.com/ru/forum/261955/page2#comment_7945930"从服务器请求保证金信息"中建议了什么方法?即使需要一秒钟,也没关系,但你指的是对服务器的哪种请求?是否只是试图打开一个预期的交易,对其进行初步的保证金估计?

 
Vladimir:

或者是你的终端没有正确的信息?
我开始检查终端是否每次都向服务器发送请求,或者它是否在检查资金是否充足。我发现MT5中只有一家经纪公司在资金不足 的情况下用两行显示两点来记录请求。可能是因为在MT5中,这个终端是唯一连接到真实账户的,其他的MT5我都是模拟的。6次手动交易开仓尝试的日志。

2018.07.03 04:59:35.231 交易 '3038119': 市场买入1.26 EURUSD.m
2018.07.03 04:59:35.331 交易 '3038119': 市场买入1.26 EURUSD.m [没有钱]
2018.07.03 05:00:51.667 交易'3038119':市场买入1.26 EURUSD.m
2018.07.03 05:00:51.747 交易 '3038119': 市场买入1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:00:55.001 交易'3038119':市场买入1.26 EURUSD.m
2018.07.03 05:00:55.091 交易 '3038119': 市场买入1.26 EURUSD.m [没有钱]
2018.07.03 05:01:00.008 交易'3038119':市场卖出1.26 EURUSD.m
2018.07.03 05:01:00.091 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:01:02.911 交易 '3038119': 市场卖出 1.26 EURUSD.m
2018.07.03 05:01:03.007 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]
2018.07.03 05:01:05.952 交易 '3038119': 市场卖出1.26 EURUSD.m
2018.07.03 05:01:06.035 交易 '3038119': 市场卖出1.26 EURUSD.m失败 [没有钱]

请求线和无钱回答之间的时间间隔(以毫秒为单位):100 80 90 83 96 87。
此外,服务器在终端的ping是73.56ms。为什么终端等待80毫秒或更长时间才决定钱不够用?看起来它把所有的请求都发给了服务器,而没有检查是否足够。这是为什么呢?我看到一个自然原因--终端没有必要的信息来进行这种检查。
而且我一直确信,"钱不够...... "的信息是由终端本身发出的,它不仅仅是发送服务器的决定。

丹尼斯-基里琴科似乎已经最准确地回答了我的问题https://www.mql5.com/ru/forum/261955/page4#comment_7949343

Renat Akhtyamov,你在https://www.mql5.com/ru/forum/261955/page2#comment_7945930"从服务器请求保证金信息"中建议了什么方法?即使需要一秒钟,也没关系,但你指的是对服务器的哪种请求?是否只是试图打开一个预期的交易,对其进行初步的保证金估计?

当然,我确实理解你。

一开始,我并没有马上理解简单的事情

再一次,这里是出售1手的保证金

OrderCalcMargin(ORDER_TYPE_SELL,_Symbol,1,BID,Mgn)

但对于购买

OrderCalcMargin(ORDER_TYPE_BUY,_Symbol,1,ASK,Mgn)

杠杆是与它的比率,不超过

k=100/杠杆

像这样

而你的日志告诉你,你没有钱,不能免费开一个订单。

你可以用模拟资金开立一个订单。然而,据我所知,你也没有任何演示资金。

余额为零,不是吗?
 
伙计们,给我一个经纪公司的地址,在那里一个符号的杠杆或一个账户的杠杆经常变化。或者至少对于一些符号单独的杠杆条件。
 

ForexClub

使用::OrderCalcMargin()检查了他们相对于这批的保证金。真实账户,杠杆率1:500。

欧元兑美元地段价格量值,美元保证金,美元理论上的杠杆作用
100 0001.001.16716116 716233.43500

11.001.167161 283 8762 567.75500

51.001.167165 952 51611 905.03500

101.00
1.1671611 788 31623 576.63500


事实证明,当交易量增加时,杠杆率并没有变化,这与《规范》不相符。

原因: