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

 
Andrey Khatimlianskii:

再生のための詳細を教えてください。もしかしたら、誰かが興味を持ってくれるかもしれません。その可能性はまったくない。

コード、ツール、テストパラメータ

写真のようなツールは、すでに上記で2回紹介しました。MOEXの株式欄のどのコードでもこのような結果になります。どの設定でも良いのですが、計算方法を変更した時のみ、エクイティが正しく表示されます。
 
Andrey Khatimlianskii:

再生のための詳細を教えてください。もしかしたら、誰かが興味を持ってくれるかもしれません。その可能性はまったくない。

コード、ツール、テストパラメータ

お願い



 

通常のマウスポインタをDLL なしでプログラム的に変更する機能は非常に不足しています。

あるいは、通常のマウスのレンダリングを無効にする機能だけでもいい。

 

EventChartCustom()のヘルプにはこうあります。

スパラム

[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()のヘルプにはこうあります。

スパラム

[OnChartEvent関数に 渡される文字列型のイベントパラメータです。文字列が63文字より長い場合、文字列は切り捨てられる。

しかし、長さ96文字の文字列は正常に渡されるのですが、何か変わったのでしょうか?

128バイトです。これは、127のuchar-characters、または63のushort-charactersです。

 

そのようなことを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でどのように実装するか。

?
CWnd から CButtons を継承する。
それとも、標準ライブラリクラスのオブジェクト なのでしょうか?
それぞれがCObjectから継承されている場合。
Collection(CObject &refs[]) { size = ArraySize(refs); }
 

開発者の皆様、UTMタグを変更することは可能でしょうか?


それとも、タグを順番に並べることができるのでしょうか?

utm_campaign=mt4terminal

utm_source=プロパティ.インジケータ

utm_medium=indicatorName。

utm_term=indicatorVersion。

utm_content=年


今の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:
CWnd から CButtons を継承する。
それとも標準ライブラリのクラスオブジェクト なのでしょうか?
それぞれが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
}

問題は、これを配列に対しても機能させる方法です。

テンプレートが役立つのはわかるが、それだけは避けたい。

IMHOは、継承権によってテンプレートなしで動作するはずです。

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はインデックスの有無にかかわらず、それを消化しないのです。