初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1023 1...101610171018101910201021102210231024102510261027102810291030...1504 新しいコメント Yury Smagin 2019.04.04 08:35 #10221 iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか? そうすれば int OnInit() {handle.MA_CHART=iMA(_Symbol,_Period,period_MA_CHART,0,Signal_MA_Method,Signal_MA_Applied);} void OnTick() {CopyBuffer(handle.MA_CHART, 0, 0, 3, ind_date.MA_CHART);} 呼び出すとき ind_date.MA_CHART[0] 現在のバーではなく、前のバーのデータが表示されるのですが。 Vladimir Karputov 2019.04.04 08:43 #10222 Yury Smagin:iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか? そうすれば 呼び出すとき 現在のバーではなく、前のバーのデータが表示されるのですが。アレイが必要 ArraySetAsSeries(ind_date.MA_CHART,true); で、配列のインデックス "0 "の要素が、チャートのRIGHTバーに対応することになります。 Yury Smagin 2019.04.04 09:03 #10223 Vladimir Karputov:配列は必ず で、インデックス "0 "の配列の要素が、グラフの一番右の棒に対応します。 ありがとうございました。 Alexey Viktorov 2019.04.04 11:05 #10224 Yury Smagin:iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか? そうすれば 呼び出すとき 現在のバーではなく、前のバーのデータが表示されるのですが。あの映画のように、「ちょっと疑問があるんだけど...」と。私のExpert Advisorを勉強に使っていないのですか? 配列を反転させる必要はありません。配列の2番目のインデックスの値をとればよいのです。 ind_date.MA_CHART[2] User_mt5 2019.04.04 13:08 #10225 OBJPROP_BACK 両方の方法を試した。うまくいかないんです。その仕組みがまったく理解できない。 値に関係なく、オブジェクトは単純に形成された順に表示され、最後に形成されたものが上位となる。 また、オブジェクトが2つ以上ある場合、どのようにレベル(レイヤー)を調整すればよいのでしょうか。もしかしたら、他の設定があるのかもしれませんね。知っている人は教えてください。 Yury Smagin 2019.04.05 08:53 #10226 Alexey Viktorov:あの映画のように、"I have doubts... "と。勉強に使っているのは、私の顧問の先生ではないですか。 配列を反転させる必要はありません。配列の2番目のインデックスの値を取るだけです。 ありがとうございました。 kopeyka2 2019.04.05 12:43 #10227 ごきげんよう)) なぜ結果に差が出るのか、教えていただけませんか? //+------------------------------------------------------------------+ //| exponential moving average multytimeframes ДЛЯ БУФЕРА | //+------------------------------------------------------------------+ void CalculateExponentialMA(int rates_total,int prev_calculated,int begin,const double &price[]) { int i,limit; double SmoothFactor=2.0/(1.0+period_ma); //--- first calculation or number of bars was changed if(prev_calculated==0) { limit=period_ma+begin; ExtLineBuffer[begin]=price[begin]; for(i=begin+1;i<limit;i++) ExtLineBuffer[i]=price[i]*SmoothFactor+ExtLineBuffer[i-1]*(1.0-SmoothFactor); } else limit=prev_calculated-1; //--- main loop for(i=limit;i<rates_total && !IsStopped();i++) ExtLineBuffer[i]=price[i]*SmoothFactor+ExtLineBuffer[i-1]*(1.0-SmoothFactor); //--- } //+------------------------------------------------------------------+ //| exponential moving average ДЛЯ ТОЧКИ | //+------------------------------------------------------------------+ void CalculateEMA(int periodMA,int bgn) { int i,lmt=periodMA+bgn+1; double SmoothFactor=2.0/(1.0+periodMA); for(i=0;i<lmt;i++) BufferPrice[i]=0.0; switch(AppliedPrice) { case 1: BufferPrice[lmt]=iClose(NULL,Timeframes,lmt); break; case 2: BufferPrice[lmt]=iOpen(NULL,Timeframes,lmt); break; case 3: BufferPrice[lmt]=iHigh(NULL,Timeframes,lmt); break; case 4: BufferPrice[lmt]=iLow(NULL,Timeframes,lmt); break; default : BufferPrice[lmt]=iClose(NULL,Timeframes,lmt); break; } for(i=lmt-1;i>=0;i--) switch(AppliedPrice) { case 1: BufferPrice[i]=iClose(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 2: BufferPrice[i]=iOpen(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 3: BufferPrice[i]=iHigh(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; case 4: BufferPrice[i]=iLow(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; default : BufferPrice[i]=iClose(NULL,Timeframes,i)*SmoothFactor+BufferPrice[i+1]*(1.0-SmoothFactor); break; } MA=NormalizeDouble(BufferPrice[bgn],_Digits); } //+------------------------------------------------------------------+ QUESTION: MA計算の第2版では、何を書き間違えたのでしょうか? ありがとうございました))) Aleksey Vyazmikin 2019.04.06 15:39 #10228 最適化の際、グラフから読み取れるようなグラフオブジェクトを構築しているか? Artyom Trishkin 2019.04.06 15:53 #10229 Aleksey Vyazmikin:最適化の際、グラフから読み取れるようなグラフオブジェクトを構築しているか?いいえ Aleksey Vyazmikin 2019.04.06 15:54 #10230 Artyom Trishkin:いいえ悪いことに... 1...101610171018101910201021102210231024102510261027102810291030...1504 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか?
そうすれば
呼び出すとき
ind_date.MA_CHART[0]
現在のバーではなく、前のバーのデータが表示されるのですが。
iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか?
そうすれば
呼び出すとき
現在のバーではなく、前のバーのデータが表示されるのですが。
アレイが必要
で、配列のインデックス "0 "の要素が、チャートのRIGHTバーに対応することになります。
配列は必ず
で、インデックス "0 "の配列の要素が、グラフの一番右の棒に対応します。
iMAインジケータのデータを「ゼロバー」で取得する、つまり現在のバーでのインジケータ値を取得するにはどうすればよいですか?
そうすれば
呼び出すとき
現在のバーではなく、前のバーのデータが表示されるのですが。
あの映画のように、「ちょっと疑問があるんだけど...」と。私のExpert Advisorを勉強に使っていないのですか?
配列を反転させる必要はありません。配列の2番目のインデックスの値をとればよいのです。
ind_date.MA_CHART[2]
OBJPROP_BACK
両方の方法を試した。うまくいかないんです。その仕組みがまったく理解できない。
値に関係なく、オブジェクトは単純に形成された順に表示され、最後に形成されたものが上位となる。
また、オブジェクトが2つ以上ある場合、どのようにレベル(レイヤー)を調整すればよいのでしょうか。もしかしたら、他の設定があるのかもしれませんね。知っている人は教えてください。
あの映画のように、"I have doubts... "と。勉強に使っているのは、私の顧問の先生ではないですか。
配列を反転させる必要はありません。配列の2番目のインデックスの値を取るだけです。
ありがとうございました。
ごきげんよう))
なぜ結果に差が出るのか、教えていただけませんか?
QUESTION: MA計算の第2版では、何を書き間違えたのでしょうか?
ありがとうございました)))
最適化の際、グラフから読み取れるようなグラフオブジェクトを構築しているか?
いいえ
いいえ
悪いことに...