サービスデスクです。苦情、提案 - ページ 3

 
Alexey Kozitsyn:

ドキュメントに記載があり、使いたいからというだけなら。

履歴のダウンロードと確認は、MT5と同様、https://www.mql5.com/ru/docs/series/timeseries_access。

質問を繰り返しますが、古いmql4によってこの日付を取得する方法をご存知でしょうか?

私にとっては、ドキュメントに機能があることは、原則的に必要ないのであれば、サービスデスクやフォーラムで対応し、時間と労力を浪費する十分な理由にはなりません。そして、なぜそれが必要なのか、私の意見では、あなたは一度も主張できていません。

MT5のAPIの機能は、MQL4のモダナイゼーション以降、ずっとこのような不具合が続いているので、個人的にはMT4で使用することはお勧めしません。そして、誰かが絶対に必要だと証明しない限り、これからは使用を勧めないことにします。

 
Ilya Malev:

私にとっては、ドキュメントに機能があることは、原則的に必要ないのであれば、サービスデスクやフォーラムで対応し、時間と労力を浪費する十分な理由にはなりません。そして、私の意見では、なぜそれが必要なのかを論証できていません。

MT5のAPIの機能は、MQL4のモダナイゼーション以降、ずっとこのような不具合が続いているので、個人的にはMT4で使用することはお勧めしません。そして、誰かがその絶対的な必要性を証明しない限り、私は今後その使用を勧めないでしょう。

あなたはまだ私の質問に答えていません。でも、気にしていない、満足していることに気づきました。

それと、もうひとつ、MT4からMT5へのプログラムの移植性についても触れておきます。

 
Alexey Kozitsyn:

あなたはまだ私の質問に答えていません。でも、気にしない、平気なんだと理解しました。

それと、もうひとつ、MT4からMT5へのプログラムの移植性という論点もあります。

MT4ウィンドウのバー数に制限がある場合、サーバーにあるバー数がわからなくなります。そして、それが必要になるような通常の場面には遭遇したことがありません。もちろん、エキゾチックなものをたくさん発明することもできますが、99.9%の場合は、それがなくても大丈夫なのです。

移植性については、データや注文の処理方法が根本的に異なる、まったく別のプラットフォームです。そのため、プログラミングの方法論も全く異なる。移植性のために、__MQL4__ディレクティブや条件付きコンパイルを行うライブラリがあります。

 
Ilya Malev:

MT4ウィンドウのバー数に制限がある場合、サーバーにあるバー数を知ることはできません。そして、それが必要になるような通常の場面には遭遇していません。もちろん、いろいろなエキゾチックを発明することはできますが、トレーダーの仕事の99.9%は、実質的にエキゾチックがなくてもできるのです。

移植性については、データや注文の処理方法が根本的に異なる、まったく別のプラットフォームです。そのため、プログラミングの方法論も全く異なる。移植性のために、__MQL4__ディレクティブや条件付きコンパイルを行うライブラリがあります。

データへのアクセスの整理は「エキゾチック」なのか?エヘン。オッケーです。

トレーダーは言語を気にせず、取引する必要があり、Expert Advisor/Indicator/Scriptsが正しく機能しなければなりません。どのように機能するかはプログラマーの問題です。しかし、プログラマーは、トレーダーのために高品質の製品を書くために、データアクセスのような細かい点にも気を配らなければならない。

また、自分が出会っていないからといって、他の人が出会っていないとは限りません。

 
Alexey Kozitsyn:

データアクセスの整理は「エキゾチック」!?エヘン。オッケーです。

トレーダーは言語を気にしませんが、トレーダーは取引する必要があり、Expert Advisors/Indicator/Scriptsが正しく機能する必要があります。どのように機能するかはプログラマーの問題です。しかし、プログラマーは、トレーダーのために高品質の製品を書くために、データアクセスのような小さなことにも気を配らなければならない。

この機能が必要とされる実際のタスクは、ひとつも挙げられていませんね。データアクセス」というきれいな言葉だけで、「ドキュメントに書いてあるからこの機能が必要なんだ」と認めている。

MT4のAPIにはデータアクセスのための十分な関数があり、MT5用の関数に手を出す必要は全くないと私は考えています。MT4では、履歴をプログラムで読み込む必要がないため、サーバー上のバー 数を調べる必要はありません。MT4のデータアクセス関数(iHigh、iLow、MarketInfoなど)にアクセスする前に端末自体がそれを行います。

MT5で変更され、データへのアクセスに多くの困難が生じたのは残念です。

 
Ilya Malev:

この機能が必要とされる実際のタスクは、まだ一つも挙げられていません。データアクセス」というきれいな言葉だけで、「ドキュメントに書いてあるからこの機能が必要なんだ」と認めている。

