Hatalar, hatalar, sorular - sayfa 3006

 
Aliaksandr Hryshyn :
Orada işaretçi kopyaları
Verileri nasıl kopyalayabilirsiniz? Peki, element element dışında?
 
Vasiliy Pushkaryov :
Verileri nasıl kopyalayabilirsiniz? Peki, eleman eleman dışında?

Bunun ne kadar doğru olduğunu bilmiyorum ama görev ek bir kurucu aracılığıyla çözüldü. Belki birileri işine yarar.

 #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 :

Test cihazının görsel modunda ChartScreenShot düzgün çalışmıyor.

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

merhaba uv. geliştiriciler ChartScreenShot()'ın test cihazında ne zaman çalışacağını öğrenebilir miyim?

 

Böyle bir Uzman Danışmanda giriş parametrelerini (F7) nasıl değiştireceğimi veya global bir değişkenin (F3) değerini nasıl değiştireceğimi söyleyin?

 input int i = 0 ;

const bool Init = EventSetTimer ( 1 );

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

Grafikten çıkarmak bile sorunlu.

 
İyi akşamlar, bir sorum var? Temsilci yöneticisi onu satılık olarak kurdu, ancak bulut sütununda devre dışı bırakıldı yazıyor ve tüm gün boyunca altı işlemcide tek bir hareket yoktu. İşlemciler hesapta görüntülenir. Bu iyi?
 

Önceden, Hata Ayıklama tam olarak kullanılamıyordu , ancak bazen komut dosyalarını F5 üzerinden çalıştırmak uygundur (ancak lansmanın neden mevcut grafikte değil de yeni bir grafikte olduğu açık değildir).

Ve yanlışlıkla günlükte aşağıdaki girişleri buldum:

Bu durumda, betiğin kendisi yürütülür. Aşağıdaki satırı koda eklemeye çalıştım:

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

"DebugBreak" satırı yazdırılıyor, ancak kesinti oluşmuyor

 
A100 :

(ancak lansmanın neden mevcut grafikte değil de yeni bir grafikte olduğu açık değil).

Araçlar->Ayarlar->Hata Ayıklama/Profil Oluşturma düzenleyicisinde
orada, hangi sembol hata ayıklamasının başlatılacağı belirlenir , ancak yine de, başlatma ayrı bir grafikte olacaktır.
Sembol burada belirtilmemişse, Market Watch'taki ilk (üst) sembolde başlatılacaktır.

Bana genel olarak zaman iş üzerinden kırılma noktaları . 2875 inşa
Noktaları belirledim, gerçek verilerde hata ayıklamanın başlangıcına bastım ve uçtu ve hata ayıklamayı bitirdikten sonra durmadan uçtu.
Terminali editörle yeniden başlatıyorum ve sonra bir sonraki hata ayıklama başlangıcına/durdurmasına kadar kesme noktalarını görmeye başlıyor, sonra tekrar atlamaya başlıyor.
Genel olarak geçmiş verilerde hata ayıklamaya başlamak, test kullanıcısı penceresini çağırır ve ayrıca kesme noktalarını atlayarak hata ayıklamayı tamamlar.
Tarihsel verilerde, bir noktada hiç durmadım, her zaman atlıyor, hata ayıklamayı tamamlıyor.
Ancak, test cihazı için tarihsel verilere ne denir ve kaydedilen parametreler ondan alınır, h.z. bu nedir, çok tasarlanmış veya eğrilik.

 
Roman :

Araçlar->Ayarlar->Hata Ayıklama/Profil Oluşturma düzenleyicisinde
orada, hangi sembol hata ayıklamasının başlatılacağı belirlenir, ancak yine de, başlatma ayrı bir grafikte olacaktır .
Sembol burada belirtilmemişse, Piyasa İzleme'deki ilk (üst) sembolde başlatılacaktır.

Bana göre bu son derece sakıncalı. Geçerli çizelge, programın etkileşimde bulunması gereken göstergeler, grafik nesneler, ayarlar vb. içerir. Yeni bir "boş" grafik başlatıldı. Ek olarak, program normal modda (hata ayıklama değil) Navigator'dan yeni grafikte değil, mevcutta başlatılır - bariz bir tutarsızlık var

 
Görselleştirme ile bazı yanlış anlamalar da var
https://www.mql5.com/ru/forum/368597
Ошибка моделирования визуализация\без
Ошибка моделирования визуализация\без
  • 2021.05.04
  • www.mql5.com
Кто нибудь может объяснить как это происходит , или протестировать у себя...
 
Çalışma zamanı hatası (yanlış ikame sırası)
 #define MACRO( X )
void OnStart ()
{
        MACRO( __COUNTER__ )
        MACRO( __COUNTER__ )
         Print ( __COUNTER__ );
}

Sonuç: 2

Beklenen: 0