エラー、バグ、質問 - ページ 775

 
Neofit:

ご回答ありがとうございました。

私はインジケータを書いているのですが、残念ながら、インジケータのコンセプトは、OnCalculateに至るまでに最適なペアが選択されることを前提としており、不明瞭に聞こえるのではないかと思っています。

一般に、OnCalculate関数では、On Initで実行された計算と解析の結果を既に使用する必要があります。

隣り合う2つのティックの間ですべての計算を行う時間がないため、これらの計算をOnCalculateに移すことはできません...。

すべてがうまく、簡単に仕上がります。

解析を別の関数に移し、OnCalculateから 呼び出す。データがない場合はOnCalculateを終了し、次のティックを待ちます。

1-2秒後に本当にインジケーターが起動するのは、問題ありません。依存性の強い非同期処理を扱うには、他の方法は不可能で、遅延/オンデマンド初期化のみです。

 
Renat:

これはうまくいって楽ですね。

解析を別の関数に移し、OnCalculateから呼び出す。データがない場合はOnCalculateを終了し、次のティックを待ちます。

実際にインジケーターが起動するのは1-2秒というのは、大したことではありません。他の方法では、強く依存した非同期プロセスを扱うことは不可能であり、遅延/オンデマンド初期化のみです。

この情報をありがとうございます。なぜか思いつきません。望みは薄いですが、自分で「疑似init」を書いてみようと思います。OnInitで待機させようとしましたが、うまくいかず、LastError 4007が発生しました。

err_array_resize_error

4007

配列の再分配に必要なメモリが不足している、または静的配列の サイズを変更しようとしている

配列は動的です。つまり、エラー定義の2番目の「静的な配列のサイズを変更しようとした」という部分は消えていますし、「配列を再分配するための メモリが不足している」という意味もほとんど 想像がつきません。

for(int i=0;i<100;i++)
        {int p99=CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1);
         if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)>0)       break;
         else  
         {
           Print("Getting MA is failed! Error",GetLastError()); 
           int err=GetLastError(); 
             Sleep(500);    
           //return(0);
         } 
         
        }
  
 
papaklass:
他のインジケータをベースにインジケータを 作ろうとしたことがあります。1つ目の指標はペアを選択し、2つ目の指標はこのペアで動作します。

Renatのアドバイスがとても役に立ちました。iMAの値をカスタムバッファに転送する際に問題があり、OnInitから別の関数にコードを移動し、追加のチェックですべてがうまくいきました...今はそれをやっています。

ZS フォーラムで自分の投稿を記録しておくのに一番便利な方法を教えてください。自分宛てのすべての投稿(自分の投稿への返信)はどこで見ることができますか?

 

MT5の技術革新をずっと追いかけていたわけではないので、非常にくだらない質問をさせていただくかもしれませんが、よろしくお願いします。

標準的なExpert Advisorの最適化を開始すると、遅い(パラメータの完全検索)ですが、この完全検索はいくつかの10490に制限されます...。

ログはいくつかでいっぱいです: 2012.07.13 21:48:10 Core 5 遺伝子パス(494、2560000)エラー "cannot initialize expert" でテストされました。

そして 2012.07.13 21:49:26 テスターの遺伝的最適化は、パス9353(816310000のうち)で終了しました。


どんな遺伝子パス?遺伝的最適化とは?フルオーバーシュートですね?

Fast最適化法(遺伝的アルゴリズム)を試したが、同じことが起こった。

どんな記事を読めばいいのか)。

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Figar0:

MT5の技術革新をずっと追いかけてきたわけではありませんので、非常にくだらない質問をさせていただくかもしれませんが、よろしくお願いします。

標準的なExpert Advisorの最適化を開始すると、遅い(パラメータの完全な検索)、それはいくつかの10490にこの完全な検索を制限している...。


どんな遺伝子パス?遺伝的最適化とは?フルブルートフォースですね。

32ビット版では、パス数が1,000,000を超えるとジェネティックモードが作動します。64ビット版では、フルブルートフォースで100,000,000の制限があります。これはヘルプに 記載されています。

このように、トレーダーが明らかなミスをしないように自動的に支援するために行われるのです。


ログはいくつかで詰まっています:2012.07.13 21:48:10 Core 5遺伝子のパス(494、256000000)エラー "エキスパートが初期化できません "でテストしました。

エキスパートが初期化されるときに、メモリか何かを見逃している可能性があります。

 
Renat:

32ビット版では、パス回数が1,000,000回を超えると、ジェネティックモードが有効になります。64ビット版では、フル稼働で100,000,000の制限があります。これはヘルプに 記載されています。

トレーダーが明らかなミスをしないように自動的に支援するために行われます。

ご返答ありがとうございます。10万円あれば十分です。

レナート

Expert Advisor の初期化時にメモリが不足していたとか、コードを見なければなりません。

ExpertMACD標準......

 

https://www.mql5.com/ru/forum/1111/page775#comment_234266

評価の低いユーザーからは、どうやらバグは関係ないようだ)。新造でも同じです。

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 0.01, 0.02, profit_USDJPY_1 );

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 200.01, 200.02, profit_USDJPY_2 );


Print("profit_USDJPY_1=", profit_USDJPY_1 ," profit_USDJPY_2=", profit_USDJPY_2 );

(EURUSD,M15) profit_USDJPY_1=500.0 profit_USDJPY_2=0.05

クロスバリアントでは、問題なく動作しています。

 

ターミナルディレクトリのスペースを確保するために、どのフォルダーをクリーンアップ(ログの削除、...など)する必要があるか。- もちろん、スクリプト、インジケータ、フクロウは残して)ターミナルディレクトリのスペースを解放するために?Expert Advisorの テストと最適化を行って いるうちに、ターミナルのディレクトリが80GBになってしまった...。掃除の時間です。

理想的には、我々は4に似たようなものを作成する必要があります - ファイルclear.bat(シンボルの引用の履歴を含むすべての余分なものをクリアし、ログをクリーンにして、スクリプト、指標とExpert Advisorsを残しながら、もちろん、インストールバージョンに応じてそれを持って来る)。

どちらかというと、MT5のフォルダの説明のリンクを教えてください。

自分で探してフォルダの中身を手動で掃除することもありますが、同じようにMT5用のバトニックを書けば、似たようなことがあるかもしれないので...。

ありがとうございます。

ファイル:
clear.zip  1 kb
 
R0MAN:

ターミナルディレクトリのスペースを確保するために、どのフォルダーをクリーンアップ(ログの削除、...など)する必要があるか。- もちろん、スクリプト、インジケータ、フクロウは残して)ターミナルディレクトリのスペースを解放するために?Expert Advisorの テストと最適化を行って いるうちに、ターミナルディレクトリが80ギガになってしまいました...。掃除の時間です。

理想的には、我々は4に似たようなものを作成する必要があります - ファイルclear.bat(シンボルの引用の履歴を含むすべての余分なものをクリアし、ログをクリーンにして、スクリプト、指標とExpert Advisorsを残しながら、もちろん、インストールバージョンに応じてそれを持って来る)。

どちらかというと、MT5のフォルダの説明のリンクを教えてください。

自分で探してフォルダの中身を手動で掃除することもありますが、同じようにMT5用のバトニックを書けば、似たようなことがあるかもしれないので...。

ありがとうございます。


MetaTrader 5 ヘルプ → 入門 →ディレクトリとファイル構造

 
WWer:

MetaTrader 5 ヘルプ → 入門 →ディレクトリとファイル構造

ありがとうございます。読ませていただきます・・・。