MT4のAPIにはデータアクセスのための十分な関数があり、MT5用の関数に手を出す必要は全くないと私は考えています。MT4では、履歴をプログラムでアップロードする必要がないため、サーバー上のバー 数を調べる必要はありません - ターミナルがそれを行います。

これは非常に便利で、MT5で変更され、そこでのデータへのアクセスに多くの問題が生じたのは残念です。

リンクも貼りましたよ。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

サービスデスクです。サービスデスクに関するご質問やご意見がありましたら、ご遠慮なくお問い合わせください。

アレクセイ・コジツィン さん 2015.10.30 17:11

少なくともドキュメントに記載されているので、使いたいからです。

履歴のダウンロードと確認は、MT5と同様、https://www.mql5.com/ru/docs/series/timeseries_access。

リンク先にあるような履歴の確認・アップロード機能をmql5で書いています。すべてが思い通りに動く。そして、同じものをmql4プログラムでも使いたいと思いました。コードをコピーしてみたところ、SeriesInfoInteger()関数の動作がおかしいことがわかりました。Sersideskにアプリケーションを書きました。すべての機能が両言語で重複している場合、なぜ既存のコードを使用してはいけないのでしょうか?

最初はmql4で書かれていて、その後mql5に変更されたと理解しています。それどころか、積極的にmql5で書き始め、そして-mql4で書いています。だから、私にとっては新しい機能を使ったほうが便利なんです。

 
また、mql4とmql5のデータへのアクセスを整理するためのドキュメントを比較すると、アクセスが同じであることがわかります。mql5のドキュメントがアクセス例で拡張されているだけです。では、このアクセスはそんなに違うのかというと、やはり大きな疑問があります。
 
Alexey Kozitsyn:
また、mql4とmql5からのデータアクセスのドキュメントを比較すれば、アクセスが同じであることは明らかでしょう。mql5のドキュメントがアクセス例で拡張されているだけです。では、このアクセスはそんなに違うのかというと、やはり大きな疑問があります。

簡単な例としては、あるインディケータがiCustomによって別のインディケータを呼び出すというものがあります。そして、このもうひとつの指標は、今度は3つ目、4つ目をも呼び出すのです。そして、これらの指標はすべて数ミリ秒より少し長い時間で構築されています。週末にこのような構築を実行する場合、ユーザーは定期的にチャートの「更新」ボタンを押さない限り、週末が終わるまでインジケータの作成を待つことはない。この問題のために、私はiCustomの代わりに、iCustomをバイパスしてインジケータを相互に呼び出す ためのクラス全体のシステムを作らなければなりませんでした。MT4ではそのような面倒なことはなかったのですが。

MT4では、まずインジケータを構築し、そのデータを使用するコードを呼び出します。同じことを時系列で行うことがほとんどです。MT5では、すべてが良い方向に変化したわけではありません。

 
Ilya Malev:

簡単な例としては、あるインディケータがiCustomによって別のインディケータを呼び出すというものがあります。そして、このもうひとつの指標は、今度は3つ目、4つ目をも呼び出すのです。そして、これらの指標はすべて数ミリ秒より少し長い時間で構築されています。週末にこのような構築を実行する場合、ユーザーは定期的にチャートの「更新」ボタンを押さない限り、週末が終わるまでインジケータの作成を待つことはない。この問題のために、私はiCustomの代わりに、iCustomをバイパスしてインジケータを相互に呼び出す ためのクラス全体のシステムを作らなければなりませんでした。MT4ではそのような面倒なことはなかったのですが。

Mt4では、まずインジケータが構築され、そのデータを使用するコードが呼び出されます。

タイマーイベントを使ってみてください。つまり、タイマー内の出力ですべての計算のロジックを開始する。次に、インジケーターがウィンドウに表示されない場合 - 更新を一度押してください。すべてがうまくいくはずです。
 

Alexey Kozitsyn:

タイマー イベントを利用してみてください。

タイマーイベントは、実はChartEventのサブクラスで、チャート上で直接インジケータを起動したときのみ呼び出されます。iCustomを通して呼び出されるインジケータでは、OnTimerやOnChartEventの 呼び出しを待つことはありません。

そこでは、一方のインジケータが描画された後に、もう一方のインジケータが描画を開始する。チェーンで最も遠い最初のものを構築するために一度リフレッシュを押し、そのデータを使用するものを構築するためにもう一度押す必要があります :)

なぜなら、そのスレッドのインジケータは、OnCalculateから戻ってくることなく、他のインジケータのデータ構築を待つことはできないからです。これも嬉しい機能です。そのため、ユーザーはデータを操作する代わりに、常にチャートメニューに直面することになります。