[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 22

 
skyjet:

你好!我的目标是通过创建一个函数将该指标转移到EA中。

第一步,也就是创建函数,已经完成。但是下一个--测试--并不奏效。

指示器绘制了通道。它有4个缓冲区和大量的变量。我已经把它全部放在函数中。

但当创建一个测试专家顾问,通过比较指标和我的函数来确保其操作的准确性时,我无法实现编译。

外部变量的不断错误,在我创建函数时并不存在,但在EA中突然出现。

请给我一些建议或提供一个例子的链接。我使用了GODZILLA的文章,但他的例子与我的不同。

该计划大致如下。

  • 将指标init()中的所有内容转移到一个单独的函数中,例如fInit_Indicator(),并将其写入EA的init()中,同时记住从代码中删除所有涉及指标缓冲区初始化 的内容。
  • 复制所有全局指标变量,并将其置于EA的全局变量中。在EA中声明指标缓冲区时,不要忘记定义它们的大小。像gd_Buf1[100], gd_Buf2[100]等。我认为100个数值对你来说已经足够了。
  • 重新命名指标的start()函数,例如,fMyIndicator(),并将其放在EA的start()函数中,在开单代码之前(用于决策)。
  • 另外,不要忘记,指标缓冲区与 "非指标 "缓冲区是不同的。这方面有几个解决方案。
  • 当一个新的条形图到来时,"非指示器 "数组中的所有数据被移位,释放出0-索引,新的计算值被放在那里。
  • 同样,当一个新的柱子到来时,重新计算整个 "非指示器阵列"。

试试吧 - 这并不难。

 
999666:
帮助我写一个条件,使EA在开出N个订单后将手数乘以一半
if (MyOrders >= n) Lots *= 2;
 

下午好!

我还在琢磨数组的问题。

我需要在每个新的tick上将点的数量的值加载到数组中。

阵列的大小 每次都会不同。在这种情况下,我应该怎么做,在循环的每次迭代中使用ArreyResize?

 

下午好,关于数组的问题。

有一个这种类型的细胞

12345,p,fgh,2011-01-01,55,66

我怎么能从它那里得到55美元呢?

谢谢。

 

如果数组是异质的,你可能应该把所有元素转换成字符串类型,然后用

StringFinde(https://www.mql5.com/ru/forum/138609/page22#613148).如果我说错了,请纠正我。

 
TarasBY:

没有帮助:如果有两个条件并不困难,如果(LotConst_or_not)gd_200 = Lot。

否则gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;

用一个专家顾问来代替它,它计算的不是余额,而是未结订单的数量。

非常感谢您的回答。

 
TarasBY: 没有帮助:如果有两个条件并不困难,如果(LotConst_or_not)gd_200 = Lot。

否则gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;

用一个专家顾问来代替它,它计算的不是余额,而是未结订单的数量。

非常感谢您的回答。


 
Snegovik:

下午好,关于数组的问题。

有一个这种类型的细胞

12345,p,fgh,2011-01-01,55,66

我怎么能从它那里得到55美元呢?

谢谢。


https://book.mql4.com/ru/variables/arrays
 
999666:
帮助我写一个条件,使EA在开出N个订单后将手数乘以2倍
如果你想在已经开出3个2手的订单的情况下开出下一个(4个,等等)订单,那么。
int Opened_pos=0;
for (int i=OrdersTotal()-1; i>=0; i--)
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  { if (OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
    { Opened_pos++;
} } }
if (Opened_pos>=4) double lot=lot*2;
 
Fox_RM:

下午好!

我还在琢磨数组的问题。

我需要在每个新的tick上将点的数量的值加载到数组中。

阵列的大小每次都会不同。在这种情况下,我应该怎么做,在循环的每次迭代中使用ArreyResize?

1-Item:你改变数组大小 的理念从一开始就有缺陷,在100个案例中,你只能用10个单元来处理指标读数。

第2点:在每次打勾时重新计算这些读数是不明智的大脑的奇思妙想。