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

 
Interesting:

3つの証券会社でテストしたところ、動作しました(証券会社で取引されている全商品を検索します)

このように試してみてください。

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
OnTickについては、あくまで一例です。
 
ddd06:

それこそ、真は効かない!?

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
これは正しい方法です。情報を出力 するために関数を使っているので
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
これは正しい方法です。関数を使用して情報を出力しているので
ありがとうございます、私が理解していなかっただけなのですが、疑問は残ります:)
 
ddd06:
ありがとうございます、私はそれらを理解していなかっただけで、質問は残っています:)

実際の相場では(リアル、デモ、おそらく入札)、このコードは3つのターミナルでテストしてうまく動作します(初期化中に呼び出されます)。

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

マーケットレビュー中の15ペアを表示しました。


通常のテストでは、テスターパラメータで指定されたシンボルだけが考慮されます(他のシンボルが必要な場合、それは偽のシンボルの配列とみなされるはずです)。


追記

EAが多通貨の場合、テスターで独自のシンボルリストを用意し、証券会社で提示されているシンボルリストと比較する必要があります。

 

かっこいいけど、見落としが あるのでは?

解明してくれてありがとうございます。

興味深いことに、最初の投稿については、今のところ誰も反応していない、タイプは、次のビルドで修正しますと書くことができました。

 

履歴の注文数、取引数は返さない。

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

プライミング

注文履歴

 
Urain:

履歴の注文数、取引数は返さない。


まず、この機能を使って履歴を読み込む必要があります。

HistorySelect(0,TimeCurrent())
 
Valmars:

機能で先に履歴をダウンロードする必要があるんです。


はい、ありがとうございます、うまくいきました、マニュアルを読み進めていきます :o)

ただ、ユーザーとEAでフローが分かれているのは考えられなかったです。

履歴が表示されるということは、Expert Advisorで読み込むべきということだと思ったのですが、どうでしょうか?

しかし、これはより正しいです - ターミナルは、Expert Advisorのための独自のスペースを作成します。

ターミナルはExpert Advisorのための独自のスペースを作成します。

これは、mql-4で定期的に履歴を読み込むバッファという形で実装されていたものと同様です。

 
Urain:

はい、ありがとうございます、すべてうまくいきました、マニュアルを読んでいきます :o)

ユーザー用とEA用のスレッドが分かれているのがどうしても納得いかなかった。

履歴が表示されるということは、EAで読み込むべきということだと思ったのですが。

しかし、これはより正しいです - ターミナルは、Expert Advisorのための独自のスペースを作成します。

の場合、情報選択が独自のフォーマットで行われるため、より高速になります。

そのアナログがmql-4では、履歴を定期的に読み込むバッファという形で実装されていました。


残念ながら、スクリプトやEA、端末を置くスペースは共通です。最終日(日)の端末履歴を呼び出してから、スクリプトやExpert Advisorから上記の関数を実行すれば確実です。そして、端末の履歴も「すべての履歴」に変わったことがわかります。これは端末の欠点だと思います。複数のスクリプト、Expert Advisorがあり、それぞれが異なる履歴を要求していると想像してください。端末内の履歴がバウンドする(視覚的に)。Expert Advisorsに関係なく、現在の状態を表示するために「History」タブが必要です。

また、端末の履歴はしばしば遅れて更新されます。つまり、取引が執行され、ポジションが決済されても、「履歴」タブには表示されないのです。一度、わざと履歴が更新されるのを待っていたことがあります。分だったのですが...。待ったなしです。History」タブから履歴を要求するコンテキストコマンドを実行した後、または履歴を要求するスクリプトを実行した後にのみ表示されます。

 
ddd06:

かっこいいけど、見落としが あるのでは?

考えてくれてありがとうございます。

最初の投稿で、まだ誰も答えていないのは興味深いことです。

欠陥は、明示的にフォーマット文字列を使用せずにPrintFormatを使用して いることです。

次のビルドで修正すべき点は?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5
理由: