初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 991 1...984985986987988989990991992993994995996997998...1503 新しいコメント Artyom Trishkin 2019.01.26 08:20 #9901 kopeyka2:まさにその通りだと思いました。誤解を招く問題は、「パラメータ」という言葉です。そこで、handle --> CopyBufferに関係するすべての変数を調べ始めました。 1)当初からの疑問は、タイムフレームSCREENを切り替えてハンドルデータを保存することでした。MT4でそのまま。 そして実際、そうなっているのです。 常に、そしてすべてのタイムフレームで、同じ値である10を表示します。 ここで何も得られなかったので、私は次に進みました。 2)そして、引用します。"指定されたインジケータの指定されたバッファのデータを指定された量だけバッファ配列に取得 します"。 つまり、手でカウントを 設定することで 、値との間にINTERVALを 持たせる必要があります。 そして、そこにいるのは!しかし!!!!!!!ハンドル期間と一致する場合のみ PERIOD_H1のタイムフレームをモニター画面 上に表示します。 すべての価値をクリアに伝える。しかし、別のタイムフレームに移動すると、画面上にデータがありません。 一切送信されません!!!! そして、私の質問はまさにそれでした。そして、バーの数は、そこになければ、ここではそれほど重要ではありません!!!! 提案されているインジケータMTF_LRMA.mq5を見て みましたが、同じものが あります。 画面上の別のタイムフレームに切り替わり、データは画面のタイムフレームで進みます。携帯機でお願いします。 例えば、iClose(NULL, PERIOD_H1, 5); 全てのタイムフレームで同じ値 - H1 の 10 bar を出力することになります。 これまで全ての例は、 CopyBufferの カウント補正に関するものでした。 しかし、配列は空である。 あなたは間違っています。任意の時間軸のデータを扱うことができる。10時間後くらいに例を挙げる。携帯電話ではできない。 kopeyka2 2019.01.26 08:30 #9902 Artyom Trishkin: あなたは間違っています。任意の時間軸のデータを扱うことができる。10時間くらいで一例をあげます。携帯電話からはできなくなる。OKです。返信ありがとうございました。 自分で訂正。 Напррмер: iClose(NULL, PERIOD_H1, 5); на всех таймфреймах будут давать одно и тоже значение : Закрытие на 5 баре по Н1. こんな感じなのかなと思いました。 MqlParam params[]; //--- create iMA("EURUSD",PERIOD_M15,8,0,MODE_EMA,PRICE_CLOSE); ArrayResize(params,4); //--- set ma_period params[0].type =TYPE_INT; params[0].integer_value=0; //--- set ma_shift params[1].type =TYPE_INT; params[1].integer_value=0; //--- set ma_method params[2].type =TYPE_INT; params[2].integer_value=MODE_EMA; //--- set applied_price params[3].type =TYPE_INT; params[3].integer_value=PRICE_CLOSE; //--- create MA h_MA=IndicatorCreate("EURUSD",PERIOD_M15,IND_MA,4,params); //--- release indicators (first h_MACD) if(h_MA==INVALID_HANDLE) { Print("The iMA (",string(PERIOD_M15),") object was not created: Error ",GetLastError()); return INIT_FAILED; } //--- return(INIT_SUCCEEDED); でも、もし気が変わったら、最初の方法でテクニカル指標(iMA)の値を取得するのを待つことにします。でも、やっぱりわからない。 Aleksey Vyazmikin 2019.01.26 08:48 #9903 kopeyka2:OKです。返信ありがとうございました。 自分で訂正。 こんな感じなのかなと思いました。 でも、もし気が変わったら、最初の方法でテクニカル指標(iMA)の値を取得するのを待つことにします。でも、今ひとつ理解できない...。上記で、インジケータを計算すべきTFによって、TFのバー数が異なるため、コピーするバー数も異なることを示しましたが、今回は、TFのバー数が異なるため、コピーするバー数も異なります。BarsCalculated()で計算されたバーの数を確認し、それを基準にする必要があります。 //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { if(rates_total==prev_calculated) return(rates_total); //--- int i; double diff; //--- check for rates count if(rates_total<=ExtPeriodRSI) return(0); //--- if(TF!=PERIOD_CURRENT) { if(handle==INVALID_HANDLE) { handle=iCustom(Symbol(),TF,ind_name,Variant,RSIPeriod,Levl_Up,Levl_Down,PERIOD_CURRENT); return(0); } else { int bars_calculated=BarsCalculated(handle); //Print("Начнем расчет - " , bars_calculated); if(bars_calculated<=0) return(0); if(Bars(Symbol(),TF)!=bars_calculated) { for(i=rates_total-prev_calculated-1;i>=0;i--) { Delta[i]=0.0; } return(prev_calculated); } } kopeyka2 2019.01.26 08:51 #9904 Aleksey Vyazmikin:上記で、TFによってバーの本数が異なることを示しましたが、したがって、TFによってコピーするバーの本数が異なることを要求し、それをインジケータが計算する必要があります。BarsCalculated()を使ってインジケータが計算したバーの数を確認し、それをベースとして使用する必要があります。 ありがとうございます。試してみます。しかし、先に示したように、この配列は完全に空である。アレイに手書きでsdigしています。全部空っぽなんです。 Artyom Trishkin 2019.01.26 08:59 #9905 kopeyka2: ありがとうございます。試してみます。しかし、先に指摘したように、配列は完全に空である。アレイに手書きでsdigしています。全部空っぽなんです。 他のタイムフレームからのデータ読み込みを待たなければならないことを無視しているのでしょうか?例を挙げたのは私です。表示されている 指標のデータは、上位のタイムフレームからのみ取得されています。現在のタイムフレームより低いか等しいと設定した場合、データは現在のものから取得されます。これらはすべてコードの中にあるのですが、あなたはそれを調べようとはしませんでした。でも、発言しているのはあなたです。 kopeyka2 2019.01.26 09:14 #9906 Artyom Trishkin: 異なる時間軸のデータの読み込みを待たなければならないことを無視しているのでしょうか?例を挙げました。表示されている指標のデータは、上位のタイムフレームからのみ取得されています。現在のタイムフレームより低いか等しいと設定した場合、データは現在のものから取得されます。これらはすべてコードの中にあるのですが、あなたはそれを調べようとはしませんでした。でも、発言しているのはあなたです。 ただ見るだけでなく、あなたのインジケーターをバラバラに分解してみました。データディレイという発想は最初からありました。そしてすぐに、最初の視聴から、あなたのTimerを見ました。その方向で見てみます。 Artyom Trishkin 2019.01.26 09:17 #9907 kopeyka2: 見るだけでなく、あなたのインジケーターをひとつひとつ分解してみました。ここには、最初からデータの遅延についての考え方がありました。そしてすぐに、最初の視聴から、あなたのTimerを見ました。その方向で見てみます。 現在のタイムフレームへのデータ変換と 最後のサイクルがコメントされ、任意のグラフィカルなバッファでは、計算されたバッファのMAshekからデータを渡すと、あなたが見たいものをチャート上で表示されます。 kopeyka2 2019.01.26 09:19 #9908 取り敢えず 他枠 Artyom Trishkin 2019.01.26 09:28 #9909 kopeyka2: 取り敢えず 他枠 データを受信できなかったときのために、わざと戻り値の文字列をコメントアウトしていませんか?なぜ?車輪のネジを外して、モーターはうなる、ハンドルは回る、でも車は進まない、だから故障している、というのでは、ちょっと厳しいですよね。 Aleksey Vyazmikin 2019.01.26 09:29 #9910 kopeyka2: やってみます。試してみます。しかし、先ほど指摘したように、配列はまったく空っぽです。手を使って、配列の読み取りを行いました。全部空っぽなんです。先ほど、printを使ったインジケーターのコードをお渡ししましたが、それをコピーしてみましたか?ログには何も表示されず、エラーや数値も表示されない? 1...984985986987988989990991992993994995996997998...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
まさにその通りだと思いました。誤解を招く問題は、「パラメータ」という言葉です。そこで、handle --> CopyBufferに関係するすべての変数を調べ始めました。
1)当初からの疑問は、タイムフレームSCREENを切り替えてハンドルデータを保存することでした。MT4でそのまま。
そして実際、そうなっているのです。
常に、そしてすべてのタイムフレームで、同じ値である10を表示します。
ここで何も得られなかったので、私は次に進みました。
2)そして、引用します。"指定されたインジケータの指定されたバッファのデータを指定された量だけバッファ配列に取得 します"。
つまり、手でカウントを 設定することで 、値との間にINTERVALを 持たせる必要があります。 そして、そこにいるのは!しかし!!!!!!!ハンドル期間と一致する場合のみ
PERIOD_H1のタイムフレームをモニター画面 上に表示します。 すべての価値をクリアに伝える。しかし、別のタイムフレームに移動すると、画面上にデータがありません。
一切送信されません!!!! そして、私の質問はまさにそれでした。そして、バーの数は、そこになければ、ここではそれほど重要ではありません!!!!
提案されているインジケータMTF_LRMA.mq5を見て みましたが、同じものが あります。 画面上の別のタイムフレームに切り替わり、データは画面のタイムフレームで進みます。携帯機でお願いします。
例えば、iClose(NULL, PERIOD_H1, 5); 全てのタイムフレームで同じ値 - H1 の 10 bar を出力することになります。
これまで全ての例は、 CopyBufferの カウント補正に関するものでした。 しかし、配列は空である。
あなたは間違っています。任意の時間軸のデータを扱うことができる。10時間くらいで一例をあげます。携帯電話からはできなくなる。
OKです。返信ありがとうございました。
自分で訂正。
こんな感じなのかなと思いました。
でも、もし気が変わったら、最初の方法でテクニカル指標(iMA)の値を取得するのを待つことにします。でも、やっぱりわからない。
OKです。返信ありがとうございました。
自分で訂正。
こんな感じなのかなと思いました。
でも、もし気が変わったら、最初の方法でテクニカル指標(iMA)の値を取得するのを待つことにします。でも、今ひとつ理解できない...。
上記で、インジケータを計算すべきTFによって、TFのバー数が異なるため、コピーするバー数も異なることを示しましたが、今回は、TFのバー数が異なるため、コピーするバー数も異なります。BarsCalculated()で計算されたバーの数を確認し、それを基準にする必要があります。
上記で、TFによってバーの本数が異なることを示しましたが、したがって、TFによってコピーするバーの本数が異なることを要求し、それをインジケータが計算する必要があります。BarsCalculated()を使ってインジケータが計算したバーの数を確認し、それをベースとして使用する必要があります。
ありがとうございます。試してみます。しかし、先に指摘したように、配列は完全に空である。アレイに手書きでsdigしています。全部空っぽなんです。
異なる時間軸のデータの読み込みを待たなければならないことを無視しているのでしょうか?例を挙げました。表示されている指標のデータは、上位のタイムフレームからのみ取得されています。現在のタイムフレームより低いか等しいと設定した場合、データは現在のものから取得されます。これらはすべてコードの中にあるのですが、あなたはそれを調べようとはしませんでした。でも、発言しているのはあなたです。
見るだけでなく、あなたのインジケーターをひとつひとつ分解してみました。ここには、最初からデータの遅延についての考え方がありました。そしてすぐに、最初の視聴から、あなたのTimerを見ました。その方向で見てみます。
取り敢えず
他枠
取り敢えず
他枠
やってみます。試してみます。しかし、先ほど指摘したように、配列はまったく空っぽです。手を使って、配列の読み取りを行いました。全部空っぽなんです。
先ほど、printを使ったインジケーターのコードをお渡ししましたが、それをコピーしてみましたか?ログには何も表示されず、エラーや数値も表示されない?