初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 86 1...798081828384858687888990919293...1503 新しいコメント WindSW 2013.01.21 15:31 #851 fyords: ObjectCreateの結果を表示してください。もしかしたら、そこにエラーがあるかもしれません。ありがとうございます。必ず確認しますが、新たな問題を解決してからにします。EAはしばらくの間動作しましたが、現在は自動的にチャートから削除されています。アレイがいっぱいですと言われて戻せません。void CreateLevels() { double High[]; ArrayResize(High,0); ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); for(int j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { double H=High[j]; }int iHighest(string symbol,int tf,int type,int count,int start) { if(start<0) return(-1); ENUM_TIMEFRAMES timeframe=TFMigrate(tf); if(count<=0) count=Bars(symbol,timeframe); if(type==10) // MODE_HIGH { double High[]; ArraySetAsSeries(High,true); CopyHigh(symbol,timeframe,start,count,High); return(ArrayMaximum(High,0,count)+start); } return(0); }Candle=1000。コンパイラはどこにも悪態をつかず、デバッガにも何も表示されません。解決策をご提案ください Renat Fatkhullin 2013.01.21 15:36 #852 次のビルドでは、信号を使わなければ、ごくまれに信号を要求してきます。 これはすでに修正されています。 WindSW 2013.01.21 15:45 #853 Renat: 次のビルドでは、信号を使わなければ、ごくまれに信号を要求してきます。 これはすでに修正されています。 その答えは、私にはないものと受け止めています。 WindSW 2013.01.21 15:50 #854 チャート上にEAを設定しようとすると、テクニカルエラーが発生するようになりました。エラーの詳細はどこに送ればよいのですか? Andrew Petras 2013.01.21 15:56 #855 WindSW: なぜArrayResize=0なのか?そして、ArrayInitializeは その前に追加する必要があるようです。Иdouble Hループの中で毎回初期化されているか?関数の前に宣言してください。を更新し、括弧を再確認してください。CreateLevels WindSW 2013.01.21 16:12 #856 Silent:なぜArrayResize=0なのか? 配列のゼロ点化 High[] Andrew Petras 2013.01.21 16:30 #857 WindSW: 配列のゼロ点化 High[] いいえ、そのサイズを0に設定します。 WindSW 2013.01.21 16:38 #858 Silent: いいえ、そのサイズを0に設定します。 情報はサイズ0のままですか?リセットの正しい方法を教えてください。 Andrew Petras 2013.01.21 16:50 #859 WindSW: 情報はサイズ0のままですか?ゼロインはどのように行うのが正しいのでしょうか?サイズを0にしてから、そこに配列をコピーするのです。試してみてください。void CreateLevels() { double High[]; ArrayResize(High,Candle); // размер = Candle ArrayInitialize(High,NULL); // инициализация нулем ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); double H; // вынес int j; // вынес for(j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { H=High[j]; } } } // скобки сразу парами ставьте, искать не прийдётся コードを修正し、int jも修正しました。 Andrew Petras 2013.01.21 16:55 #860 WindSW: また、サイズ0では情報は残らないのですか?そして、それを殺すと、おそらくArrayResizeを2回呼ぶことができます、0と、そして正しい配列 サイズで。もっと速いかもしれない...メモリ割り当て的にどうなるかはわからないけれども。 1...798081828384858687888990919293...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ObjectCreateの結果を表示してください。もしかしたら、そこにエラーがあるかもしれません。
ありがとうございます。必ず確認しますが、新たな問題を解決してからにします。EAはしばらくの間動作しましたが、現在は自動的にチャートから削除されています。アレイがいっぱいですと言われて戻せません。
Candle=1000。コンパイラはどこにも悪態をつかず、デバッガにも何も表示されません。解決策をご提案ください
これはすでに修正されています。
次のビルドでは、信号を使わなければ、ごくまれに信号を要求してきます。
これはすでに修正されています。
なぜArrayResize=0なのか?
そして、ArrayInitializeは その前に追加する必要があるようです。
И
double H
ループの中で毎回初期化されているか?
関数の前に宣言してください。
を更新し、括弧を再確認してください。
なぜArrayResize=0なのか?
配列のゼロ点化 High[]
いいえ、そのサイズを0に設定します。
情報はサイズ0のままですか?ゼロインはどのように行うのが正しいのでしょうか?
サイズを0にしてから、そこに配列をコピーするのです。
試してみてください。
void CreateLevels() { double High[]; ArrayResize(High,Candle); // размер = Candle ArrayInitialize(High,NULL); // инициализация нулем ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); double H; // вынес int j; // вынес for(j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { H=High[j]; } } } // скобки сразу парами ставьте, искать не прийдётся
コードを修正し、int jも修正しました。また、サイズ0では情報は残らないのですか?
そして、それを殺すと、おそらくArrayResizeを2回呼ぶことができます、0と、そして正しい配列 サイズで。
もっと速いかもしれない...メモリ割り当て的にどうなるかはわからないけれども。