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

 
ivandurak:

おやすみなさい。これからが本番です。明らかなバグと思われる。私は以下のコードを引用し、私は1行にコメントすると(それはマークされている)、それは動作するように見えるが、何が問題なのか - 私は理解していないです。この件に関しては、ドキュメントには何も書かれていませんでした。

Raznica 配列が割り当てられていません。宣言はされているが、メモリが割り当てられていない、同時にインジケータ・バッファでも ない(バッファ用のメモリは自動的に割り当てられる)。

これです。

   SetIndexBuffer(0,BaseMaBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,MaForMaBuffer,INDICATOR_DATA);

という場合は、BaseMaBufferとMaForMaBufferという配列がインジケータ・バッファであることをコンパイラに伝えます。その他のアレイは

ArrayResize()
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
ivandurak:

おやすみなさい。今、調べ始めたところです。明らかなバグと思われる。私は以下のコードを引用し、以下の1行をコメントすると(それはマークされている)、それは動作するように見える - 私は何が問題であるかを理解していない。Raznica[]配列に明示的にサイズを指定することで、この状況を回避することができます。この件に関しては、ドキュメントには何も書かれていませんでした。

バグはありません。 動的配列のサイズは

int  ArrayResize(
   void  array[],              // массив, переданный по ссылке
   int   new_size,             // новый размер массива
   int   reserve_size=0        // резервное значение размера (избыточное)
   );

この関数は動的配列にのみ 適用できるが、SetIndexBuffer() 関数で指標バッファとして割り当てられた動的配列はサイズ変更できないことに注意する必要がある。インジケータ・バッファの場合、サイズ変更操作はすべて端末の実行サブシステムで行われる。


 
わかったよ、お利口さんありがとう。もうひとつの質問ですが、配列のサイズを変更した場合、データはどうなるのでしょうか?また、時系列のようにインデックスの方向を変えることは、動的配列の 場合のみ可能なのでしょうか?
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
Документация по MQL5: Основы языка / Типы данных / Объект динамического массива
  • www.mql5.com
Основы языка / Типы данных / Объект динамического массива - Документация по MQL5
 
ivandurak:
わかったよ、お利口さんありがとう。もう一つ質問ですが、配列のサイズを変更した場合、データはどうなるのでしょうか?また、動的配列でのみ、時系列のようにインデックスの方向を変更することは可能でしょうか?

データは残ります、減らしてから復元した場合は不確定です(結果は不定です)。

このようにインデックスの方向が変わるのはインデックス参照だけなので、配列は同じ方向に分散されます。

つまり、アレイを分割し直してもデータは移動しない。

 

すでに報告されていることですが、テスターではユーザー定義の初期預金額が10,000ドルにリセットされ続けています。

利用可能な初期値のセットは、かなり曲者です。少なくとも1000ドルは追加されるでしょう。

ビルド 523

Win XP

 
こんな感じだったのか、それとも何かが壊れたのか...。一般に、非子孫のプロテクトされたメソッドへの自由なアクセスが許可されます。
#include <Arrays/List.mqh>
//---------------------------------------
class CBasket;

class CFruit: public CObject {
private:
        double _weight;
protected:
        double GetWeight(){return _weight;}     
public:
        CFruit(double weight){_weight = weight;};
        ~CFruit(){};
};
//---------------------------------------
class CBasket {
private:
        CList _fruits;
protected:
public:
        CBasket(){};
        ~CBasket(){};
        double Weight() {
                double weight = 0;
                for(CFruit* f = _fruits.GetFirstNode(); f != NULL; f = _fruits.GetNextNode()) {
                        weight += f.GetWeight(); //свободный вызов protected метода другого класса
                }
                return weight;
        }
        
        void Attach(CFruit* f) {
                _fruits.Add(f);
        }
};
//---------------------------------------
int OnInit() {
        CBasket* b = new CBasket();
        
        CFruit* f1 = new CFruit(3.5);
        CFruit* f2 = new CFruit(6.5);
        b.Attach(f1);
        b.Attach(f2);
        Print(b.Weight());
      
   return(0);
}
//---------------------------------------
 

最適化後、結果ファイルを 開くことができない。

Build 527 + Office 2007

エラーログには以下のデータが含まれます。


"テーブル "のXMLエラー
原因:値の誤り。
File: C:\UsersersDragon╱Desktop╱ReportOptimizer-957640.xml
グループ:Cell
タグ: データ
Значение: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

テーブル "のXMLエラー。
原因:値の誤り
File: C:\UsersersDragon╱Desktop╱ReportOptimizer-957640.xml
グループ:Cell
タグ: データ
Значение: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

テーブル "のXMLエラー。
原因:値の誤り
File: C:\UsersersDragon╱Desktop╱ReportOptimizer-957640.xml
グループ:Cell
タグ: データ
Значение: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

テーブル "のXMLエラー。
原因:値の誤り
File: C:\UsersersDragon╱Desktop╱ReportOptimizer-957640.xml
グループ:Cell
タグ: データ
Значение: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

テーブル "のXMLエラー。
原因:値の誤り
File: C:\UsersersDragon╱Desktop╱ReportOptimizer-957640.xml
グループ:Cell
タグ: データ
Значение: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000

その他

 

空の値が取得されているのでは?

を読むことができます。

https://www.mql5.com/ru/docs/constants/namedconstants/otherconstants

EMPTY_VALUE

インジケーターバッファに空値がある

DBL_MAX

DBL_MAX

double 型で表現できる最大値

1.7976931348623158e+308

Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Именованные константы / Прочие константы - Документация по MQL5
 
Vigor:
こんな感じだったのか、それとも何かが壊れたのか...。とにかく、protectedメソッドを非子孫で自由にアクセスすることが許されている

ご投稿ありがとうございます。
 
Karlson:

空の値が取得されているのでは?

を読むことができます。

https://www.mql5.com/ru/docs/constants/namedconstants/otherconstants

EMPTY_VALUE

インジケーターバッファに空値がある

DBL_MAX

DBL_MAX

double 型で表現できる最大値

1.7976931348623158e+308

また、空の値はどのようにしてファイルに入るのでしょうか?テスターウィンドウには、通常の最適化結果が表示されています。