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

 
voix_kas:

エラーコードです。4756.スクリーンショットで ご覧いただけます。

1.もう一度私は私の質問を繰り返す - 選択的に選択された取引することになっているシンボルのリスト(すなわち、複数を取引しようとしているすべてのシンボルのために第二パラメータtrueとコマンドSymbolSelectを実行しました)?

私は、初期化ブロックにおいて、SymbolSelectで必要とされるすべてのシンボルを選択し、この修正後にこのエラーが発生しないことを確認するよう助言します。

2. 開発者の 皆様へ。

a) 端末記号のリストに、SymbolSelectで選択されなかった記号を明示的に含めるのはなぜか(いくつかの情報を収集する以外のアクションは実行されなかったと仮定して)。

b)SymbolsTotal(false) やSymbolName(index,false) のような一見無害なものが、視覚化ウィンドウにシンボルを明示的に表示することにつながると思いませんか?

私の理解では、このようになるはずです - No SymbolMarketWatchに表示されているシンボルのうち、シンボルを選択しない。

c) 私の理解では、テスターは照会されたすべてのシンボルをダウンロードし、SymbolSelectで選択されたもの、またはユーザーが価格や他の関連情報を取得しようとしたものだけを表示する必要があります。

例えば、あるシンボルが同期しているか、その履歴がサーバー上でどの程度深いかを判断する場合、なぜ選択記号を付けてすぐにMarketWatchに載せる必要があるのでしょうか。

 
voix_kas:

また、ご指摘の箇所でエラーコードを キャッチするにはどうすればよいのでしょうか。上記コードの最終行でエラーを登録します。

このコードの直前に次の項を追加すると、このエラーは表示されません。

例えばこんな感じ。

double price=SymbolInfoDouble(Instrumet, SYMBOL_ASK);
if(price==0.0)
  {
   Print("Ай-яй-яй. Ошибка ",GetLastError());
   return(false);
  }
TradeRequest.price = price;
 
Interesting:

2. 開発者への 質問 - SymbolSelectを使って選択されなかったシンボル(特定の情報を収集する以外のアクションは実行されなかったと仮定)は、なぜ明示的な形でターミナルシンボルのリストに入るのですか(上のスクリーンショットで見ることができます)。

MT5テスターは、利益を最も正確にバランス通貨に変換するなど、非常に正確な取引条件のシミュレーションを使用しています。

クロスを扱う場合、ベースとなる通貨 ペアをシミュレーションして利益を再計算しなければならないということです。つまり、ある機器(クロス)の作業時には、モデリングが二重に行われ、どの瞬間でも絶対に正確で再現性のある計算ができるようになっているのです。

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

面白い
もちろんです。このコードは、その後のすべてのアクションの前に表示されます。

if (SymbolInfoInteger(Instrumet, SYMBOL_SELECT) || SymbolSelect(Instrumet, true))
{
  ...
}

条件を満たさない場合、このツールに対してそれ以上のアクションは実行されません。

初期化時の"SymbolSelect" について...つまり、最初の呼び出し( SymbolSelect(Instrumet,true) )ではツールを読み込まないという ことですね?

ただ、最初にプレゼンス(初期化)のためのシンボルを経由しているんです。そして、OnTick|OnTimerで、楽器が以前から選択されていない場合、明示的に選択します。

ビックおじさん

ありがとうございます。私はこのエラーにどのように対処しているかです。
できれば、null価格が表示される原因について教えてください。また、それが現実(=テスト時だけでなくリアルタイムモード)でも起こりうるのか?

 
voix_kas:

面白い
もちろんです。このコードは、その後のすべてのアクションの前に表示されます。

条件を満たさない場合、このツールに対してそれ以上のアクションは実行されません。

初期化時の "SymbolSelect " について...つまり、最初の呼び出し( SymbolSelect(Instrumet,true) )ではツールを読み込まないという ことですね?

ただ、最初にプレゼンス(初期化)のためのシンボルを経由しているんです。そして、OnTick|OnTimerで、ツールが以前に選択されていない場合、明示的に選択するようにしています。


不思議なもので、私が何かを理解していないのか、どこかに私が期待するように動作しないコードがあるのか、どちらかです。

私の知る限り、SymbolSelectは 初期化ブロックの中で一度だけ使用すれば十分です(結果を確認した方が良い)。

私のテスターでは 、あらかじめ用意した配列からMarketWatchを以下のように単純に形成して います。

  //Forming list of symbols
  for(int f=0;f<ArraySize(ArrSymbolsEA);f++)
  {
  SymbolSelect(ArrSymbolsEA[f],true);
  }

通常は、ストラテジーテスターですべてのシンボルを取引できるようにすれば十分です。

ただし、この場合、ジャーナルにシンボルがない場合は、次のようなエラーになります。

2011.07.06 18:47:57     symbol NZDUSD does not exist

すべてが正常に動作している場合、テスターウィンドウは次のように表示されます。


 
voix_kas:

ありがとうございます。まさに今、このエラーを回避する方法です。
もしよろしければ、ゼロ価格が発生する原因について教えてください。また、このようなことは実際に起こりうるのでしょうか(テスト時だけでなく、「リアルタイム」モードと読んでください)?


エラーコードは 何ですか?
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 

開発者の皆様へ

SDで書こうと思ったのですが、気が変わりました。 bool SymbolExists(name) / bool SymbolIsExists(name)関数の追加をお願いします。

目的 - 指定されたシンボルがサーバー上で見つかるかどうかを判断します。成功した場合は、true を返す。

このような場合のみ、そのシンボルはMarketWatchに表示されません(原理はSymbolIsSynchronizedと 同じです)。

これだけあれば、そんな悩みも解消されるはずです。

2011.07.06 18:47:57     symbol NZDUSD does not exist
 
uncleVic:
エラーコードは 何ですか?

ストラテジーテスターで確認する限り、2つのエラーが同時に発生しています。最後の1枚だけが傍受可能です。
なぜわかるのか?上記のようなコードを出しました。エラーコードの情報はどこに入れればいいのでしょうか?

 
Interesting:

不思議なもので、私が何かを理解していないのか、どこかに私が考えているようには動かないコードがあるのか、どちらかです。

...

すべてが期待通りに動作していれば、テスターウィンドウは次のように表示されます。

2011.01.03 00:00:00から、あなたの多通貨でテスターを実行してください。

2011.01.03 00:59:59 までは、3つの通貨ペアのみが利用可能です(マーケットウォッチに表示されています。)2011.01.0301:00:00から開始 - すべて正常です。

追伸

MQのデモ口座(チャンピオンシップの準備用)の話です。

 
voix_kas:

2011.01.03 00:00:00から、あなたの多通貨でテスターを実行してください。

2011.01.03 00:59:59まで、3つの通貨ペアしか利用できません(マーケットウォッチに表示されています、スクリーンショットをご覧ください)。2011.01.0301:00:00から開始 - すべて正常です。

追伸

MQのデモ口座(チャンピオンシップの準備用)の話です。

シンボルによる履歴は同期していますか?