エラー、バグ、質問 - ページ 1390 1...138313841385138613871388138913901391139213931394139513961397...3185 新しいコメント Renat Fatkhullin 2015.10.09 20:02 #13891 インジケータを完全に作成 するために、インジケータinitで待機しないでください。インジケータと リターン制御を作成 し、すべての環境と履歴は後で準備され、あなたの再計算コードが呼び出されることになります。 Ilya Malev 2015.10.09 20:04 #13892 Renat Fatkhullin:インジケータが完全に作成 されるのをinitiaで待たないでください。インジケータとリターン制御を作成し、すべての環境と履歴は後で準備され、あなたの再計算コードが呼び出されることになります。 つまり、4806のチェックは、OnInit()から戻った後、すでにデータを受信している場合は、その都度行わなければならないのでしょうか? Renat Fatkhullin 2015.10.09 20:54 #13893 各データ読み取りポイントにて Ilya Malev 2015.10.11 10:38 #13894 ここでインジケーターが呼ばれ、OnCalculate 内でその値が計算されます。再計算は行われず、無期限で待つことができます。ピリオドチャートD1上で動作させる場合int i_ich=INVALID_HANDLE; double ind_buf[]; int OnInit(){ i_ich=iIchimoku(Symbol(), PERIOD_H4, 9, 26, 52); if(i_ich==INVALID_HANDLE){ Print("Невозможно создать индиктор Ишимоку!"); return(INIT_FAILED); } SetIndexBuffer(0, ind_buf, INDICATOR_DATA); ArraySetAsSeries(ind_buf, true); return(INIT_SUCCEEDED); } 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[]){ double temp[]; int copied=CopyBuffer(i_ich,0,0,1,temp); if(copied<=0){ datetime now=TimeLocal(); while(BarsCalculated(i_ich)<=0 && !IsStopped()){ Comment("Ждем пересчета индикатора Ишимоку... ",int(TimeLocal()-now)); } if(BarsCalculated(i_ich)>0){ Print("Расчитано ", BarsCalculated(i_ich), " баров за ",int(TimeLocal()-now)," секунд"); } Comment(""); } return(rates_total); }石墨の読みが計算されない理由を教えてください。 Vladimir Karputov 2015.10.11 11:02 #13895 Ilya Malev:ここでインジケーターが呼ばれ、OnCalculate内でその値が計算されます。再計算は行われず、無期限で待つことができます。ピリオドチャートD1上で動作させる場合 石墨の読みが計算されない理由を教えてください。これはどうでしょう。//+------------------------------------------------------------------+ //| ProjectName | //| Copyright 2012, CompanyName | //| http://www.companyname.net | //+------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 0 int i_ich=INVALID_HANDLE; double ind_buf[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int OnInit() { i_ich=iIchimoku(Symbol(),PERIOD_H4,9,26,52); if(i_ich==INVALID_HANDLE) { Print("Невозможно создать индиктор Ишимоку!"); return(INIT_FAILED); } SetIndexBuffer(0,ind_buf,INDICATOR_DATA); ArraySetAsSeries(ind_buf,true); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ 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[]) { static int count; Print(count); double temp[]; datetime now=TimeLocal(); int copied=CopyBuffer(i_ich,0,0,1,temp); if(copied>0) Print("Расчитано ",BarsCalculated(i_ich)," баров за ",int(TimeLocal()-now)," секунд"); count++; return(rates_total); } //+------------------------------------------------------------------+ ? Renat Fatkhullin 2015.10.11 11:07 #13896 インジケータコードで期待値をループさせてはいけません。スクリプトやExpert Advisorでは可能ですが、インジケータでは絶対に不可能です。指標の計算と外国データの要求のための戦略は、次のようにする必要があります:データ要求が成功しなかった場合、我々はすぐに終了し、次のティックのために計算を延期する。次回のティック/コールでは、必要なデータを再度要求するようにします。 Ilya Malev 2015.10.11 11:09 #13897 Karputov Vladimir:そして、もしそうなら。 ? 0 "を出力(日曜日なのでOnCalculateの 再開はない) Ilya Malev 2015.10.11 11:10 #13898 Renat Fatkhullin:インジケータコードで期待値をループさせてはいけません。スクリプトやExpert Advisorでは可能ですが、インジケータでは絶対に不可能です。指標における計算と外部データの要求の戦略は次のようにする。データ要求が失敗した場合、すぐに終了し、次のティックのために計算を延期する。次回のティック/コールでは、必要なデータを再度要求するようにします。 しかし、次のティックを待たずに、1回の実行でインジケータの読み取りを 計算する必要がある場合はどうすればよいですか?例えば、週末やちょうど流動性の低い時期があった場合、1分刻みで出ている時?OnCalculateの代わりにOnTimerを使用する? Vladimir Karputov 2015.10.11 11:10 #13899 Ilya Malev: 0 "を出力(日曜日なのでOnCalculateの再実行 なし) テスターで、テスターで!そして週末には、グラフ上で右クリックして「更新」する必要があります。 Ilya Malev 2015.10.11 11:18 #13900 更新]を押すと、すべてが計算されます。イニテで作成したインジケータデータは、OnCalculate/OnTimerなどの 最初の呼び出しの 前に計算されると便利だと思います。インジケータ内のループで初期化した後、計算を待つことができると便利です。インジケータを計算するためには、チャート上で「更新」を数回押す必要があります。必要なのか。MT5の利点があるにもかかわらず、彼は古き良きMT4を覚えていて、それを使い続けるでしょう。 1...138313841385138613871388138913901391139213931394139513961397...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
インジケータを完全に作成 するために、インジケータinitで待機しないでください。
インジケータと リターン制御を作成 し、すべての環境と履歴は後で準備され、あなたの再計算コードが呼び出されることになります。
インジケータが完全に作成 されるのをinitiaで待たないでください。
インジケータとリターン制御を作成し、すべての環境と履歴は後で準備され、あなたの再計算コードが呼び出されることになります。
ここでインジケーターが呼ばれ、OnCalculate 内でその値が計算されます。再計算は行われず、無期限で待つことができます。ピリオドチャートD1上で動作させる場合
石墨の読みが計算されない理由を教えてください。
ここでインジケーターが呼ばれ、OnCalculate内でその値が計算されます。再計算は行われず、無期限で待つことができます。ピリオドチャートD1上で動作させる場合
石墨の読みが計算されない理由を教えてください。
これはどうでしょう。
?インジケータコードで期待値をループさせてはいけません。スクリプトやExpert Advisorでは可能ですが、インジケータでは絶対に不可能です。
指標の計算と外国データの要求のための戦略は、次のようにする必要があります:データ要求が成功しなかった場合、我々はすぐに終了し、次のティックのために計算を延期する。次回のティック/コールでは、必要なデータを再度要求するようにします。
そして、もしそうなら。
?インジケータコードで期待値をループさせてはいけません。スクリプトやExpert Advisorでは可能ですが、インジケータでは絶対に不可能です。
指標における計算と外部データの要求の戦略は次のようにする。データ要求が失敗した場合、すぐに終了し、次のティックのために計算を延期する。次回のティック/コールでは、必要なデータを再度要求するようにします。
0 "を出力(日曜日なのでOnCalculateの再実行 なし)
更新]を押すと、すべてが計算されます。イニテで作成したインジケータデータは、OnCalculate/OnTimerなどの 最初の呼び出しの 前に計算されると便利だと思います。
インジケータ内のループで初期化した後、計算を待つことができると便利です。
インジケータを計算するためには、チャート上で「更新」を数回押す必要があります。必要なのか。MT5の利点があるにもかかわらず、彼は古き良きMT4を覚えていて、それを使い続けるでしょう。