エラー、バグ、質問 - ページ 2574 1...256725682569257025712572257325742575257625772578257925802581...3185 新しいコメント Alexey Viktorov 2019.09.23 08:43 #25731 Aleksei Beliakov: これらの関数の結果をontickで表示すると、時間1970.01.01、価格0になります。 昔はバータイムやプライスタイムだったんですけどね。 だから今はこうなっているんです。 もしかして、パソコンにバグがあるのでは?ビルド1220でこのコードが出てきました。 Print("iHigh ", iHigh(NULL, PERIOD_W1, 0)); Print("iTime ", iTime(NULL, PERIOD_W1, 0)); 印刷物 2019.09.23 09:41:27.560 00 EURUSD,M5: iTime 2019.09.22 00:00:00 2019.09.23 09:41:27.560 00 EURUSD,M5: iHigh 1.10245 Slava 2019.09.23 08:47 #25732 Aleksei Beliakov: これらの関数の結果をontickで表示すると、時間1970.01.01、価格0の場合です。 昔はバータイムやプライスタイムだったんですけどね。 だから今はこうなっている。 エラーコードは 何ですか? テストパラメータは何ですか? 週別、月別のデータは読み込まれていますか?全部で何台あるのですか? Aleksei Beliakov 2019.09.23 11:22 #25733 Slava: エラーコードは 何ですか? テストパラメータは何ですか? 週別、月別のデータはアップロードされていますか?全部で何台あるのですか? 再確認したところ、すべて正常に動作するようになりました。 ストーリーをダウンロードしました。 ありがとうございます。 Good Beer 2019.09.23 17:09 #25734 このトピックはすでに提起されていると思いますが、1つのデスクトップに2つの異なるバージョンのMT5を共存させることが可能であるべきです(自動更新とロールバックを無効にする)。せめてベータ版とリリースだけでも。あるいは(仮想化せずに)可能である。 Mopo3 2019.09.23 19:37 #25735 メモリの観察。 私のコードでは、CopyRatesが1000回ほど実行されています。 そして、引用符の配列が何らかの形で処理され、その最後に私が呼び出す。 ArrayRemove(ArrayQuotes,0,ArraySize)。 ArrayFree(ArrayQuotes)です。 ArrayResize(ArrayQuotes,0)。 ArrayFree(ArrayQuotes)です。 ZeroMemory(ArrayQuotes)です。 (ただ、実験が違う) 結果 - メモリは幾何級数的に増加し、プロセッサの負荷とともに詰まり、i7プロセッサはすべての論理コアの合計で80%詰まり、メモリはギガ以上になっています。 今のところ、CPUは15%以下、メモリはGiga以下というように、サードパーティーのプログラムでリソースの消費を制限することが出来ています。 質問 - これはバグなのでしょうか、それともプラットフォームの機能なのでしょうか? 削除済み 2019.09.24 12:53 #25736 ソースのエンコードを厳格に選択することは可能か?文字がasciiだけのときはシングルバイト、それ以外はutf-16というのは知っています。utf-8は可能ですか? 削除済み 2019.09.24 16:25 #25737 ところで、メタエディタの挙動がおかしいので、修正する必要があります。 fn_call();///////////////////// スラッシュをダブルクリックすると、前の文字でスラッシュがハイライトされます(そこに数字/文字がない場合)。 なぜ不便なのか?コードに一時的な編集を加え、スペースをこの方法でハイライトし、その後、シングルスラッシュを素早くハイライトして削除する必要があります。 Roman 2019.09.25 19:11 #25738 まだ、DLLから文字列を渡す際の問題に戻りますが、ポインタとして wchar_t*を使用します。 RenatのDLLで文字列を扱う記事から、mqlのstring 型は外部DLLから文字列wchar_t*へのポインタを取ることが明らかである。 つまり、dllにwchar_t*を送り、mqlでstring &として 受信する。 しかし、C関数 wcscpy_s(wchar_t *dest, rsize_t dest_size, const wchar_t *src); が正しく動作しない、すなわち、文字列wchar_t* dest へのポインタを mql で受信するが、失敗して出たり入ったりしている。 端末がクラッシュしてプログラムが終了してしまうことがある。 機能で wcscpy(wchar_t *dest, const wchar_t *src); ターミナルはクラッシュしませんが、文字列も断続的に届きます。 次回のビルドで修正してください。 ZS.wchar_t* ポインタが他のスレッドから渡されることを指定するのを忘れていました。 すなわち、wcscpy_s または wcscpy 関数は別スレッドで呼び出されます。 Vladimir Simakov 2019.09.25 20:30 #25739 Roman: まだ、DLLから文字列を渡す問題に戻って、ポインタとして wichar_t*を使用します。 RenatのDLLで文字列を扱う記事から、mqlのstring 型は外部DLLから文字列wichar_t*へのポインタを取ることが明らかである。 つまり、wichar_t* を dll に送り、それを mql で文字列 & として受信する。 しかし、C関数 が正しく動作しない。すなわち、文字列wichar_t* dest へのポインタを mql で受け取るが、失敗して出たり入ったりしている。 端末がクラッシュしてプログラムが終了してしまうことがある。 機能で ターミナルはクラッシュしませんが、文字列も断続的に届きます。 次回のビルドで修正してください。 ZS.書き忘れましたが、wichar_t* のポインタは別のスレッドから渡されます。 すなわち、wcscpy_s または wcscpy 関数は別スレッドで呼び出されます。 また、文字列dest用のメモリは誰が確保するのでしょうか? Roman 2019.09.25 20:40 #25740 Vladimir Simakov: また、文字列dest用のメモリは誰が確保するのでしょうか? として、mqlのコード内でメモリが確保されます。 #import "Dll.dll" void Func(string task, string & out); #import string оut; StringInit(out, 165, 32); mqlの文字列はDLLではwchar_t*であるため,割り当てられたメモリへの ポインタとして渡されます。 Func("Task", out); 1...256725682569257025712572257325742575257625772578257925802581...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これらの関数の結果をontickで表示すると、時間1970.01.01、価格0になります。
もしかして、パソコンにバグがあるのでは?ビルド1220でこのコードが出てきました。
印刷物
これらの関数の結果をontickで表示すると、時間1970.01.01、価格0の場合です。
エラーコードは 何ですか?
テストパラメータは何ですか?
週別、月別のデータは読み込まれていますか?全部で何台あるのですか?
エラーコードは 何ですか?
テストパラメータは何ですか?
週別、月別のデータはアップロードされていますか?全部で何台あるのですか?
再確認したところ、すべて正常に動作するようになりました。
ストーリーをダウンロードしました。
ありがとうございます。
メモリの観察。
私のコードでは、CopyRatesが1000回ほど実行されています。
そして、引用符の配列が何らかの形で処理され、その最後に私が呼び出す。
ArrayRemove(ArrayQuotes,0,ArraySize)。
ArrayFree(ArrayQuotes)です。
ArrayResize(ArrayQuotes,0)。
ArrayFree(ArrayQuotes)です。
ZeroMemory(ArrayQuotes)です。
(ただ、実験が違う)
結果 - メモリは幾何級数的に増加し、プロセッサの負荷とともに詰まり、i7プロセッサはすべての論理コアの合計で80%詰まり、メモリはギガ以上になっています。
今のところ、CPUは15%以下、メモリはGiga以下というように、サードパーティーのプログラムでリソースの消費を制限することが出来ています。
質問 - これはバグなのでしょうか、それともプラットフォームの機能なのでしょうか?
ところで、メタエディタの挙動がおかしいので、修正する必要があります。
fn_call();/////////////////////スラッシュをダブルクリックすると、前の文字でスラッシュがハイライトされます(そこに数字/文字がない場合)。
なぜ不便なのか?コードに一時的な編集を加え、スペースをこの方法でハイライトし、その後、シングルスラッシュを素早くハイライトして削除する必要があります。
まだ、DLLから文字列を渡す際の問題に戻りますが、ポインタとして wchar_t*を使用します。
RenatのDLLで文字列を扱う記事から、mqlのstring 型は外部DLLから文字列wchar_t*へのポインタを取ることが明らかである。
つまり、dllにwchar_t*を送り、mqlでstring &として 受信する。
しかし、C関数
が正しく動作しない、すなわち、文字列wchar_t* dest へのポインタを mql で受信するが、失敗して出たり入ったりしている。
端末がクラッシュしてプログラムが終了してしまうことがある。
機能で
ターミナルはクラッシュしませんが、文字列も断続的に届きます。
次回のビルドで修正してください。
ZS.wchar_t* ポインタが他のスレッドから渡されることを指定するのを忘れていました。
すなわち、wcscpy_s または wcscpy 関数は別スレッドで呼び出されます。
まだ、DLLから文字列を渡す問題に戻って、ポインタとして wichar_t*を使用します。
RenatのDLLで文字列を扱う記事から、mqlのstring 型は外部DLLから文字列wichar_t*へのポインタを取ることが明らかである。
つまり、wichar_t* を dll に送り、それを mql で文字列 & として受信する。
しかし、C関数
が正しく動作しない。すなわち、文字列wichar_t* dest へのポインタを mql で受け取るが、失敗して出たり入ったりしている。
端末がクラッシュしてプログラムが終了してしまうことがある。
機能で
ターミナルはクラッシュしませんが、文字列も断続的に届きます。
次回のビルドで修正してください。
ZS.書き忘れましたが、wichar_t* のポインタは別のスレッドから渡されます。
すなわち、wcscpy_s または wcscpy 関数は別スレッドで呼び出されます。
また、文字列dest用のメモリは誰が確保するのでしょうか?
として、mqlのコード内でメモリが確保されます。
mqlの文字列はDLLではwchar_t*であるため,割り当てられたメモリへの ポインタとして渡されます。
Func("Task", out);