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

 
Aliaksandr Hryshyn:
そこでポインタは
データのコピーはどのように行うのですか?そうですね、1つ1つの要素以外には?
 
Vasiliy Pushkaryov:
また、データのコピーはどのように行うのですか?要素ごとにというのは別として?

これが正しいかどうかは分かりませんが、コンストラクタを追加することで問題が解決しました。誰かの役に立つかもしれない。

#include <Arrays\ArrayObj.mqh>

CArrayObj ArrCur;       // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev;  // массив с объектами, каждый объект содержит структуру с полями ордеров и его id

class CID : public CObject
{
  public:  int id;
           CID() {}
           CID(CID* pt) {this = pt;}
           
};


void OnStart()
{
  // -----------------------------------------------------------------
    CID* pCur = new CID;          // создаем объект для текущих параметров
    pCur.id = 25;                 // вносим текущие данные
    ArrCur.Add(pCur);             // помещаем в массив объектов
    
    CID* pTemp = ArrCur.At(0);    // вытягиваем объект по указателю
    CID* pPrev = new CID(pTemp);  // в дин.объект копируем в конструкторе данные с предыд.указателя
    ArrPrev.Add(pPrev);           // помещаем в массив объектов
    
    ArrCur.Clear();               // чистим текущий массив
  // -----------------------------------------------------------------
  
   // --- для вывода в журнал
  int sizeCur = ArrCur.Total();       // размер = 0
  int sizePrev = ArrPrev.Total();     // размер = 1
  
  ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0));    // POINTER_INVALID
  ENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0));  // POINTER_DINAMYC
  
  Print(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
  Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));

  ArrPrev.Clear();             // чистим массив
}
 
fxsaber:

ビジュアルテスターモードで、ChartScreenShotが 正しく動作しない。

void OnTick()
{
  Print(ChartScreenShot(0, "Test.png", 100, 100)); // true, но файл нулевой длины
  
  ExpertRemove();
}

開発者の皆さん、こんにちは。ChartScreenShot()がテスターで動作するのはいつになるのか、お伺いしてもよろしいでしょうか?

 

このようなEAで、入力パラメータの変更(F7)、グローバル変数の値の 変更(F3)の方法を教えてください。

input int i = 0;

const bool Init = EventSetTimer(1);

void OnTimer()
{
  Alert("");
}

チャートから外すのでさえ問題です。

 
こんばんは......そんな質問があるのですが?販売用エージェントマネージャーをインストールしましたが、クラウド欄は無効と表示され、6プロセッサで一日中、何の動きもありません。プロセッサーはアカウントに表示されています。これは正常なのか?
 

以前はDebugは完全に使えませんでしたが、F5でスクリプトを実行すると時々便利です(新しいチャートで 実行され、現在のチャートで 実行されない理由は不明ですが)。

そして、偶然にもそのような記録をログで発見したのです。

同時に、スクリプト自体も実行されている。次のような行をコードに挿入してみました。

{ DebugBreak(); Print( "DebugBreak" ); }

DebugBreak」の行が出力されるが、停止しない。

 
A100:

(なぜ新しいチャートで 動作し、現在のチャートで 動作しないのかは不明ですが)。

エディター サービス->設定->デバッグ/プロファイリング
で、どのシンボルがデバッグに使用されるかを設定できますが、それでも別のチャートで実行 されることに変わりはありません。
そこでシンボルが指定されていない場合は、Market Watchの一番最初の(トップの)シンボルで実行されます。

たまに発動するブレーク ポイントを全般的に設けています。2875
を構築中で、ポイントを設定し、実データでデバッグ開始をクリックすると、デバッグが終了して、停止せずにブリップスルーしてしまうのです。
エディターでターミナルを再起動すると、ブレークポイントが 表示されるようになり、他のスタート/ストップデバッグまで、その後、再びスキップし始めます。
履歴データでデバッグを実行すると、全くテスターウィンドウを呼び出さず、デバッグ終了と同時にブレークポイントを スキップしてしまう。
過去データのブレークポイントで止まったことは一度もなく、デバッグ完了まで ずっとスキップしています。
しかし
、なぜ過去のデータで テスターが呼ばれ、保存されたパラメータがそこから取得されるのか、そういう設計になっているのか、曲者なのか、よくわかりませんね。

 
Roman:

エディター サービス->設定->デバッグ/プロファイリング
で、どのシンボルがデバッグに使用されるかを設定できますが、それでも別のチャートで実行 されることに変わりはありません。
そこでシンボルが指定されていない場合は、Market Watchから一番最初の(トップの)シンボルで実行されます。

私の考えでは、これは非常に不便なことです。現在のチャートには、インジケータ、プログラムが相互作用することになっているグラフィックオブジェクト、設定などがあります。新しい "空の "チャートが開始されます。さらに、デバッグではない通常モードのプログラムは、新しいチャートではなく、現在のチャートのナビゲーターから 起動されます - これは明らかに矛盾しています

 
ビジュアライゼーションも少しわかりにくい
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
実行エラー(置換順序が正しくない)
#define  MACRO( X )
void OnStart()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
        Print( __COUNTER__ );
}

結果:2

期待される結果:0