从头开始自学MQL5语言 - 页 81

 
Alexey Viktorov #:

我真的希望这不是你写的...。

这里有一个工作函数

你所要做的就是输入风险的大小,这样它就不会从全额自由保证金中算出来...

谢谢你,阿列克谢,谢谢你的反馈!我的地段计算版本可以工作,只有写有数组的那部分代码不工作。

最初我设计它是为了能够为不同的货币对设置不同的风险大小。

说实话,我不太明白如何将你的代码用于多货币EA。

问候,弗拉基米尔。

 
MrBrooklin #:

谢谢你,阿列克谢,感谢你的反馈意见我的版本中的批次计算是有效的,只有写数组的那部分代码不工作。

它最初的设计是允许为不同货币对指定不同的风险大小。

说实话,我不太明白如何将你的代码用于多货币EA。

真诚的,弗拉基米尔。

非常简单。我没想到,在你学到这么多东西之后,你会有困难。

/********************************************************************\
|   Calculate optimal lot size     Расчет объема лота                |
/********************************************************************/
//double contractSize(double Lot)
double contractSize(string symbol, double risk)
 {
//  double volume = Lot > 0.0 ? Lot : AccountInfoDouble(ACCOUNT_MARGIN_FREE)/10000,
  double volume = AccountInfoDouble(ACCOUNT_MARGIN_FREE)*risk/10000,
         v = volume,
         volumeStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP),
         minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN),
         maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX);
  v = round(volume/volumeStep)*volumeStep;
  return(fmin(maxLot, fmax(minLot, v)));
 }/******************************************************************/

而该函数被称为

double lot = contractSize(symbol[Number], Risk[Number]);
 
Alexey Viktorov #:

非常简单。我没想到,在你学到这么多东西之后,你会有任何麻烦......

并调用了该函数。

再次感谢你,阿列克谢!我今晚将尝试在我的EA中使用它。

我对数组比较陌生,因此遇到了困难。直到现在我还不需要它们,但现在我意识到这是一个很大的缺口,我必须在不久的将来填补。我开始研究德米特里-费多谢耶夫的文章,但到目前为止,还有很多地方不清楚。我需要时间来吸收这些材料。

问候,弗拉基米尔。

 
SanAlex #:

这是我一直在搞的事情。

也许你应该先了解它的要点。
 
SanAlex #:

一些东西--我在所有的地方都试过这个代码--它似乎是有效的。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

就要开始了--我在路上又遇到了坎坷。

萨沙,你在自由职业中也按要求写这种代码吗?我一直想知道你是如何写出2行或更多行的代码的。但现在我开始明白了......计算一下我的代码和你的代码的行数......并检查一下最大差额,这是无稽之谈......使用 "我不知道 "选项要容易得多。

  MqlTick tick;
    if(!SymbolInfoTick(posSymbol, tick))
      return;
    if(tick.ask-tick.bid > inpSpred)
      return;

如果你想让它发挥作用,但不是每个人都能理解你所写的内容,你可以用三行来做

  MqlTick tick;
    if(!SymbolInfoTick(posSymbol, tick) || tick.ask-tick.bid > inpSpred)
      return;
 
SanAlex #:

这段代码取自终端

继续保持良好的工作。
 
SanAlex #:

我自己不知道如何写代码--我从文档中获取所有的功能,然后稍加摆弄,为自己的目的修改它们。

\\\\\\\\\\\\\\\\\\\\

我也看了你的代码和在代码库中。我正在学习--我不是一个理论家--自己挖掘比解释--如何挖掘更容易。

已经很清楚,你只能挖掘。为什么把代码放在这里?
 
SanAlex #:

只是为了--只是为了逗你开心。

你还会向谁提出你的聪明问题?

他们给你十年时间是有原因的。
 
SanAlex #:

离开芬兰湾,和我们一起到黑海来吧

实际上我在加里宁格勒
 
SanAlex #:

离开芬兰湾,和我们一起到黑海来吧