マーケットにある商品の自動チェック(質問・提案) - ページ 6

 
Andrey Khatimlianskii:

はい、確かに、「@global_initializations」を忘れていました。

バーやインジケーターのバッファを描画すること自体に時間がかかることが判明?

また、リリースに向けてコンパイルし、同じ間隔でビジュアライザーを実行し、そのまま最後までスクロールさせた場合(「skip to...」)、どれくらいの時間がかかりますか?

さて、どのくらい?

 
Prostocar:
こんにちは こんにちは ターミナルでマーケットを失いました マーケットからExpert Advisorsとindicatorsをインストールできません ターミナルの再インストールは役に立ちませんでした 同様にマーケットで以前に購入した製品も更新されません 問題を解決する方法を知っている人教えてください

あなたはまだ私の質問に答えていません。

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

市場での商品チェックの自動化(質問と提案)

ウラジスラフ・アンドルシェンコ 2019.10.10 18:35


インターネットエクスプローラーのバージョンを確認してください。機能していないのではないかという疑念がある。

ターミナルで、ツールウィンドウのログタブで確認することができます。


2つ目の質問:どのサーバーに接続しているのか?MetaQuotes-Demoに接続してみてください。

 
MetaQuotes Software Corp.:

オートバリデーターのログから、M1のテストでは1時間では月間のインターバルを 通過できないことが判明しています。

H1では、同じインジケータが数分でテストに合格しています。

コードの中から原因を探します。

オートバリデーターに原因がある可能性が高いです。なんとか、この問題はティック履歴の処理に何らかの関係があることがわかりました。

最初のイベントOnCalculateが処理されると、インジケータは関数CopyTicksRangeを実行することによって、最後の日のティックの履歴をロードしようとします。各バーが少なくともいくつかのティックを受信した場合、受信した履歴を描画し、その後、オンラインでティックを処理します。一部の履歴バーがティックを受信していない場合、OnCalculateハンドラは0を返し、5秒間のタイマーを開始します。次のイベント OnCalculate で、インジケータはティックの履歴を読み込もうとし続けます。OnTimerハンドラでは、タイマーが停止し、すべてのOnCalculateコールが5秒間履歴をロードできなかった場合、ChartSetSymbolPeriod(0、NULL、0)コールを 使用してリフレッシュ要求が行われます。

なお、全ては非同期で実行され、ロジックによるハングはありません。最悪の場合、何らかの理由でティックのデータベースが利用できない場合を想定すると、5秒の周期でリフレッシュが繰り返されることになる。しかし、この場合の指標はデータがないため、全く計算されない。リフレッシュの影響は調査済みで、ない - 下のコメント参照。

このコードは、異なるサーバー、異なるキャラクター/時間枠、テスターでオンラインでも問題なく動作しています。

同じコードがオートバリュエーターのどこかでハングアップしているようです。直感的な方法(通常のフィードバックやログなどの場合は起こらないはずです)で、以下のことがわかりました。

ティックヒストリーのコメントをコメントアウトすると、インジケータが正常にオートバリデーションされます。

履歴依頼の要因が多いので、何がどのような組み合わせでオートバリデーターが「ハングアップ」するのか、正確なことは言えません。

  • ヒストリーティックがない場合のCopyTicksRange(ただし、ヒストリーティックがない場合でも、インジケータは計算せず、すぐに環境にコントロールを戻し、オンラインのティックは自由に「ティック」を続け、私はそのような状況をエミュレートしました - ハングはありません)。
  • タイマーを使用します。
  • ChartSetSymbolPeriod(ストレステストとして、このリフレッシュでインジケータをエクストリームモード(毎ティック)で実行しましたが、速度低下や顕著なCPU負荷は発生しませんでした、このリクエストも非同期です)。
  • リフレッシュの失敗カウンターを追加して、所定の回数(5回)試行した後に停止するようにしましたが、これは成功に影響しません。

OnTimerハンドラからリフレッシュが要求された場合、オートバリデーションに失敗します。リフレッシュがOnCalculateに転送された場合、オートバリデーションは成功します。したがって、OnTimerからChartSetSymbolPeriodを呼び出したことが、悪影響を与えている間接的な証拠となります。テスターでわざとそのような組み合わせで動かしてみたが、問題はない。当然ながら、オートバリデーターは公開されているテスターとは異なります。

