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

 
Yury Lemeshev #:

もう2日間も苦しんでいるんだ。

随時

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)を実行します。

の前に、同じものを2回チェックする。

 

同時に2つ以上の注文をこなしている。グリッド私は、条件付きエントリーポイントの下か上の価格をチェックします。条件付きエントリーポイントは、もともと配列の中にありましたが、今はグローバルなものの中にあります。

そして、桁の入れ替えがあることが判明したのですが、入れ替えは神頼みです。比較さえ正しく行われれば。しかし、この代物も不具合が発生する。

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 #:

同時に2つ以上の注文をこなしている。グリッド私は、条件付きエントリーポイントの下か上の価格をチェックします。条件付きエントリーポイントは、もともと配列の中にありましたが、今はグローバルなものの中にあります。

そして、桁の入れ替えがあることが判明したのですが、入れ替えは神頼みです。比較さえ正しく行われれば。でも、スイッチも不具合があるんですよね。

1.その変数名は何ですか?これらの名前の由来は?デコンパイルしているように見える。

2.コードを 正しく挿入してください:投稿を編集する際に、コード をクリックし、ポップアップウィンドウにコードを貼り付けてください。

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

1.変数名は何ですか?その名前の由来は?デコンパイルしているように見える。

2.コードを正しく挿入してください。

すみません、誤解しているかもしれません。最初の質問がよくわからなかった。

 
Yury Lemeshev #:

すみません、誤解しているかもしれません。最初の質問がよくわからなかった。

最初の質問:このコードは自分で書いて、これらの変数名をつけたのですか?