Ошибки, баги, вопросы - страница 2656

 
Andrey Khatimlianskii:

Дайте детали для воспроизведения. Может, кто-то и заинтересуется. Так шансов вообще нет.

Код, инструмент, параметры теста.

Инструмент указан мною выше уже 2 раза, ка картинке. Любой код на фондовой секции MOEX дает такой результат. Настройки тоже любые, эквити начинает адекватно отображаться только когда поменять способ расчетов
 
Andrey Khatimlianskii:

Дайте детали для воспроизведения. Может, кто-то и заинтересуется. Так шансов вообще нет.

Код, инструмент, параметры теста.

Пожалуйста



 

Очень не хватает возможности программно менять штатный указатель мышки без dll

Или просто возможность отключать отрисовку штатной мыши.

 

В справке про EventChartCustom () сказано:

sparam

[in]  Параметр события типа string, передаваемый функции OnChartEvent. Если строка имеет длину больше, чем 63 символа, то строка усекается.

Однако успешно передается строка длиной 96 символов, что то изменилось?

Вот, шифрую строку и передаю её в эвенте, и успешно расшифровываю, строка не усекается как сказано в справке и это замечательно (первая строка шифрованная за ней расшифрованная):

2020.02.26 14:36:10.949 iSpy (EURUSD,H1) 38CFD250C299F2420D5AFB1D070196F2F9246A164C2B1905C3921E466D6124306D836A2A09D4A06DD4B02FBDD1DE6857

2020.02.26 14:36:10.949 iSpy (EURUSD,H1) EURUSD:1.08753:1.0875:0.0:1582716971862:0.0

2020.02.26 14:36:16.391 iSpy (EURUSD,H1) 2588EC84729FA3BFE07B09BCB13832AF026A4F9DEA5634477EFF2C1FCAC355A35A67EDC5D5A8621570D3EBF80A7A942A

2020.02.26 14:36:16.391 iSpy (EURUSD,H1) EURUSD:1.08752:1.08749:0.0:1582716977068:0.0


какой длины строку всё таки можно передать в эвенте не нарвавшись на усечение в действительности?


 
Andrey Dik:

В справке про EventChartCustom () сказано:

sparam

[in]  Параметр события типа string, передаваемый функции OnChartEvent. Если строка имеет длину больше, чем 63 символа, то строка усекается.

Однако успешно передается строка длиной 96 символов, что то изменилось?

128 байтов. Это 127 uchar-символов, или 63 ushort-символов.

 

Как в MQL реализовать такую вещь:

#include <Controls\Button.mqh>

  class Collection
  {
    protected:
      int size;

    public:
      Collection(CWnd &refs[]) { size = ArraySize(refs); }
  };


void OnStart()
{
  CButton buttons[];
  CWnd wnd[];
  Collection data1(wnd);     // ok
  Collection data2(buttons); // error
  // 'buttons' - parameter conversion not allowed
  // 'buttons' - variable of the same type expected
}
?
 
fxsaber :

128 байтов. Это 127 uchar-символов, или 63 ushort-символов.

Это на самом деле 160 байтов.


Файлы:
 
Stanislav Korotky:

Как в MQL реализовать такую вещь:

?
Унаследовать CButtons от CWnd
Или это объекты классов станд.библиотеки?
Если каждый из них унаследован от CObject, то: 
Collection(CObject &refs[]) { size = ArraySize(refs); }
 

Уважаемые разработчики, можно ли поменять как то UTM метки ?


Или Можете ли Вы привести метки в порядок ?

utm_campaign=mt4terminal

utm_source=properties.indicator

utm_medium=indicatorName

utm_term=indicatorVersion

utm_content=Year


Сейчас текущие UTM  метки не информативны...

Finteza panel: website analytics and advertising management
Finteza panel: website analytics and advertising management
  • panel.finteza.com
Real-time unsampled analytical data, traffic attribution and quality evaluation, creation of conversion funnels and targeted advertising in apps and websites
 
Artyom Trishkin:
Унаследовать CButtons от CWnd
Или это объекты классов станд.библиотеки?
Если каждый из них унаследован от CObject, то: 

В том то и дело что дерево классов имеет общий узел CWnd (CObject дальше, вообще в корне).

CButton -> CWndObj -> CWnd -> CObject.

Если изменить параметр в методе на CObject, получаем в 2 раза больше ошибок:

'wnd' - parameter conversion not allowed
'wnd' - variable of the same type expected
'buttons' - parameter conversion not allowed
'buttons' - variable of the same type expected

Аналогичная иерархия классов работает для случая не массива. Вот компилируемый код:

#include <Controls\Button.mqh>

  class Collection
  {
    protected:
      int size;

    public:
      Collection(CWnd &object) { size = 1; }
  };


void OnStart()
{
  CButton button1;
  CWnd wnd1;
  Collection data1(wnd1);     // ok
  Collection data2(button1);  // ok
}

Вопрос, как сделать, чтобы и для массива работало?

Я знаю шаблон помогает, но его как раз хочется избежать.

ИМХО, должно без шаблонов работать по праву наследования.

Проверил как в C++.

class CWnd
{
  public:
    int x;
    CWnd(int _x = 0): x(_x){}
};
class CButton: public CWnd
{
  public:
    CButton(): CWnd(10) {}
};

class Collection
{
  public:
    Collection(CWnd (&ptrs)[1]) { cout << ptrs[0].x; }
};


int main()
{
  CButton buttons[1];
  CWnd wnd[1];
  Collection data1(wnd);
  Collection data2((CWnd (&)[1])buttons);
  return 0;
}

Работает. Но MQL такое не переваривает, что с индексом, что без.

Причина обращения: