初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 631

 
Artyom Trishkin:
タブレットでコードを見るのは難しいのですが、答えは - バッファにXの値を書き込むことです。

録音しました。効くんです。どのようにブローカー5桁の引用符の入札と尋ねる価格の5桁の端末のように、計算でインジケータに小数点以下5桁を取得するには、そのインジケータの表示ではどうすればよいのですか?スクリーンショットを添付します。

左のコメントに5文字、画面に白文字が表示されるコードです:(ただし、インジケータでバッファを埋めても4桁表示 NormalizeDouble (ExtMapBuffer2[0],Digits) - 役に立ちません。

  Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) , "\n",
            
              "ExtMapBuffer1[0] = ", DoubleToStr(ExtMapBuffer1[0],Digits) , "\n",
              "ExtMapBuffer2[0] = ", DoubleToStr(ExtMapBuffer2[0],Digits) , "\n",
              "ExtMapBuffer1[1] = ", DoubleToStr(ExtMapBuffer1[1],Digits) , "\n",
              "ExtMapBuffer2[1] = ", DoubleToStr(ExtMapBuffer2[1],Digits) , "\n",
              "ExtMapBuffer1[2] = ", DoubleToStr(ExtMapBuffer1[2],Digits) , "\n",
              "ExtMapBuffer2[2] = ", DoubleToStr(ExtMapBuffer2[2],Digits) , "\n",


 
Roman Shiredchenko:

録音しました。効くんです。どのようにブローカーの端末5桁の引用符の入札とアスク価格は5桁であるように、計算で小数点以下5桁を表示するために、そのインジケータを得るために?スクリーンショットを添付します。

左のコメントで5桁の引用符を画面上に白い記号で表示してみました。 (しかし、インジケータでバッファを埋めても4桁の表示 NormalizeDouble (ExtMapBuffer2[0],Digits) - ではダメなのでしょうか?


IndicatorSetInteger(INDICATOR_DIGITS,_Digits)です。

または

IndicatorDigits(_Digits)です。

 

そして、ここでは、インジケータ配列 ExtMapBuffer_Ave_Speed[0]= NormalizeDouble(X,1) を用いて、平均速度を具体的に示しています。

でも、やっぱり小数点以下4桁までゼロが描かれる...。小数点以下5桁を表示させるにはどうしたらよいですか?

 
Alexey Viktorov:

IndicatorSetInteger(INDICATOR_DIGITS、_Digits)です。

または

IndicatorDigits(_Digits)です。

Senc.すべてうまくいっている!
 
Roman Shiredchenko:
チェンクすべてうまくいっている!
OnInit()に入れ忘れたのですみません。
 
Alexey Viktorov:
OnInit()に入れ忘れたのですみません。

ここでは「返信」キューがあることがわかりました ;)

時間がなくて...。

 
Alexey Viktorov. Artyom Trishkin
すみません、OnInit()に書くのを忘れてました。

それは理解できる。Senc.もしかしたら、ヒントをくれるかもしれない...。

端末ナビからティック指標にMAを適用したものです。EAでその値を取得するにはどうしたらいいですか?

どこをどう読めばいいのか、つっこんでいただければ。

確か...iMAOnArrayを通して


 
Roman Shiredchenko:

それは理解できる。Senc.他にも何かヒントがあるかもしれません...。

端末のナビゲーターからティックインジケーターにMAが適用されます。Expert Advisorでその値を取得する方法は?

どこをどう読んでもポカーンとしてしまうかもしれません。

確か...iMAOnArrayを通して


iMAOnArrayはtickインジケータに入力され、追加バッファに出力される必要があります。

あるいは、新しいインジケータで、まず、ティックインジケータバッファの内容を計算バッファに読み込んで、そこにiMAOnArrayを配置することです。

 
Artyom Trishkin:

1. iMAOnArrayをtickインジケータに書き込んで、その中の追加バッファに出力すること。

あるいは、新しいインジケータでは、まず、ティックインジケータバッファの内容を計算バッファに読み込んでから、iMAOnArrayを適用してください。

ありがとうございます。アルチョムだから1.
 

Bid(緑 - MAラインのため見えない)のMA(カラーゴールド)期間1の値と、Bid価格インジケータバッファからiMAonArray()で計算した同じMA(1)の値を(チャート上で)等しくすることができません。

      double MA_0=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,0); 
      double MA_1=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,1); 
      double MA_2=iMAOnArray(ExtMapBuffer1,0,MA_Period,0,MODE_EMA,2); 
   
       


     if (time_s!=0) 
       Comment(
              "tickCounter = ", tickCounter, "\n",
              "secondCounter, time_s  = ",    NormalizeDouble(time_s,2) ,   "\n",
            
           ...
              "ExtMapBuffer_MA[0] = ", DoubleToStr(MA_0,Digits),"\n",
              "ExtMapBuffer_MA[1] = ", DoubleToStr(MA_1,Digits),"\n",
              "ExtMapBuffer_MA[2] = ", DoubleToStr(MA_2,Digits),"\n",

緑の矢印 - 同じ値 - あるべき姿。赤矢印-異なる値。緑色のものと同じであること。


上の3つの矢印にはONEの数字があるはずなのに、違う数字になっている...。矛盾の理由を教えてください...


理由: