错误、漏洞、问题 - 页 3075

 
Yury Lemeshev #:

我已经痛苦了两天了。

不时地

如果(A>B),其中A=0.1,B=0.2就进入函数。

问题出在MT5测试器上。


最初,变量是从数组中填充的,现在从全局变量 中重新制作,错误仍然存在。

(如果可能的话)显示完整的代码--不要猜测你在哪里犯了错误 :-)

可能是一些简单的错误,如int B=0.2

 

代码。

 int iGSO1;

   double dGSO1,dGSO2;
   string sGSO1;
   for(iGSO1=0; iGSO1<GlobalVariablesTotal(); iGSO1++)
      {
      sGSO1=GlobalVariableName(iGSO1);
      if(StringFind(sGSO1,"["+MAGICs+"] [GRID#",0)!=-1 && StringFind(sGSO1," BUY ",0)!=-1)
         {
         symbol=StringSubstr(sGSO1,StringFind(sGSO1," BUY ",0)+5);
         if(SymbolInfoDouble(symbol,SYMBOL_BID,dGSO1)==true)
            {
            dGSO2=GlobalVariableGet(sGSO1);
            if(dGSO1<dGSO2 && dGSO1-dGSO2<0)
               {
               iOrderComment=NormalizeDouble(dGSO2,5)+" "+NormalizeDouble(dGSO1,5)+" "+(dGSO1-dGSO2);VO2=0;volumeticket=0.01;intOpenPositionFromGrid();
               ArraySort(iGSA);
               ArrayFill(iGSA,0,1,iGSO1);
               ArrayFill(iGSA,1,1,MAGICs);
               ArrayFill(iGSA,2,1,dGSO2);
               ArrayFill(iGSA,3,1,ticket);GlobalVariableDel(sGSO1);
               }
            }
         }
      if(StringFind(sGSO1,"["+MAGICs+"] [GRID#",0)!=-1 && StringFind(sGSO1," SELL ",0)!=-1)
         {
         symbol=StringSubstr(sGSO1,StringFind(sGSO1," SELL ",0)+6);
         if(SymbolInfoDouble(symbol,SYMBOL_BID,dGSO1)==true)
            {
            dGSO2=GlobalVariableGet(sGSO1);
            if(dGSO1>dGSO2 && dGSO2-dGSO1<0)
               {
               iOrderComment=NormalizeDouble(dGSO2,5)+" "+NormalizeDouble(dGSO1,5)+" "+(dGSO2-dGSO1);VO2=1;volumeticket=0.01;intOpenPositionFromGrid();
               ArraySort(iGSA);
               ArrayFill(iGSA,0,1,iGSO1);
               ArrayFill(iGSA,1,1,MAGICs);
               ArrayFill(iGSA,2,1,dGSO2);
               ArrayFill(iGSA,3,1,ticket);GlobalVariableDel(sGSO1);
               }
            }
         }
      }
 
当然,除非它是明确而充分的。
 
Yury Lemeshev #:
当然,如果它是明确和充分的。

变量名称是什么?

 
Yury Lemeshev #:

代码。

dGSO1到底在哪里被初始化?

打印日志中的嫌疑人,看看

PrintFormat("这些GSO: %f %f",dGSO1,dGSO2)。

在条件之前......顺便说一下,你在那里检查同样的事情两次。

 

我同时在处理两个或更多的订单。格。我检查低于或高于条件进入点的价格。条件进入点原来是在数组中,现在是在全局的。

而事实证明,这些数字被调换了,但上帝禁止调换。只要正确地进行比较就可以了。但这种替换也会出现故障。

symbol="";
         symbol=StringSubstr(sGSO1,StringFind(sGSO1," SELL ",0)+6);
         dGSO1=0;
         if(SymbolInfoDouble(symbol,SYMBOL_BID,dGSO1)==true)
            {
            dGSO2=GlobalVariableGet(sGSO1);
            if(dGSO1>dGSO2 && dGSO2-dGSO1<0)

 
我在写新的数据之前重置了数据,符号本身也正确地写了新的,但符号上的数据是从另一个符号上取的。
附加的文件:
1mj3v0k1ez.png  24 kb
 
Yury Lemeshev #:

我同时在处理两个或更多的订单。格。我检查低于或高于条件进入点的价格。条件进入点原来是在数组中,现在是在全局的。

而事实证明,这些数字被调换了,但上帝禁止调换。只要正确地进行比较就可以了。但这个开关也是有故障的。

1.这些变量名称是什么?这些名字是怎么来的?它看起来像一个反编译。

2.请正确粘贴代码:在编辑帖子时,点击编码 ,在弹出的窗口中粘贴你的代码。

MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Vladimir Karputov #:

1.变量名称是什么?这些名字是怎么来的?它看起来像一个反编译。

2.正确插入代码。

对不起,我可能误解了你的意思。我不明白第一个问题。

 
Yury Lemeshev #:

对不起,我可能对你有误解。我不明白第一个问题。

第一个问题:你是自己写的这段代码,并给这些变量命名吗?