[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 301

 
laveosa:

我已经用完全相同的方法做了所有的事情,而且不止一次,但还是有那个洞。
然后在你的住所里寻找Cheburashka!当然,他的滑稽动作!;)
 
laveosa.,保持历史到昨天eurusdm1下载通过进口 的引号。
附加的文件:
eurusd1.zip  548 kb
 
我试着检查一个指标,我把数字放在图表上,但它们没有变化,我试着用另一种方式,我需要附件中的指标把价格固定为站在之字形或警报或打印上的十字,但它在连接时冻结了。
附加的文件:
 

向专家们提出一个问题!

我经常在我的EA中设置魔法师。为了不使代码中出现重复的时刻,如 "垃圾"。

double maFast = iMA(NULL, 0, i_maFastPeriod, 0, i_maMethod, i_maPrice, index);
double maSlow = iMA(NULL, 0, i_maSlowPeriod, 0, i_maMethod, i_maPrice, index);

这样的重复可以说是有序的。我想通过编写单独的函数来摆脱它们。

这里是开头。

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(double typeOfMA, int tf, int maPeriod, int maShift, int maMethod, int maApplied, int index)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
//+-------------------------------------------------------------------------------------+
//| Получаем сигнал от скользящих средних                                               |
//+-------------------------------------------------------------------------------------+
int GetStateOfMA()
{
   if (GetMA(1, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex) > 
      GetMA(2, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex))
      return (CROSS_UP);
}

你可以进一步声明全局变量,例如fastMAslowMA,并通过函数的引用返回它们。

GetMA(double typeOfMA, int tf, int maPeriod, int maShift, int maMethod, int maApplied, int index)

你会得到这样的东西。

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(double typeOfMA, int tf, int maPeriod, int maShift, int maMethod, int maApplied, int index, double& fastMA, double& slowMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
//+-------------------------------------------------------------------------------------+
//| Получаем сигнал от скользящих средних                                               |
//+-------------------------------------------------------------------------------------+
int GetStateOfMA()
{
   GetMA(double typeOfMA, int tf, int maPeriod, int maShift, int maMethod, int maApplied, int index, double& fastMA, double& slowMA);
   if (fastMA > slowMA)
       return (CROSS_UP);
   if (fastMA < slowMA)
       return (CROSS_DN);
   return (CROSS_NO);
}

问题是这样的。

我听说或在某处读到,切换操作员很慢,在这种情况下不会影响整个EA的性能吗?一般来说,它有多慢?

很多参数在这里出来,难道不会拖累专家顾问吗?

我在写和思考生产力,所以问题出现了,因为我不是一个程序员的培训,要了解它自己,不是真的出来...

 

维克多,函数调用开关 更像一个制动器。你可以自己检查速度。写一个带有循环的测试代码。你将在那里检查你的代码。测量输入端的时间。然后将其与输出时间进行比较。

交换机 操作员是最快的操作员之一。这比在条件下运行要快。

开关 的使用应该是默认的例外。这样,在出现不正确的情况下,你就会知道为什么代码不工作。

 

嗯,根据文档,我想你不能把常数作为变量用于case。它说的是某种目标常数、字符常数或字符表达式。

只有当你设置了一个字符串类型的字母,即1个字符(如果超过1个字符,编译器会发誓)或一个数字时,它才会起作用。

没有别的了。
它说的是一些目标常数、字符表达式和字符常数。

 

我在哪里可以读到关于使用全局 终端变量的实际例子?具体来说,我想让每个专家顾问只交易自己的存款份额,其利润/亏损不影响其他专家顾问的MM。

 
Ekburg:

大家好

当在终端运行专家顾问时,您能否告知 "超时关闭 "的错误可能是什么原因,以及如何解决这个问题?

 
[quote=Roman.]改变厨房。[/quote]问题就在这里,这似乎与厨房无关:卖出订单在EA日志中。当然,你可以假设经纪人改变了下载的MT4分配器的代码,纠正了交易方向,但我认为这太冒失了。
 
我可以附上程序代码,而不是把整个代码复制到这里吗?管理员们在哪里看?