任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 1044

 
LRA:

int Flags=FILE_WRITE+FILE_TXT+FILE_COMMON。

int Info = FileOpen(fName,Flags);

FileWrite(Info,What's Up); 在另一个终端,读取。文件打开时的光标和F1 - 获得帮助

谢谢,我会看看的
 

大家好。

我的时间序列数组在交易事件定义的字符串中没有更新(当一个新的蜡烛 出现时),或者说当一个新的蜡烛出现时它的值没有变化。

if(T[i]!=iTime(NULL,TF[i],1))

T[i]在启动专家顾问时首先被设置,然后,当一个新的蜡烛出现时,该值被更新。

I参数是在输入参数的基础上设置的。

有趣的是,在我使用几个TF工作的版本中,因为这个原因不得不使用for循环,一切都很正常,但在这里失败了--没有更新,就是这样......(

 
Igemon:

大家好。

我的时间序列数组在交易事件定义的字符串中没有更新(当一个新的蜡烛出现时),或者说当一个新的蜡烛出现时它的值没有变化。

T[i]在启动专家顾问时首先被设置,然后,当一个新的蜡烛出现时,该值被更新。

I参数是在输入参数的基础上设置的。

有趣的是,我在必须使用for循环 的版本中使用了几个TFs来工作,而且工作得很好,但现在失败了--它就是不更新...(

显然,它没有被正确地从循环中拉出来...

这里有一个自定义函数,用于定义一个新的酒吧

bool NewBar(int tf, datetime &lastbar)
{
   datetime curbar = iTime(_Symbol, tf, 0);
   if(lastbar != curbar)
    {
     lastbar = curbar;
     return (true);
    }
   else return(false);
}//******************************************************************|

输入变量。

tf -图表周期 或周期值,用于确定新条形图的出现。

lastbar - 一个通过参考传递的变量,用于存储最后一个条形图的时间。

void OnTick()
{
// хотим определить наступление нового дня
 static datetime lastDay, lastHour;
 bool newDay, newHour;
 newDay = NewBar(PERIOD_D1, lastDay);
 if(newDay)
 Print("наступил новый день");
// и нового часа
 newHour = NewBar(PERIOD_H1, lastHour);
 if(newHour)
 Print("наступил новый час");
}
 
AlexeyVik
bool NewBar(int tf, datetime &lastbar)
{
   datetime curbar = iTime(_Symbol, tf, 0);
   if(lastbar != curbar)
    {
     lastbar = curbar;
     return (true);
    }
   else return(false);
}//******************************************************************|

第一次从EA调用它时,它立即报告一个新栏。通过在OnInit()中添加函数调用 而得到修正。

当第一次从脚本中调用时,它立即报告一个新的酒吧。 然后它总是假的。通过在函数的开头添加RefreshRates()而得到修正

 
LRA:

第一次从EA调用它时,它立即报告一个新栏。通过在OnInit()中添加函数调用而得到修正。

当第一次从脚本中调用时,它立即报告一个新的酒吧。 然后它总是假的。通过在函数的开头添加RefreshRates()而得到修正

1.一开始打电话是真的,这很正常,如果一直没有条子,出现的就会是新条子。如果有必要,如果战略需要,可以用这种方式拒绝一个新的酒吧 和一些其他的东西。一眼望去,不假思索,我又介绍了两个。

static datetime lastDay = iTime(_Symbol, PERIOD_D1, 0);, lastHour = iTime(_Symbol, PERIOD_H1, 0);

if(lastbar != curbar && lastbar > 0)

2.脚本为什么要定义一个新的栏?这在多大程度上是愚蠢的?

 

但为什么在这里不工作......((((((((())))我认为它很好。

extern int TFrame=1;

datetime T[6];
int TF[6]={1,5,15,30,60,240};
int i=TFrame-1;

int OnInit()
   {
   T[0]=iTime(NULL,1,1);
   T[1]=iTime(NULL,5,1);
   T[2]=iTime(NULL,15,1);
   T[3]=iTime(NULL,30,1);
   T[4]=iTime(NULL,60,1);
   T[5]=iTime(NULL,240,1);
   for(int q=0;q<=5;q++)
      Print(T[q]);
   return(INIT_SUCCEEDED);
   }
 
void OnTick()
   {
   while(1==1)
      {
      if(T[i]!=iTime(NULL,TF[i],1))
 

Igemon:

void OnTick()
   {
   while(1==1)
      {
      if(T[i]!=iTime(NULL,TF[i],1))
对不起,伊格蒙,但为什么这么鲁莽呢?是哪个好心人建议你这么做的?
 
大家好。谁能告诉我:我怎样才能确保EA正常工作,即当终端重新启动或互联网断开时,它能执行一个给定的算法?
 
artmedia70:
对不起,伊格蒙,但为什么这么鲁莽呢?是哪个好心人建议你这么做的?
它有什么问题?我只是没有把其余的代码放进去,因为那里一切都很正常。循环是需要的,以便在定义事件时不依赖于ticks,不重新启动PC是在100毫秒时睡眠