新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1250

 
Artyom Trishkin :

我没有研究过--很遗憾,我不能告诉你。

我将解释。我希望这有意义。

下面是解释。

我在MT5中交易欧元兑美元和澳元兑日元。如MT5工具条所示,两者都有预定的保证金。我将分享图片。

欧元兑美元的第一笔交易。

我是以手数=1卖出的。拿到的保证金=235.31。

我现在在澳元兑日元上交易。

我在手数=1时卖出。我追加了保证金=144.24。

而工具箱中显示的总保证金=379.55。

你可以看到,工具箱显示了欧元兑美元和澳元兑日元符号使用的总保证金。

现在我来谈谈我的问题。

我想知道EURUSD使用的总保证金是多少。我没有得到这方面的计算结果。我知道答案应该是=235.31

但是用OrderCalcMargin()我得到了不同的答案。有时该函数返回235.23,有时返回235.01。但这是错误的答案。我想知道如何才能计算出某个特定符号所使用的保证金。在我的例子中,告诉我如何计算EURSD或AUDJPY使用的保证金。

请注意。

对于欧元兑美元来说,OrderCalcMargin()的答案有时是正确的。但如果我想计算澳元兑日元的保证金,它总是不同。

现在请让我知道我是否理解。

我有这个问题,并试图向论坛上的每个人解释,但没有人能够理解。这是我再次尝试。

如果还是说不通,我再试试。

@ Artyom Trishkin, 让我知道。我指望你能给我一个解决方案。

 
jaffer wilson:

我将解释。我希望这有意义。

下面是解释。

我在MT5中交易欧元兑美元和澳元兑日元。如MT5工具条所示,两者都有预定的保证金。我将分享图片。

欧元兑美元的第一笔交易。

我是以手数=1卖出的。拿到的保证金=235.31。

我现在在澳元兑日元上交易。

我在手数=1时卖出。我追加了保证金=144.24。

而工具箱中显示的总保证金=379.55。

你可以看到,工具箱显示了欧元兑美元和澳元兑日元符号使用的总保证金。

现在我来谈谈我的问题。

我想知道EURUSD使用的总保证金是多少。我没有得到这方面的计算结果。我知道答案应该是=235.31

但是用OrderCalcMargin()我得到了不同的答案。有时该函数返回235.23,有时返回235.01。但这是错误的答案。我想知道如何才能计算出某个特定符号所使用的保证金。在我的例子中,告诉我如何计算EURSD或AUDJPY使用的保证金。

请注意。

对于欧元兑美元来说,OrderCalcMargin()的答案有时是正确的。但如果我想计算澳元兑日元的保证金,它总是不同。

现在请让我知道我是否理解。

我有这个问题,并试图向论坛上的每个人解释,但没有人能够理解。这是我再次尝试。

如果还是说不通,我再试试。

@ Artyom Trishkin, 让我知道。我指望你能给我一个解决方案。

在你的案例中,要计算的是非常重要的数值。

  1. 账户使用的是什么货币
  2. 你开仓时的汇率是多少?

举例来说,澳元兑日元的保证金计算涉及澳元兑美元和美元兑日元。你开仓时的澳元兑日元汇率是多少,没有人会猜到。你只能尝试通过当前的保证金进行计算。在我给你链接的那个主题中提到了这一点。但说实话,它并没有说什么,但代码里有一些东西。

在随后的每个时刻,这些比率都会发生变化,因此你会得到不同的保证金价值。计算当前保证金与头寸开盘价的比率,并在计算未结头寸的保证金时应用这一系数。你需要做实验。我不记得具体的计算算法了。

但我不认为有人会给你一个现成的解决方案。

 
Alexey Viktorov :

在你的情况下,对计算非常重要的数值。

  1. 该账户以何种货币计价
  2. 你开仓时的汇率是多少?

举例来说,澳元兑日元的保证金计算涉及澳元兑美元和美元兑日元。你开仓时的澳元兑日元汇率是多少,没有人会猜到。你只能尝试通过当前的保证金进行计算。在我给你链接的那个主题中提到了这一点。但说实话,它并没有说什么,但代码里有一些东西。

在随后的每个时刻,这些比率都会发生变化,因此你会得到不同的保证金价值。计算当前保证金与头寸开盘价的比率,并在计算未结头寸的保证金时应用这一系数。你需要做实验。我不记得具体的计算算法了。

但我不认为有人会给你一个现成的解决方案

是的,我明白。但我看到MT5工具箱在不改变保证金的情况下精确计算。那么MT5工具箱使用什么逻辑?你能不能就这个问题提供一些线索?

 

问题:如何通过函数中的参数为不同的变量赋值。如果只有一个参数,可以返回并赋值,但如果有两个参数,应该怎么做?

int x,x1,x2,x3=1,x4,x5;
void OnStart()
{
x=2;
F(x,x1,x2);
Print ("x1= ",x1," x2= ",x2);
x=5 ;
F(x,x4,x5);
Print ("x4= ",x4," x5= ",x5);
return;
}

int F(int ArgX, int ArgX1, int ArgX2)
{
ArgX1=ArgX + x3;
ArgX2=ArgX - x3;
return ArgX1;
}

//результат
2020.09.09 15:10:10.561 TestS EURUSD,H1: x4= 0 x5= 0
2020.09.09 15:10:10.561 TestS EURUSD,H1: x1= 0 x2= 0
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
Документация по MQL5: Основы языка / Операции и выражения / Операции присваивания
  • www.mql5.com
Побитовые операции производятся только с целыми числами. При выполнении операции логический сдвиг представления y вправо/влево на x бит используются младшие 5 двоичных разрядов значения x, старшие разряды отбрасываются, то есть сдвиг производится на 0-31 бит.
 

瓦莱里,也许这个可以。

void  F(int &ArgX, int &ArgX1, int &ArgX2)
 
Aleksei Stepanenko:

瓦莱里,也许这个可以。

对,链接,appersand,如果我没记错的话。

2020.09.09 15:18:33.572 TestS EURUSD,H1: x4= 6x5= 4

2020.09.09 15:18:33.572 TestS EURUSD,H1: x1= 3x2= 1

谢谢你))))。


 
这就对了!链接中的传输。
 
Valeriy Yastremskiy:

问题:如何通过函数中的参数为不同的变量赋值。如果只有一个参数,可以返回并赋值,但如果有两个参数,这怎么办?

这是什么?

void start()

从前,很久很久以前。猛犸象吃的东西。然后他们把它穿上。这就是我所认为的吗?

 
Artyom Trishkin:

那是什么?

很久以前...猛犸象曾经吃过的东西。然后他们把它穿上。这就是我所认为的吗?

不要评判,我是用手写的剧本。而严格的检查会跳过旧的功能。当然,我的剧本不是这样写的。此外,还有一些构造函数。)))))

已更正)
 
同事们,大家今天好。有五个交易机器人有不同的魔法符号,在新条形图的开盘价上打开市场头寸,它们都有相同的进入条件。出口是不同的。
有时 手动关闭 所有五个位置
然后,如何用最小的努力来组织一个新的市场位置,但不是在下一个酒吧 - 贸易在M1,但在连续的不同,即在1 M1打开第一个谁的时间,在第二个M1打开从他们的第二个谁的时间,等5。
即我认为问题归结为以下几点,作为一个选项,如何分配一分钟的市场开盘时间,以便其随后与分钟()标准f-fi进行比较?当然,如果这时已经有了一个市场位置,那么就返回()。