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:

こんにちは。どうかご協力をお願いします。


switch文は整数型 であること

 
Alekseu Fedotov:

switch文は整数型 であること

しかし、"LastDir" はバッファであり、int型にすることはできません。

この状況を打開するにはどうしたらいいのか。

 
bij:

しかし、"LastDir" はバッファであり、int型にすることはできません。

この状況を打開するにはどうしたらいいのか。

スイッチオペレータを 廃止する。

演算子で動く

 

最初のケースと同等であるという確証はない

                       if(LastDir[i]==0)
 
Alekseu Fedotov、ありがとう、うまくいったよ) 2009年には、スイッチは2倍になっていたかもしれない)
 
bij:
Alekseu Fedotov、ありがとう、うまくいったよ) 2009年には、スイッチは2倍になっていたかもしれない)

いつも、全体だけだった)

 
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];                            
                              }
                        }
また、ケース-1の前にケース0を置きます。
 
Alexey Viktorov:

もし、バッファが0.0, 1.0, -1.0 の整数値のみを格納できるのであれば、次のオプションをチェックします。

また、ケース-1をケース0の前に置く。

ここでは、特にデフォルトのケースがないため、おそらく -1 をデフォルトとして設定すべきです。

でもどれをデフォルトに設定するのが良いかは、作者でないとわからないと思います。