新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 735

 

Mql5的朋友们,你们能帮我在对冲账户中提出平仓 的请求吗?情况:开了 买入头寸,我们需要用卖出限价来关闭它。问题:我怎样才能正确地写一个请求,准确地关闭所选择的头寸,而不是开新的卖出锁定买入?请写一段带注释的代码!提前感谢您!

 

你好。请给予帮助。

'LastDir' - illegal switch expression type


double LastDir[];
//............... 
switch(LastDir[i]){
                           case 0:
                              if(High[i]>LastHighValue[i]){
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i];                            
                                 PEACK[i]=High[i];
                              }   
                           break;                            
                           case 1:
                              if(High[i]>LastHighValue[i]){
                                 int lhb=iBarShift(NULL,0,LastHighTime[i],false);
                                 ZZ[lhb]=0;
                                 PEACK[lhb]=0;
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i];                            
                                 PEACK[i]=High[i];
                              }                           
                           break;
                           case -1:
                              if(High[i]>=LastLowValue[i]+Point*ZZReverse){
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i]; 
                                 PEACK[i]=High[i];                            
                              }
                        }
 
bij:

你好。能否请你帮助我?


开关语句必须是整数类型

 
Alekseu Fedotov:

开关语句必须是整数类型

但是"LastDir" 是一个缓冲区,它不能是int。

如何摆脱这种情况?

 
bij:

但是"LastDir" 是一个缓冲区,它不能是int。

如何摆脱这种情况?

摒弃开关操作员。

与if()操作符一起工作

 

不能确定这是否等同于第一种情况

                       if(LastDir[i]==0)
 
@Alekseu Fedotov,谢谢,可以了)在2009年,开关可以是双倍的)
 
bij:
@Alekseu Fedotov,谢谢,可以了)在2009年,开关可以是双倍的)

始终只是一个整体)

 
bij:

你好。请给予帮助。


如果缓冲区只能包含以双数0.0、1.0和-1.0表示的整数值,我将检查这个选项

double LastDir[];
//............... 
switch((int) LastDir[i]){
                           case 0:
                              if(High[i]>LastHighValue[i]){
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i];                            
                                 PEACK[i]=High[i];
                              }   
                           break;                            
                           case 1:
                              if(High[i]>LastHighValue[i]){
                                 int lhb=iBarShift(NULL,0,LastHighTime[i],false);
                                 ZZ[lhb]=0;
                                 PEACK[lhb]=0;
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i];                            
                                 PEACK[i]=High[i];
                              }                           
                           break;
                           case -1:
                              if(High[i]>=LastLowValue[i]+Point*ZZReverse){
                                 LastHighValue[i]=High[i];
                                 LastHighTime[i]=Time[i];
                                 LastDir[i]=1;  
                                 ZZ[i]=High[i]; 
                                 PEACK[i]=High[i];                            
                              }
                        }
此外,我还会把case-1放在case 0之前。
 
Alexey Viktorov:

如果缓冲区只能包含以双数0.0、1.0和-1.0表示的整数值,我将检查这个选项

此外,我还会把case-1放在case 0之前。

这里-1可能应该被设置为默认值:特别是由于没有默认的情况。

虽然......。你必须是一个作者,才能知道哪一个更适合设置为默认。