カスタムシンボル。エラー、バグ、質問、提案。 - ページ 26 1...19202122232425262728293031323334 新しいコメント Nikolai Semko 2020.02.18 16:51 #251 Roman: ありがとうございます、これで理由がわかりました。 システムタイマーステップは、やはり15.625の倍数になります 追加されました。 しかし、Wine apiの関数timeBeginPeriod(1)のシステムタイマーの周期を変更しました。 つまり、システムタイマーを1ミリ秒にインクリメントするようにしました。 そして、システムタイマーのステップは1ミリ秒でいいんですよね? コメント内のカウンターがフリーズしたままなのはなぜですか? https://rsdn.org/forum/winapi/4159851.1 Roman 2020.02.18 17:51 #252 また、Wine下のLinuxでは、コメント中のカウンタはEventSetMillisecondTimer(1)でも支障なく動いています。 しかし、プロセッサの負荷は8スレッドで最大40%まで増大する。 一般的には、話題を閉じて、オフトピック )) Nikolai Semko 2020.02.18 18:05 #253 Roman: また、Wine下のLinuxでは、EventSetMillisecondTimer(1); でも、CPU負荷は最大40%まで上昇し、CPUスレッドは8つです。 そういうことなんだ...。 なぜ1秒間に64回なのか? いろんな情報を画面に表示できるようにするためだと思います。周波数はこれで十分です。これ以上頻繁に展示しても意味がないし、お金もかかる。OnChartEvent、OnCalculate、OnTickも同様に1秒間に64回トリガーされるのでしょうかね。- そう思います、はい。 Roman 2020.02.18 18:18 #254 Nikolai Semko:そういうことなんだ...。 なぜ1秒間に64回なのか? いろんな情報を画面に表示できるようにするためだと思います。周波数はこれで十分です。これ以上頻繁に展示しても意味がないし、お金もかかる。 OnChartEvent、OnCalculate、OnTickも1秒間に64回生成されているのでしょうかね。 ここでのポイントは、負荷ではなく、OnTimer()ハンドラの能力にありました。 Windowsはこの能力を制限していますが、Linuxは制限していないことが判明しました。 質問、OnChartEvent、OnCalculate、OnTickも1秒間に64回までしか生成されないのでしょうか? 開発元からの回答を待ったほうがいいかもしれませんね。 Nikolai Semko 2020.02.18 18:45 #255 Roman:質問ですが、OnChartEvent、OnCalculate、OnTickも1秒間に64回までしか発生しないのでしょうか? 開発元からの回答を待ったほうがいいかもしれませんね。 マウスでOnChartEventを確認。 最大で124ヘルツの周波数が出ました。もういいや。なんで128じゃないんだろう。 ファイル: TestOnChartEventFrequency.mq5 5 kb Nikolai Semko 2020.02.18 19:07 #256 Nikolai Semko:マウスでOnChartEventを確認。 最大周波数は124ヘルツです。それ以上はない。なぜ128でないのか不思議です。 アルゴリズムを少し変更しました。コメントで時間を食うことを考慮していない。127Hzになりました。 もう論理的ですね。1Hzの誤差は、すでにプログラム自体で説明できますので、128を少し外れたということです。 そのため、OnChartEventの 最大周波数は128Hzとなります。 ファイル: TestOnChartEventFrequency.mq5 5 kb Aidas Geguzis 2020.04.09 17:03 #257 MQL5を使用して合成スプレッドを取得することは可能ですか? 端末自体に合成樹脂のスプレッドがあります。 fxsaber 2020.04.09 17:08 #258 Aidas Geguzis:MQL5を使用して合成スプレッドを取得することは可能ですか? 端末自体に合成樹脂のスプレッドがあります。 サードパーティ製プログラムの場合、カスタムシンボルは オリジナルのものと最小限の違いで済みます。だから、何の障害もないはずです。 Roman 2020.06.02 02:58 #259 カスタム商品がターミナルインターフェースを通じて作成され、カスタムシンボルが 負の値を持つ場合 カスタムシンボルのインターフェースで、負の価格を許可する必要があります。 この設定をしない場合、作成されたシンボルの履歴は計算されず、チャートは現在の瞬間からしか表示されません。 ジャーナルにマイナス価格を有効にすべきとの警告が表示されないため、履歴が計算されない理由が長い間分かりませんでした。 ログにそのような警告が表示されると良いですね。 Stanislav Korotky 2020.06.07 21:58 #260 空の新しいカスタムシンボルに1対1のティック(特にMQ DemoのEURUSDから)を追加すると、エラー5310(すぐにではなく、任意の日付からのループで)が発生します。 input int Limit = 10000; input datetime Start = D'2020.06.01'; int fillArray(ulong &_start) { MqlTick array[]; int size = CopyTicks(_Symbol, array, COPY_TICKS_ALL, _start, Limit); if(size > 0) { _start = array[size - 1].time_msc + 1; if(CustomTicksAdd(symbolName, array) == -1) { Print("Error:", GetLastError()); return -1; } } return size; } ... { ulong startMsc = (ulong)Start * 1000; while(fillArray(startMsc) > 0); } どうしたんですか?具体的にどのダニが叱られているかは、どうすればわかるのですか?ログへの配列の出力 - 時系列違反はありません。 1...19202122232425262728293031323334 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます、これで理由がわかりました。
追加されました。システムタイマーステップは、やはり15.625の倍数になります
しかし、Wine apiの関数timeBeginPeriod(1)のシステムタイマーの周期を変更しました。
つまり、システムタイマーを1ミリ秒にインクリメントするようにしました。
そして、システムタイマーのステップは1ミリ秒でいいんですよね?
コメント内のカウンターがフリーズしたままなのはなぜですか?
しかし、プロセッサの負荷は8スレッドで最大40%まで増大する。
一般的には、話題を閉じて、オフトピック ))
また、Wine下のLinuxでは、EventSetMillisecondTimer(1); でも、CPU負荷は最大40%まで上昇し、CPUスレッドは8つです。
そういうことなんだ...。
なぜ1秒間に64回なのか?
いろんな情報を画面に表示できるようにするためだと思います。周波数はこれで十分です。これ以上頻繁に展示しても意味がないし、お金もかかる。
OnChartEvent、OnCalculate、OnTickも同様に1秒間に64回トリガーされるのでしょうかね。- そう思います、はい。
そういうことなんだ...。
なぜ1秒間に64回なのか?
いろんな情報を画面に表示できるようにするためだと思います。周波数はこれで十分です。これ以上頻繁に展示しても意味がないし、お金もかかる。
OnChartEvent、OnCalculate、OnTickも1秒間に64回生成されているのでしょうかね。
ここでのポイントは、負荷ではなく、OnTimer()ハンドラの能力にありました。
Windowsはこの能力を制限していますが、Linuxは制限していないことが判明しました。
質問、OnChartEvent、OnCalculate、OnTickも1秒間に64回までしか生成されないのでしょうか?
開発元からの回答を待ったほうがいいかもしれませんね。
質問ですが、OnChartEvent、OnCalculate、OnTickも1秒間に64回までしか発生しないのでしょうか?
開発元からの回答を待ったほうがいいかもしれませんね。
マウスでOnChartEventを確認。
最大で124ヘルツの周波数が出ました。もういいや。なんで128じゃないんだろう。
マウスでOnChartEventを確認。
最大周波数は124ヘルツです。それ以上はない。なぜ128でないのか不思議です。
アルゴリズムを少し変更しました。コメントで時間を食うことを考慮していない。127Hzになりました。
もう論理的ですね。1Hzの誤差は、すでにプログラム自体で説明できますので、128を少し外れたということです。
そのため、OnChartEventの 最大周波数は128Hzとなります。
サードパーティ製プログラムの場合、カスタムシンボルは オリジナルのものと最小限の違いで済みます。だから、何の障害もないはずです。
カスタムシンボルのインターフェースで、負の価格を許可する必要があります。
この設定をしない場合、作成されたシンボルの履歴は計算されず、チャートは現在の瞬間からしか表示されません。
ジャーナルにマイナス価格を有効にすべきとの警告が表示されないため、履歴が計算されない理由が長い間分かりませんでした。
ログにそのような警告が表示されると良いですね。
空の新しいカスタムシンボルに1対1のティック(特にMQ DemoのEURUSDから)を追加すると、エラー5310(すぐにではなく、任意の日付からのループで)が発生します。
どうしたんですか?具体的にどのダニが叱られているかは、どうすればわかるのですか?ログへの配列の出力 - 時系列違反はありません。