検証をパスするために特定された条件はあまり明確ではなく(少なくとも奇妙)、勘で人為的にコードを複雑にする必要があるため、リリース製品としては受け入れがたいものです。

 
こんにちは、ご相談なのですが、オートバリデーション時にインジケーターがなく、リソースでインジケーターを設定し、他の端末でコンパイルしたファイルはテストでもリアル口座でも問題なく動きます。何が問題なのでしょうか?
ファイル:
2yr38jvml4.png  32 kb
 
RODION SLOTIN:
こんにちは、私は助けを求めています。自動検証中に、インジケータがないというエラーが発生しました。何が問題なのでしょうか?

二重拡張子やダッシュを使わないようにする。これはあくまでも推測です。

 
RODION SLOTIN:


具体的にどこなのか、教えてください。

#resource "\Indicators

double SigUp= iCustom(Symbol(),0,"\ExpertsGuru.v1-1.eng.ex4::IndicatorsGuru.ex4",Sensitivity,PopUp_Alert,5,0);


このように書くとよいでしょう(例)。

#resource "\\Indicators\\trend_channel.ex4"

iCustom(Symbol(),0,"::Indicators\\trend_channel.ex4",kstd,bars,shift,0,bars);

と、意味不明なことが書かれていますね。

 
Librariesフォルダーもなぜかログに記載されています。なぜそうなのでしょうか。Eugeneは、リソースへの参照を正しく説明した。ローカルで動作するはずです(すべてのデフォルトフォルダ、MQL4/Experts、MQL4/Indicatorsの場合)。ローカル起動を修正すると、ほとんどの場合、オートバリュエーションで動作するようになります。
 

こんにちは。

マーケットに製品をアップロードしようとしています。自動検証では、以下のようなエラーが発生します。

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) しかしこれはあり得ないことです。マウスで始点を動かしたところにVWAPを敷いています。スクリプトはエラーなくコンパイルされ、すべて正常に動作します。おそらく、自動検証は、開始点を選択する必要があるスクリプトと相互作用することができないのでは?

他に何か理由があるのでしょうか?インジケーターは、ボリュームあり/なしを選択して読み取ることができます。デフォルトでは "なし "ですが、おそらくバリデータはすべての可能なパラメータを実行し、通貨ペアのボリュームを使った計算に行き当たると思います。どうすればいいのか?

 
Anton Polkovnikov:

こんにちは。

マーケットに製品をアップロードしようとしています。自動検証では、以下のようなエラーが発生します。

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) しかしこれはあり得ないことです。マウスで始点を動かしたところにVWAPを敷いています。スクリプトはエラーなくコンパイルされ、すべて正常に動作します。おそらく、自動検証は、開始点を選択する必要があるスクリプトと相互作用することができないのでは?

他に何か理由があるのでしょうか?インジケーターは、ボリュームあり/なしを選択して読み取ることができます。デフォルトでは "なし "ですが、おそらくバリデータはすべての可能なパラメータを実行し、通貨ペアのボリュームを使った計算に行き当たると思います。どうすればいいのか?

コンパイルされたファイル(EX4/EX5も)、DLLをインポートしようとした場合

マーケットを通じて配布されるプログラムは、ユーザーにとって安全であることが保証されている必要があります。したがって、コンパイルされたEX4/EX5ファイルのDLLや関数を使用しようとすると、エラーとみなされます。そのような製品は、マーケットに掲載されません。

提供されていない追加の指標をプログラムで使用する必要がある場合は、リソースを使用 します。


iCustom()によるカスタムインジケータへの適用

プログラムでカスタム指標データにアクセスする必要がある場合、必要な指標をすべてリソースに 配置する必要があります。マーケットからの製品は、準備されていない環境でも動作するように、EX4/EX5ファイルに必要なものがすべて含まれていなければなりません。おすすめの記事をご紹介しています。


https://www.mql5.com/ru/articles/2555#dll_and_libraries_prohibited

 
Anton Polkovnikov:

test on EURUSD,H1 (netting) 2019.05.01 00:00:30 array out of range in 'Anchored VWAP with no Volume.mq5' (387,30) しかしこれはありえません。

387行目の範囲外の配列は、文字30です。と書かれています。配列を確認する必要があります。