[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 996

 
总是这样,先回答一个问题,然后写一个顾问,然后随着新想法的到来无休止地改变它,可怜的艺术媒体,所以很快所有的程序员都会离开,没有人可以帮助)
 

Techno 完全同意你的观点,但我是要求你开一个主题,而不是在其他地方,这个主题说什么?

初学者的任何问题,为了不使论坛杂乱无章。专业人士不走。没有你就无处可去。

如果讨论不适合在主线上进行,版主可以把它放在一个单独的主题上。

然后这个案子纯粹是自愿的,我没有要求替我写所有的工作,就像我上面说的,我在学习,我想那些刚加入的新人也是如此,他们学到了很多。

 
ex_kalibur:

Techno 完全同意你的观点,但是......。

那么,到目前为止,从上面写的职权范围来看,你建议一切都应该为你写。这个主题是专门为初学者在编程和培训过程中出现的问题而设计的,而不是为了满足他们所有的愿望)
 
因此,如果大家都同意职权范围,而且都清楚,那就继续。首先,我附上所有的模板文件
附加的文件:
 
Techno:
到目前为止,从上述书面的职权范围来看,你提议为你写好一切。该主题是针对初学者在编程和训练过程中的问题而设计的,不是为了满足他们的所有愿望)
我一开始就提出了问题,但后来变得非常复杂,由于该程序有一个复杂的结构,并有传入的文件,所以不可能显示代码,因此我将重新开始,从我离开的地方开始。
 

我想把我的EA从mq4改写成mq5。你能告诉我,在mq5中测试和优化EA的速度会快多少吗?

 
ex_kalibur:
因此,如果大家都同意职权范围,而且都清楚,那就继续。首先我附上所有的模板文件

为什么这么复杂?
 
Vinin:

为什么这么复杂?
因为我被难住了,我甚至无法提出一个合格的问题
 

让我们从 "标准 "函数开始吧

为了确定通道,我们将分别使用ZigZag指标,让我们设置它的参数。

//--------------------------------------------------------------------

// Criterion.mqh

//--------------------------------------------------------------- 1 --

// Функция вычисления торговых критериев.

// Возвращаемые значения:

// 10 - открытие Buy

// 20 - открытие Sell

// 11 - закрытие Buy

// 21 - закрытие Sell

// 0 - значимых критериев нет

// -1 - используется другой финансовый инструмент

//--------------------------------------------------------------- 2 --

// Внешние переменные:

eextern int ExtDepth=12;

extern int ExtDeviation=5;

extern int ExtBackstep=3;

//-----------------------------------------------------------------------

int Criterion() // Пользовательская функция

{

string Sym="EURGBR";

if (Sym!=Symbol()) // Если не наш фин. инструмент

{

Inform(16); // Сообщение..

return(-1);

} // .. и выход

double

High,

Low ;

//------------------- Параметры технич. индикат: -------------------

High =iCustom (NULL,0, "Zigzag",ExtDepth,ExtDeviation, ExtBackstep,1,bar);

Low = iCustom (NULL,0, "Zigzag",ExtDepth,ExtDeviation, ExtBackstep,2,bar);

int TicSpred=100;

double Spread[1000];

if (Spread[0]==0) {ArrayInitialize(Spread,(Ask-Bid)/delta);}

for (int q=TicSpred;q>0;q--){

if (Spread[q]==0) Spread[q]=(Ask-Bid)/delta;}

for (q=TicSpred;q>0;q--) {Spread[p]=Spread[p-1];}

Spread[0]=(Ask-Bid)/delta;

double CountedSpred;

for (q=0;q<bars;q++){CountedSpred=CountedSpred+Spread[p];}

//--------------------------------------------------------------- 5 --

// Вычисление торговых критериев

if (Bid <= Low && Ask< High -CountedSpred/2*delta )

return(10);

if ( Bid>= High )

return(20);

 

// 交易标准的计算

如果(Bid <= Low && Ask< High -CountedSpred/2*delta)

return(10);

If ( Bid>= High )

返回(20)。

在这里我被卡住了,根据任务,我们应该首先获得平均价差的历史,我应该怎么做?

我希望我的100个单元格阵列被完全填满