エラー、バグ、質問 - ページ 3132

 
Yury Lemeshev #:

ひとつ問題があって、それはランダムに、ときどき現れることです。

テスターで複数の通貨を使用して作業しているときに表示されます。

各サイクルでは、シンボルの実勢価格を要求しています。何らかの理由で特定のシンボルの相場を受信できなかった場合、別のシンボルについて以前に取得した相場を使用します。

指定した価格より高ければ、ポジションを建てるべきですね。他のシンボルから間違ったデータを取得した場合、ポジションをオープンする必要があります。

価格が1.45117より上にある場合、EURCADシンボルが開きます。1.74425>1.45117? はい、高いですが、他のシンボルの価格です。

500件中、7件のエラーオーダーを検出しました。

シンボルからの価格要求、応答が一つの同じ環境変数に投げ込まれているとしか思えません。前の値と等しいかどうか、簡単に確認することができます。他のシンボルイコールであれば、非常に稀です。

 
Yury Lemeshev #:

コードにエラーがない、エラーをなくすためにコードを書き直した、エラーが定期的に出るわけではない、完全にカオスである

この世界では奇跡は起きない...ここではまだ乱発していないテレパスの一人が、エラーについても話しています。

 
Yury Lemeshev #:

ひとつ問題があって、それはランダムに、ときどき現れることです。

テスターで複数の通貨を使用して作業しているときに表示されます。

各サイクルでは、シンボルの実勢価格を要求しています。何らかの理由で特定のシンボルの相場を受信できなかった場合、別のシンボルについて以前に取得した相場を使用 します。

指定した価格より高ければ、ポジションを建てるべきですね。他のシンボルから間違ったデータを取得した場合、ポジションをオープンする必要があります。

価格が1.45117より上にある場合、EURCADシンボルが開きます。1.74425>1.45117? はい、高いですが、他のシンボルの価格です。

500件中、7件の誤発注を検出しました。

答えは、質問そのものにあるのです。ロボットは、無関係な引用や別のシンボルの間違った データを使用することができます。具体的にどのような考えなのか、私にはわかりません。でも、明らかにコードがおかしい...。

 
Mihail Matkovskij #:

答えは、質問そのものにあるのです。ロボットは、無関係な引用や 他のシンボルからの不正な データを使用することができます。もちろん、どういう考えなのかはわかりません。しかし、何か明らかにコードがおかしい。

コードに何か問題がある。ロジックに空白がある。一般的なジャムのちらつきは、予知しにくく、かわしにくい。

 
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- eurgbp 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- eurgbp 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- eurgbp 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 0.86993 (0.86985 / 0.86993 / 0.86985) でEURGBPを即買い。
2021.12.31 22:14:19.912 2019.01.24 18:50:10 deal #13 buy 0.01 EURGBP at 0.86993 done (based on order #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 取引完了 [#13 buy 0.01 EURGBP at 0.86993].
2021.12.31 22:14:19.912 2019.01.24 18:50:10 注文実行 0.01 at 0.86993 [#13 buy 0.01 EURGBP at 0.86993 ]です。

各サイクルはOKだが、その瞬間に別のシンボルのデータが代入される。1.5969>0.88506 はい、ポジションオープン。これはコードのバグではありません。これはテスターのバグです。

euSY01b=0;euSY01a=0;
   if(SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)
      {
      GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST BID",euSY01b);GlobalVariableSet("["+MAGICs+"] "+euSY01+" LAST ASK",euSY01a);
      }
 
Valeriy Yastremskiy #:

コードではすべてそうなっています。ロジックに隙間がある。 一般的に関節がチカチカするのは予知しにくいし、追い払うのも難しい。

コードのないロジックをどう考えるか?

 
Yury Lemeshev #:
2021.12.31 22:14:19.911 2019.01.24 18:50:09 -2117- eurgbp 0.86993
2021.12.31 22:14:19.912 2019.01.24 18:50:10 -2117- eurgbp 0.86994
2021.12.31 22:14:19.912 2019.01.24 18:50:10-2117- eurgbp 1.5969
2021.12.31 22:14:19.912 2019.01.24 18:50:10 0.86993 (0.86985 / 0.86993 / 0.86985) でEURGBPを即買い。
2021.12.31 22:14:19.912 2019.01.24 18:50:10 deal #13 buy 0.01 EURGBP at 0.86993 done (based on order #13)
2021.12.31 22:14:19.912 2019.01.24 18:50:10 取引完了 [#13 buy 0.01 EURGBP at 0.86993].
2021.12.31 22:14:19.912 2019.01.24 18:50:10 注文実行 0.01 at 0.86993 [#13 buy 0.01 EURGBP at 0.86993 ]です。

各サイクルはOKだが、その瞬間に別のシンボルのデータが代入される。1.5969>0.88506 はい、ポジションオープン。これはコードのバグではありません。これはテスターのバグです。

そして、信号探索に入る 前にシンボルのタイミングを確認する。

 
Mihail Matkovskij #:

コードのないロジックとは何だと思いますか?

問題の記述/ローカライゼーション - 解決アルゴリズムまたは解決ロジック - コード。残念ながら、ここはワンフォーオールモードで理解されないことが多い。コーディングは、問題が明確に定式化される前に始まり、解法のアルゴリズムさえも決まっていない。もちろん、どんなクエリでも必ず実行されるというロジックは、テスターだけでなく現実にも不正確なものです。したがって、イベントのちらつきによる有害な結果を避けるために、正しい行動が必要です)))Happy Holidays!!!!

 
Valeriy Yastremskiy #:

Happy Holidays!!!!

ありがとうございます。こちらこそ!(笑

質問の本質として、上記では「やるべきこと」を書きました。そうすれば、理屈は通りますよ。

 
Mihail Matkovskij #:

で、信号のサーチに入る 前に、シンボルの同期を確認する。

   if(SymbolIsSynchronized(euSY01)==true && SymbolInfoDouble(euSY01,SYMBOL_BID,euSY01b)==true && SymbolInfoDouble(euSY01,SYMBOL_ASK,euSY01a)==true && euSY01b>0 && euSY01a>0)

そうすると、コード内に7つのペアのためのそのような行がある場合、市場の概要には1つの通貨の相場しか表示されません。