Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
P S正確に書けなかった。一度に何文字テストするのか、これだけのコードを詰め込まなければならない。 もしかしたら、同時に動作する文字数分のデータ(ハンドラやインジケータ値)を設定時に動的につなげる方法があるのかもしれない。問題は、これをすべてInitにつないでOnTic/OnTimerで使用することです。
P S正確に書けなかった。一度に何文字テストするのか、これだけのコードを詰め込まなければならない。 もしかしたら、同時に動作する文字数のチューニング中に、動的にデータ(ハンドラやインジケータ値)をつなげる方法があるのかもしれない。問題は、これをすべてInitにつないでOnTic/OnTimerで使用することです。
師匠も授業も、これまでは「メンテナンスモード」で動いていた。最も単純な多変量解析クラスの作成には、すでに適応されています(今はまだ準備ができていませんが、後でここに例を載せます)。
ウィザードで生成されたものを元に多通貨のクラスを作りました。しかし、EXPERTクラスの訂正をしなければなりませんでした。
INIT()メソッドの冒頭で、作業シンボルのチェックがあり、その結果、マルチカレンシーがないのです。チェックが外れて、すべてがうまくいきました。時間を見てください - 少なくともそのアイデア?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
モデレーターの皆さん、こんにちは。
そんな疑問があります。
MQL5 Wizardは、ダイバージェンス、買われすぎ、売られすぎなどの分析を行うシグナルのモジュールを20個搭載しています。MQL5ウィザードからそのような信号のモジュールを借りて、同じように分析を行うことが可能かどうか、独自のデザインのカスタムインジケーターから、そのために何をすべきかをアドバイスしていただけませんか?多くの手直し(再設計)が必要なのか、それとも標準納入品からモジュール(そのコピー)の何かを変更するだけで十分なのか?
ありがとうございました。
ForexMoneyMaker:
MQL5ウィザードからそのような信号のモジュールを借りて同じように分析を行うことが可能かどうか、しかし独自設計のカスタムインジケーターから、そのために何をすべきかをご存知でしょうか。手直し(変更)が多いのか、それともモジュール(そのコピー)のどこかを標準納品から変更すれば済むのか?
いい質問ですね。その理由は、標準モジュールに最小限の修正を加えるだけで、インジケーターをもう一つ挿入しただけの新しいモジュールを作ることができるからです。このテーマで自分たちがいつ記事を書けるか分からないので、提案します。
誰が 知識と記事"信号の標準モジュールに基づいて独自の作成方法 "を書くために欲求を持って いる - 個人的なメッセージで私を書き込む。
ウィザードで生成されたものを元に多通貨のクラスを作りました。しかし、EXPERTクラスの訂正をしなければなりませんでした。
INIT()メソッドの冒頭で、作業シンボルのチェックがあり、その結果、マルチカレンシーがないのです。チェックが外れて、すべてがうまくいきました。時間を見てください - 少なくともそのアイデア?
if(symbol!=Symbol() || period!=Period())
на
if(period!=Period())
考え方は同じですが。
1.CExpertクラスを 変更するのは良くない。Init(...)メソッドをオーバーライドして継承するのがよいでしょう。
2) CExpert クラスを修正する必要はありません。書かないとダメなんです。
今のところ...
モデレーターの皆さん、こんにちは。
そんな疑問があります。
MQL5 Wizardは、ダイバージェンス、買われすぎ、売られすぎなどの分析を行うシグナルのモジュールを20個搭載しています。MQL5ウィザードからそのような信号のモジュールを借りて、同じように分析を行うことが可能かどうか、独自のデザインのカスタムインジケーターから、そのために何をすべきかをアドバイスしていただけませんか?多くの手直し(再設計)が必要なのか、それとも標準納入品からモジュール(そのコピー)の何かを変更するだけで十分なのか?
ありがとうございました。
考え方は同じですが。
1.CExpertクラスを修正するのは良くない。Init(...)メソッドをオーバーライドして継承するのがよいでしょう。
2.CExpertクラスを修正する必要はありません。書かないとダメなんです。
今のところ...
Init()メソッドを再定義し、作業シンボルのチェックをそこから除外する必要があります。しかし、Init()メソッドには、特に桁数Digitsのチェックがあり、ワークシンボルが5桁で、テスト中のものが3桁の場合、ストップ/プロフィットでエラーになるため、P.2が合わないのです。継承し、オーバーライドした。すべてがうまくいくようになりました。
もちろん、私はOOPの専門家ではありませんが、テストされたシンボルの数が違っても柔軟にプログラムを構成するためには、例えば21個のコード(すべてのシンボル)を淡々と埋めていき、入力パラメータの選択方法によって、このコード断片やこのコード断片を渡す必要があることがわかりました。OOPなしで同じようにしましたが、initのハンドルとインジケータの値はすべて動的配列に 書き込まれ、そしてOnTickはすでにこれらの配列を使っています。では、まだOOPの利点は見えていないのでしょうか?
P S正確に書けなかった。一度に何文字テストするのか、これだけのコードを詰め込まなければならない。 もしかしたら、同時に動作する文字数分のデータ(ハンドラやインジケータ値)を設定時に動的につなげる方法があるのかもしれない。問題は、これをすべてInitにつないでOnTic/OnTimerで使用することです。
作業シンボルのチェックを除いた Init() メソッドを再定義する必要があります。また、P.2が合わないのは、Init()メソッドで、特に桁数Digitsをチェックしており、ワークシンボルが5桁で、テスト中のシンボルが3桁だと、ストップ/プロフィットでエラーになるためです。継承し、オーバーライドした。すべてがうまくいくようになりました。
もちろん、私はOOPの専門家ではありませんが、テストされたシンボルの数が違っても柔軟にプログラムを構成するためには、例えば21個のコード(すべてのシンボル)を淡々と埋めていき、入力パラメータの選択方法によって、このコード部分とこのコード部分を受け渡す必要があることがわかりました。OOPなしで同じようにしましたが、initのハンドルとインジケータの値はすべて動的配列に 書き込まれ、そしてOnTickはすでにこれらの配列を使っています。では、まだOOPの利点は見えていないのでしょうか?
P S正確に書けなかった。一度に何文字テストするのか、これだけのコードを詰め込まなければならない。 もしかしたら、同時に動作する文字数のチューニング中に、動的にデータ(ハンドラやインジケータ値)をつなげる方法があるのかもしれない。問題は、これをすべてInitにつないでOnTic/OnTimerで使用することです。
そうなんです。ところで、2の件、ご指摘ありがとうございました。 制御と桁の変更を追加してみます。
しまった!せっかくセットアップしたのに、485ビルドにアップグレードしたら、またエラーが出てしまった。
2011.08.08 17:13:04 Core 1 テスターがOnInit critical errorで停止しました。
2011.08.08 17:13:04 Core 1 2010.01.01 00:00:00 OnInit: インジケーターの初期化に失敗しました。
2011.08.08 17:13:04 Core 1 2010.01.01 00:00 CExpert::InitIndicators: error initializing indicators of money object.
2011.08.08 17:13:04 Core 1 2010.01.01 00:00 CExpertBase::InitIndicators: 設定パラメータがチェックされていない。
2011.08.08 17:13:04 Core 1 2010.01.01 00:00 CExpertBase::SetOtherSeries: 時系列の変更が禁止された。
2011.08.08 17:13:04 Core 1 2010.01.01 00:00 CExpertBase::SetPriceSeries: 時系列の変更が禁止された。
2011.08.08 17:13:04 Core 1 EURUSD,H4: 2009.01.02 04:00から履歴が始まります。
2011.08.08 17:13:04 Core 1 EURUSD,H4: ヒストリーキャッシュが推定4692本分確保されました。
しまった!せっかくセットアップしたのに、485にアップグレードしたらまたエラーが出てしまった。
エージェントは更新されましたか?新しいバージョンでEAを再コンパイルしていますか?
まさに、リコンパイルしました!(笑