エラー、バグ、質問 - ページ 1030 1...102310241025102610271028102910301031103210331034103510361037...3185 新しいコメント Vladimir Gomonov 2013.08.03 18:18 #10291 Al_key:あと、コンポジットライブラリを使ってバーシフトが出るようになりました。メタトレーダーに内蔵されているツールはないのですか? MT4のiBarShift() は、おそらくコンパイラ・ライブラリと同じように動作しますが、ビルトインにしたほうが高速に動作します(C++なので)。 Andrew Petras 2013.08.04 06:52 #10292 MetaDriver:あなたのケースは、小さなスリップで処理されます。 私のはもっとひどいです(ちなみにSlipのないケースは以前は使えていたのですが、数週間前にやめました)。同じスキームが他の(現在ではない)チャートでクリープスリップ なしに動作しなくなった。 コードはこちらからhttps://www.mql5.com/ru/code/224インストールされたフクロウ、参照。現在のものでは、標準を投げています。チャート上のAMA、ポークの再計算(0から2350までのSleep時) - 私はM1にドロップし、戻ってくることはありません。数秒後AMAが表示される、それだけです。フラグを使うようにしています(currentとm1の2つのフラグを格納したい場合? すでにcurrentの方(フラグ)を使っていて、今m1(フラグ2)を使っている場合、...)です。が、どうでしょう。月曜日のティックは今のものに戻る前に来るだろう :)update はい、チャート上に100個のオブジェクトがあり、さらにAMA、つまり、とても重いのです。 Al_key 2013.08.04 07:57 #10293 MetaDriver:"そうしなければならない" フェディアそうしなければならないのです。(c)シュリク--このようなエラーは、例えばダイナミックバッファ用のメモリが確保されていない場合(この場合はActualBufferの 下)に発生します。 このコード断片では明確ではありません。これです。また、ダイナミックバッファのメモリ確保はどのように行うのですか?それが分かれば、疑問は消えるのでしょうね。以下は、すべてのコードです。#include <TimeSeries.mqh> #property indicator_separate_window #property indicator_buffers 3 #property indicator_plots 3 //--- plot Actual #property indicator_label1 "Actual" #property indicator_type1 DRAW_LINE #property indicator_color1 clrLime #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Consensus #property indicator_label2 "Consensus" #property indicator_type2 DRAW_LINE #property indicator_color2 clrPeachPuff #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //--- plot Previous #property indicator_label3 "Previous" #property indicator_type3 DRAW_LINE #property indicator_color3 clrLightCyan #property indicator_style3 STYLE_SOLID #property indicator_width3 1 //--- indicator buffers double ActualBuffer[]; double ConsensusBuffer[]; double PreviousBuffer[]; //--- indicator vars string sDatetime; string sActual; string sConsensus; string sPrevious; int file_handle; int barshift; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,ActualBuffer,INDICATOR_DATA); SetIndexBuffer(1,ConsensusBuffer,INDICATOR_DATA); SetIndexBuffer(2,PreviousBuffer,INDICATOR_DATA); file_handle = FileOpen("CSV - макроэкономика и госкорпстат/Existing Home Sales Change.csv",FILE_READ|FILE_CSV|FILE_ANSI,','); while(!FileIsEnding(file_handle)) { sDatetime = FileReadString(file_handle); sActual = FileReadString(file_handle); sConsensus = FileReadString(file_handle); sPrevious = FileReadString(file_handle); barshift = iBarShift(Symbol(), Period(), datetime(formatdatetime(sDatetime)), false); if(StringToDouble(formatstring(sActual)) > 0 && StringToDouble(formatstring(sActual)) < 10000) ActualBuffer[barshift] = StringToDouble(formatstring(sActual)); Print(formatdatetime(sDatetime)); Print("iBarShift = ", barshift, " Datetime = ", formatstring(sDatetime), " sActual = ", sActual, " sConsensus = ", sConsensus, " sPrevious = ", sPrevious); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| 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[]) { //--- //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+ //--- Функции форматирования string formatstring(string strparam) { string result = StringSubstr(strparam,1, StringLen(strparam) - 2); return(result); } string formatdatetime(string strparam) { string result = StringSubstr(strparam, 1, 4) + "." + StringSubstr(strparam, 5, 2) + "." + StringSubstr(strparam, 7, 11); return(result); } Al_key 2013.08.04 08:04 #10294 Al_key:これです。ダイナミックバッファのメモリ確保はどのように行うのですか?それが分かれば、疑問は消えるのでしょう。以下は、すべてのコードです。Ps.そこでArray Resizeについて読んだのですが...以下はコピーです。"リンク後の動的配列 buffer[] は、リンク先の配列があらかじめ時 系列のインデックスを持つように設定されていたとしても、通常の配列と同様にインデックスを持つ ようになります。インジケータ配列の要素へのアクセス順序を変更したい場合は、SetIndexBuffer()関数で配列をバインドした後にArraySetAsSeries() 関数を適用する必要があります。SetIndexBuffer()関数で指標バッファとして割り当てられた動的配列は、サイズを変更してはならないことに留意する必要があります。 インジケータ・バッファの場合、すべてのリサイズ操作は端末の実行サブシステムによって行われる。"混乱しています。 Al_key 2013.08.04 08:07 #10295 Silent: 設定したプロファイルをデフォルトに保存する File - Profiles - Default Kind of default, still no data to load.数時間後に初めてすべてが終わった。 Andrew Petras 2013.08.04 08:42 #10296 Al_key:これです。ダイナミックバッファのメモリ確保はどのように行うのですか?それが分かれば、疑問は消えるのでしょう。以下はコードの全体像です。INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)はターミナルで監視されています(私の理解ではrates_totalによって)。中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。PS 私は #include <TimeSeries.mqh> can "t なぜか開く、コンパイルされません。アップマンデーは待ってください、何か変です。 Al_key 2013.08.04 10:55 #10297 Silent:INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)を端末で監視しています(rates_totalによるものと理解しています)。中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。追記 #include <TimeSeries.mqh>がなぜか開けず、コンパイルできません。アップマンデーは待ってください、何か変です。 すでに変更しようとしましたが、まだ同じエラーです。せめて普通の配列に値を入れてみる、何かうまくいくかもしれない。 Andrew Petras 2013.08.04 12:45 #10298 Al_key: 変更してみましたが、やはり同じエラーが発生しました。せめて普通の配列に値を入れてみる、何かうまくいくかもしれない。ここでは、簡単なものを紹介します。INDICATOR_DATAでは、INDICATOR_CALCULATIONSから書き込みます。#property indicator_separate_window #property indicator_buffers 2 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Label1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrOrangeRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- input parameters input string s="EURUSD"; input ENUM_TIMEFRAMES tf; // D1 input int countBars=100; // count //--- put parameters int copied,i; //--- indicator buffers double Label1Buffer[]; //--- buffers double p_Symbol[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA); SetIndexBuffer(1,p_Symbol,INDICATOR_CALCULATIONS); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- if(prev_calculated==0) { ArrayInitialize(Label1Buffer,EMPTY_VALUE); ArrayInitialize(p_Symbol,EMPTY_VALUE); ArraySetAsSeries(Label1Buffer,true); ArraySetAsSeries(p_Symbol,true); ArraySetAsSeries(price,true); }; ArrayCopy(p_Symbol,price,0,0,countBars); if(_LastError!=0) {Print(_LastError); return(prev_calculated);}; if(_LastError==0) { for(i=countBars;i>0;i--) { Label1Buffer[i]=p_Symbol[i]; Print("limitBars i = "+IntegerToString(i)); }; }; //--- return value of prev_calculated for next call return(rates_total); } Vladimir Gomonov 2013.08.04 14:16 #10299 Silent:INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)を端末で監視しています(rates_totalによるものと理解しています)。中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。PS 私は #include <TimeSeries.mqh> can "t なぜか開く、コンパイルされません。アップマンデーは待ってください、何かがおかしいのです。こちらもどうぞ : https://www.mql5.com/ru/code/1008見つけたばかりで、だからまだコードを実感していない。 そして、まだ動かないだろう--ここの一般人が私を買い物に駆り立てている。私は問題のコードがOnInit()からOnCalculate()に移動される場合、すべてが動作すると思います。 長い間、私は5つの特徴を知っていました - OnInitの任意のコードは正常に動作しません。 それはおそらく、SetIndexBuffer()を通じて 登録したバッファの本当の自動配布は、OnInit()から終了後にのみ終了すると保証されており、バックグラウンド(それは自動ですよね)で起こるはずだから です。 TimeSeries - Библиотека функций для работы с таймсериями 投票: 122012.08.24Andrey Khatimlianskiiwww.mql5.com Библиотека функций для работы с таймсериями: iBars, iTime, iOpen, iHigh, iLow, iClose, iVolume, iHighest, iLowest, iBarshift. Для всех функций доступен краткий вариант вызова (с символом и периодом текущего графика). Dmitriy Parfenovich 2013.08.04 15:50 #10300 クラウドからタスクを受信する際、8つのエージェントのうち3つしか同時に実行できないことに気づきました。 テストを並行して実行すると、他のエージェントも有効になってしまいますが。これがあるべき姿なのか? 1...102310241025102610271028102910301031103210331034103510361037...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
あと、コンポジットライブラリを使ってバーシフトが出るようになりました。メタトレーダーに内蔵されているツールはないのですか?
あなたのケースは、小さなスリップで処理されます。
私のはもっとひどいです(ちなみにSlipのないケースは以前は使えていたのですが、数週間前にやめました)。
同じスキームが他の(現在ではない)チャートでクリープスリップ なしに動作しなくなった。
コードはこちらからhttps://www.mql5.com/ru/code/224インストールされたフクロウ、参照。
現在のものでは、標準を投げています。チャート上のAMA、ポークの再計算(0から2350までのSleep時) - 私はM1にドロップし、戻ってくることはありません。数秒後AMAが表示される、それだけです。
フラグを使うようにしています(currentとm1の2つのフラグを格納したい場合? すでにcurrentの方(フラグ)を使っていて、今m1(フラグ2)を使っている場合、...)です。
が、どうでしょう。月曜日のティックは今のものに戻る前に来るだろう :)
update はい、チャート上に100個のオブジェクトがあり、さらにAMA、つまり、とても重いのです。
"そうしなければならない" フェディアそうしなければならないのです。
(c)シュリク
--
このようなエラーは、例えばダイナミックバッファ用のメモリが確保されていない場合(この場合はActualBufferの 下)に発生します。 このコード断片では明確ではありません。
これです。
また、ダイナミックバッファのメモリ確保はどのように行うのですか?
それが分かれば、疑問は消えるのでしょうね。
以下は、すべてのコードです。
これです。
ダイナミックバッファのメモリ確保はどのように行うのですか?
それが分かれば、疑問は消えるのでしょう。
以下は、すべてのコードです。
Ps.
そこでArray Resizeについて読んだのですが...以下はコピーです。
"リンク後の動的配列 buffer[] は、リンク先の配列があらかじめ時 系列のインデックスを持つように設定されていたとしても、通常の配列と同様にインデックスを持つ ようになります。インジケータ配列の要素へのアクセス順序を変更したい場合は、SetIndexBuffer()関数で配列をバインドした後にArraySetAsSeries() 関数を適用する必要があります。SetIndexBuffer()関数で指標バッファとして割り当てられた動的配列は、サイズを変更してはならないことに留意する必要があります。 インジケータ・バッファの場合、すべてのリサイズ操作は端末の実行サブシステムによって行われる。"
混乱しています。
設定したプロファイルをデフォルトに保存する File - Profiles - Default
これです。
ダイナミックバッファのメモリ確保はどのように行うのですか?
それが分かれば、疑問は消えるのでしょう。
以下はコードの全体像です。
INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)はターミナルで監視されています(私の理解ではrates_totalによって)。
中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。
PS 私は #include <TimeSeries.mqh> can "t なぜか開く、コンパイルされません。
アップマンデーは待ってください、何か変です。
INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)を端末で監視しています(rates_totalによるものと理解しています)。
中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。
追記 #include <TimeSeries.mqh>がなぜか開けず、コンパイルできません。
アップマンデーは待ってください、何か変です。
変更してみましたが、やはり同じエラーが発生しました。せめて普通の配列に値を入れてみる、何かうまくいくかもしれない。
ここでは、簡単なものを紹介します。INDICATOR_DATAでは、INDICATOR_CALCULATIONSから書き込みます。
INDICATOR_DATA は描画されるデータ である。このバッファ(サイズ)を端末で監視しています(rates_totalによるものと理解しています)。
中間計算(INDICATOR_CALCULATIONS)用のバッファを追加します。それらのために、サイズを設定します。
PS 私は #include <TimeSeries.mqh> can "t なぜか開く、コンパイルされません。
アップマンデーは待ってください、何かがおかしいのです。
こちらもどうぞ : https://www.mql5.com/ru/code/1008
見つけたばかりで、だからまだコードを実感していない。 そして、まだ動かないだろう--ここの一般人が私を買い物に駆り立てている。
私は問題のコードがOnInit()からOnCalculate()に移動される場合、すべてが動作すると思います。 長い間、私は5つの特徴を知っていました - OnInitの任意のコードは正常に動作しません。 それはおそらく、SetIndexBuffer()を通じて 登録したバッファの本当の自動配布は、OnInit()から終了後にのみ終了すると保証されており、バックグラウンド(それは自動ですよね)で起こるはずだから です。
クラウドからタスクを受信する際、8つのエージェントのうち3つしか同時に実行できないことに気づきました。
テストを並行して実行すると、他のエージェントも有効になってしまいますが。
これがあるべき姿なのか?