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

 
AlexeyVik:
这可能不完全是我尝试的方式。
我只是在EA中重新编译了代码并运行了它。当我改变注释中的Sys参数时,这个值会发生变化。

我又试着改成你的版本......还是不行......它在EA中,而且作为EA可见...
 
peace1984:

我又试着改成你的版本......还是不行......。它在EA中,并且作为EA可见...


还是我弄错了?

附加的文件:
11_1_1.mq4  8 kb
 
AlexeyVik:


还是我误解了什么?



我知道,如果sys!=1,就会弹出 "sys不应该是1 "的信息,但如果你把用户从0改为1,就应该出现 "sys应该是1"。

在你的EA版本中,在测试过程中,左上角 显示sys=0,这不应该是这样的...

 
peace1984:

我知道,如果sys!=1,就会弹出 "sys不应该是1 "的信息,如果你把用户从0改成1,就会弹出 "sys应该是1 "的信息。

下面是对新推出的产品的介绍。从下往上排。


专家正在加载。

外部变量列表:Sys = 0

初始化通过。

接下来的3行从EA打印。

解除初始化的原因5(输入参数被用户改变)。

外部变量列表:Sys = 1

初始化通过

下面的3行,是专家顾问的打印结果。

去初始化原因1(程序已从图表中删除)。


你想澄清什么?我不明白什么是不工作......

ps:不要注意这种符号。这是一个期权账户,这就是为什么这样的符号名称。

 
AlexeyVik:

这不是问题的关键。没有人想要你的全部秘密代码。只要写一个完整的有误解的代码测试片断。这个怎么样?

你是什么时候清除了高亮线的?心灵感应者无济于事,凡人就更不用说了......。

然后是这一部分。

我不知道是哪个程序员写的,但它完全不够用......这不是你的错。你和其他许多人一样,只是拿着代码并试图修复它......。

如果counted_bars变量等于自上一次指标调用以来保持不变的条数(第一行)。

如果(counted_bars < 0),它怎么会变成小于0,我永远无法理解......。

其余的也是胡说八道,但我懒得拆开它......


我完全同意你的观点。你为什么没有想到这一点?)

我在此附上这样一个可恶的指标的代码和文件。

抛出图形,终端自然挂起,放置10分钟(取决于PC性能。 我的i5 3.1 Ghz),强行关闭MT,打开名为 "bug log.csv "的日志文件,观察bug IndicatorCounted()的事实。

#property indicator_separate_window
#property indicator_buffers 1

double Buffer_1[];

bool busy=false;
int han;

int init()
{
   han=FileOpen("bug log.csv", FILE_CSV|FILE_WRITE);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1);       
   SetIndexBuffer(0,Buffer_1); 
   return(0);
}

int deinit()
{
   FileClose(han);
   return(0);
}

int start()
{
   //if(busy) return(0);
   int limit=3000;
   if(IndicatorCounted()>0) limit=1;
   
   for (int i=0; i<limit; i++)
   { 
      busy=true;
      FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), DoubleToStr(i, 0), DoubleToStr(IndicatorCounted(), 0));
      FileFlush(han);
      
      for(int j=1; j<7000; j++)
        for(int k=1; k<7000; k++)
          double var=2*0.34*MathArccos(0.5)+1.33*MathArcsin(0.23)+1.53*MathArctan(0.11)+2.33*MathCos(0.23)+1.22*MathLog(12)+1.22;
      
      Buffer_1[i]=var;
   }
   
   busy=false;
   return(777);
}
附加的文件:
bugqtest.mq4  2 kb
 

嗨,你能告诉我脚本中缺少什么吗?如果(AccountProfit()>1)条件得到满足,它就关闭所有未结订单,现在它只关闭部分订单,直到条件得到满足。

f(AccountProfit()>1)

{ for (i=OrdersTotal()-1;i>=0;i--){OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
如果(OrderType()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
 
Expert:


我完全同意你的观点。你为什么没有想到这一点?)

我在此附上代码和 "我是谁 "指标本身的文件。

抛出图形,终端自然挂起,放置10分钟(取决于PC的速度。 我有i5 3.1 Ghz),强行关闭MT,打开名为 "bug log.csv "的日志文件,观察bug IndicatorCounted()的事实。

我不知道。我有这个指标,记录了一个这样的文件。

附加的文件:
test.zip  21 kb
 
AlexeyVik:

我不知道。我让这个指标写了一个这样的文件。




非常感谢您的反馈!

尝试了你的版本--同样的结果()

你知道为什么会发生这种情况吗?
不仅仅是我。我在另一台比我更强大的电脑上试了一下,也是同样的问题。

附加的文件:
bugflog.zip  122 kb
 
i999i:

嗨,你能告诉我脚本中缺少什么吗?如果(AccountProfit()>1)条件得到满足,它就关闭所有未结订单,现在它只关闭部分订单,直到条件得到满足。

f(AccountProfit()>1)

{ for (i=OrdersTotal()-1;i>=0;i--){ OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
如果(OrderType()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
return(0); 是多余的,谢谢大家。
 
Expert:


非常感谢您的反馈!

尝试了你的版本--同样的结果()

知道为什么会发生这种情况吗?
我不是唯一的人。我在另一台电脑上试过,比我的更强大,也是同样的问题。

要么是我听不懂你的话,要么是你不懂的东西.......csv文件有什么问题?在计算第一个条形图之前,prev_calculated或IndicatorCounted()(在旧版本中)将为零,这是对的。
原因: