チャート上に等幅フォントで出力するにはどうしたらいいですか? - ページ 3 1234567 新しいコメント Alexey Volchanskiy 2017.12.03 14:35 #21 Victor Ziborov:パラメータのテストや最適化の段階では、Commentへの出力とLabelへの出力を無効にすることができますが、EAを実際に使用するときには、Commentへの出力とLabelへの出力を再び有効にする必要があります。thanks, cap ))))) 知らなかった。 Ihor Herasko 2017.12.03 15:01 #22 Victor Ziborov:パラメータのテストや最適化の段階では、Commentの出力とLabelの出力をオフにしても良いが、実際にEAを使う時には、Commentの出力とLabelの出力をオンに戻す必要がある。一般に、これは自動的に行われます。bool bIsComment = (!IsTesting() || IsVisualMode());そして、Commentを出力するか、チャート 作成を行うか、コード内のbIsCommentをチェックします。その結果、手動で何かを切り替える必要がありません。 Yury Kirillov 2017.12.03 16:55 #23 Ihor Herasko:これは自動的に行われます。そして、Commentを出力したり、グラフィカルな構造を 作成する必要がある場合には、コードのbIsCommentをチェックする。その結果、手動で何かを切り替える必要がありません。手動でやるというのは、どこに書いてあったのですか?何か見落としがあったのでしょうか? Ihor Herasko 2017.12.03 17:40 #24 Yury Kirillov: どこに手動でやらなきゃいけないって書いてあった?何か見落としがあったのでしょうか?この 投稿に反応するそこは基本的にあいまいなんです。しかし、何となく、「無効」「有効」は、プログラムの実行方法によってユーザーが変更する設定パラメータのような気がします。ただ、そのようなパラメータは必要ないことを明確にした。 Yury Kirillov 2017.12.03 18:13 #25 Artem Virskiy: 各文字の幅をピスケルで測定することができます(同じ幅のグループがいくつかあります)。任意の文字列を与えられた幅になるまで空白で追加する関数を作成しなさい。そして、これらの部分文字列からコメントを組み立てる。もし、このような機能を作ったら、kodobaseに投稿してください。そして私も。面倒くさがりなので。この場合、スペース幅の最小値を示す記号(˶‾᷄ -̫ ̫ ᷅˵)が有効です。そして、通常のスペースを記号 /1 - ワイドスペースに置き換えてください(結局のところ、コメントの長さは制限されています)。もしかしたら、他にも便利なスペースがあるかもしれませんが、私は知らないんです。アイデアありがとうございました Nikolai Semko 2017.12.03 20:48 #26 Yury Kirillov: グラフィカルフォントと比較すると、コメントは圧倒的に高速です。論理的にはそうなのですが、そうではありません。 しかも、簡単にチェックできる。 以下はMQL5でのスクリプトです(MT4では試していません)。#property script_show_inputs #include <Canvas\Canvas.mqh> input uint FontSize=12; // размер шрифта input ENUM_COLOR_FORMAT format=COLOR_FORMAT_ARGB_NORMALIZE; //Способ обработки цвета void OnStart() { CCanvas Text; ulong ColorScreen=ChartGetInteger(0,CHART_COLOR_BACKGROUND,0); Text.FontSet("Arial",FontSize); string str="Соотношение времени выполнения Canvas/Comment = 0.00000"; int H=Text.TextHeight(str); int W=Text.TextWidth(str); if(!Text.CreateBitmapLabel(0,0,"FONT",2,130,W,H,format)) Print("Error creating canvas: ",GetLastError()); ulong t1=1,t2=1,t0; int i=0; color clr=(color)ARGB(255,255^GETRGBR(ColorScreen),255^GETRGBG(ColorScreen),255^GETRGBB(ColorScreen)); while(!IsStopped()) { t0=GetMicrosecondCount(); Text.Erase((color)ColorScreen); Text.TextOut(0,0,str,clr); Text.Update(); t1+=GetMicrosecondCount()-t0; t0=GetMicrosecondCount(); Comment(str); t2+=GetMicrosecondCount()-t0; str="Соотношение времени выполнения Canvas/Comment = "+DoubleToString((double)t1/(double)t2,5); if(i==1000) {Print("Canvas - ",t1," Comment - ",t2); i=0; t1=1; t2=1; } else i++; } Text.Destroy(); Comment(""); }テストでは、グラフィカルな出力が10%程度高速化されています。しかし、面白いのは、フォントサイズを(12ではなく)30にしても、スピードが速くなることです。個人的には謎なんですけどね。 ファイル: TestSpeedText.mq5 4 kb Nikolai Semko 2017.12.03 21:51 #27 Alexey Volchanskiy: 60k/秒のアニメはやらない、出すだけ出してオッケー。キャンバスはアニメもできるんですよ。 ファイル: TestSpeedCanv.ex5 68 kb TestSpeedCanv.mq5 8 kb Nikolai Semko 2017.12.03 23:22 #28 Nikolai Semko: 以下はMQL5でのスクリプトです(MT4では試していません)。MT4で試してみました。 MT4では、Comment()はそのグラフィカルなアナログよりも5倍高速であることが判明しています。そして、MT5ではMT4に比べてComment()が5-6倍遅いことが判明しました。さて、これは不愉快で奇妙な驚きです。そこで、開発者の方に質問です。どうして?明らかに5のバグだろ!!!! Alexey Volchanskiy 2017.12.04 02:44 #29 Nikolai Semko: 論理的ではありますが、そうではありません。 しかも、これは簡単に確認できる。 以下は、MQL5用のスクリプトです(MT4では試していません)。テストでは、グラフィカルな出力が10%程度高速化されています。しかし、面白いのは、フォントサイズを(12ではなく)30にしても、スピードが速くなることです。個人的には謎なんですけどね。この測定は何の意味もありません。CommentとCanvasを別々に何万パスもループさせるべきで、そうすれば何か判断できるはずです。また、カウンターの値を表示させるなど、表示させるテキストを変更する必要があります。このようにやり直すことはできないのでしょうか? Nikolai Semko 2017.12.04 02:47 #30 Alexey Volchanskiy: この測定値は何の意味もない。CommentとCanvasを別々に数万回のサイクルを作るべきで、そうすれば何か判断できるはずです。また、印刷するテキストは、例えばカウンターの値を印刷させるなど、変更する必要があります。この形でやり直せないでしょうか。私もループを分けて作ってみたのですが、なんだか変な結果になったなぁと思いました。同じ結果です。一般的なループであろうと、別々であろうと、違いはありません。私のサンプルでは、毎回テキストが変わっているのですが、なぜ気づかれなかったのでしょう。コンパイラの最適化も知っています。)) 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
パラメータのテストや最適化の段階では、Commentへの出力とLabelへの出力を無効にすることができますが、EAを実際に使用するときには、Commentへの出力とLabelへの出力を再び有効にする必要があります。
thanks, cap ))))) 知らなかった。
パラメータのテストや最適化の段階では、Commentの出力とLabelの出力をオフにしても良いが、実際にEAを使う時には、Commentの出力とLabelの出力をオンに戻す必要がある。
一般に、これは自動的に行われます。
そして、Commentを出力するか、チャート 作成を行うか、コード内のbIsCommentをチェックします。その結果、手動で何かを切り替える必要がありません。
これは自動的に行われます。
そして、Commentを出力したり、グラフィカルな構造を 作成する必要がある場合には、コードのbIsCommentをチェックする。その結果、手動で何かを切り替える必要がありません。
手動でやるというのは、どこに書いてあったのですか?何か見落としがあったのでしょうか?
どこに手動でやらなきゃいけないって書いてあった?何か見落としがあったのでしょうか?
この 投稿に反応するそこは基本的にあいまいなんです。しかし、何となく、「無効」「有効」は、プログラムの実行方法によってユーザーが変更する設定パラメータのような気がします。ただ、そのようなパラメータは必要ないことを明確にした。
各文字の幅をピスケルで測定することができます(同じ幅のグループがいくつかあります)。任意の文字列を与えられた幅になるまで空白で追加する関数を作成しなさい。そして、これらの部分文字列からコメントを組み立てる。
もし、このような機能を作ったら、kodobaseに投稿してください。そして私も。面倒くさがりなので。
この場合、スペース幅の最小値を示す記号(˶‾᷄ -̫ ̫ ᷅˵)が有効です。そして、通常のスペースを記号 /1 - ワイドスペースに置き換えてください(結局のところ、コメントの長さは制限されています)。もしかしたら、他にも便利なスペースがあるかもしれませんが、私は知らないんです。
アイデアありがとうございました
グラフィカルフォントと比較すると、コメントは圧倒的に高速です。
論理的にはそうなのですが、そうではありません。
しかも、簡単にチェックできる。
以下はMQL5でのスクリプトです(MT4では試していません)。
テストでは、グラフィカルな出力が10%程度高速化されています。しかし、面白いのは、フォントサイズを(12ではなく)30にしても、スピードが速くなることです。個人的には謎なんですけどね。
60k/秒のアニメはやらない、出すだけ出してオッケー。
キャンバスはアニメもできるんですよ。
以下はMQL5でのスクリプトです(MT4では試していません)。
MT4で試してみました。
MT4では、Comment()はそのグラフィカルなアナログよりも5倍高速であることが判明しています。そして、MT5ではMT4に比べてComment()が5-6倍遅いことが判明しました。さて、これは不愉快で奇妙な驚きです。そこで、開発者の方に質問です。どうして?明らかに5のバグだろ!!!!
論理的ではありますが、そうではありません。
しかも、これは簡単に確認できる。
以下は、MQL5用のスクリプトです(MT4では試していません)。
テストでは、グラフィカルな出力が10%程度高速化されています。しかし、面白いのは、フォントサイズを(12ではなく)30にしても、スピードが速くなることです。個人的には謎なんですけどね。
この測定は何の意味もありません。CommentとCanvasを別々に何万パスもループさせるべきで、そうすれば何か判断できるはずです。また、カウンターの値を表示させるなど、表示させるテキストを変更する必要があります。
このようにやり直すことはできないのでしょうか?
この測定値は何の意味もない。CommentとCanvasを別々に数万回のサイクルを作るべきで、そうすれば何か判断できるはずです。また、印刷するテキストは、例えばカウンターの値を印刷させるなど、変更する必要があります。
この形でやり直せないでしょうか。
私もループを分けて作ってみたのですが、なんだか変な結果になったなぁと思いました。同じ結果です。一般的なループであろうと、別々であろうと、違いはありません。私のサンプルでは、毎回テキストが変わっているのですが、なぜ気づかれなかったのでしょう。コンパイラの最適化も知っています。))