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

 
Dmitry Voronkov:
ごきげんよう。
MQL4とMQL5には、Expert Advisorからインジケータサブウィンドウを削除する機能がありますが、インジケータウィンドウを作成する機能がないのはなぜでしょうか。
テンプレートを使うか、ウィンドウズ・インジケータを手動で起動する必要があり、チャートの情報が消えてしまうので不便です。
また、リソースファイルからインジケータを起動し、表示できるようにしたい。
あるいはその方法をアドバイスする。

ChartIndicatorAdd 関数で、サブウィンドウを作成することができます

リソースからの指標については、こちら(https://www.mql5.com/ru/docs/runtime/resources)の一番最後に「リソースとして接続されたカスタム指標で作業する」と書かれています。

Документация по MQL5: Программы MQL5 / Ресурсы
Документация по MQL5: Программы MQL5 / Ресурсы
  • www.mql5.com
Программы MQL5 / Ресурсы - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slawa:

ChartIndicatorAdd 関数で、サブウィンドウを作成することができます

リソースからのインジケータについては、こちら(https://www.mql5.com/ru/docs/runtime/resources)の一番最後に「リソースとして接続されたカスタムインジケータを使用する」と書かれています。

ありがとうございました。

この機能は、残念ながら4には搭載されていません。残念です :)

 
kofesutra:

Mt5テスターのバグ:テスターとMT5本体でOHLCが一致しない、しかもHighとLowがOpen/Closeの範囲にある :(

このローソク足、残念ながらこれだけではありません。どうすればいいのか?開発者への手紙の書き方をアドバイスしてくれ、みんな!

2016.08.13 12:38:48.956 ターミナル C:\Program FilesAlpari Limited MT5
2016.08.13 12:38:48.956 端末 Microsoft Windows XP (x64 ベース PC) on Wine, IE 08.00, Intel Pentium 4 2.40GHz, RAM: 6131 / 7688 Mb, HDD: 33959 / 159136 Mb, GMT+02:00を使用。
2016.08.13 12:38:48.955 Terminal Alpari Limited MT5 x64 build 1375 開始 (Alpari Limited)

もう一度テスターを走らせてみると、ローソク足が形成されているときにHighがO_oを再描画している、というトリックがありました。ある時点で低い値に変化し、Open/Closeの範囲に落ち、その範囲内で値を変化させる。

M1のOHLC


発見され、修正されました。メッセージをありがとうございました。

固定ビルドはありませんが、このバグは日次(週次ではなく)タイムフレームでテストすることで回避することができます。この場合、すべての週が正しく形成されます

 
Ilyas:

マクロ本体から逆さカンマを削除する

マクロパラメータを文字列に変換するには、#を使用します。

## トークンの接着に使用されます。
ありがとうございました。
 
Slawa:

発見し、修正しました。メッセージをありがとうございました。

固定ビルドはありませんが、このバグは(週単位ではなく)日単位のタイムフレームでテストすることによって回避できます。この場合、すべての週が正しく形成されます

ありがとうございました。了解しました、修正ビルドを待ちます。
 
コドベースは何曜日に 更新されるのですか?
 

曖昧さ。

class A {};
class B {
        virtual B *f() { return NULL; }
        virtual A *g() { return NULL; }
};
class C : public B {
        virtual C *f() { return NULL; } //нормально
        virtual C *g() { return NULL; } //Error: overriding virtual function with different return type
};

あるケースでは、異なる戻り値の型を持つメソッドをオーバーロードできますが、別のケースではできません。

 

実行中のエラー

//Script3.mq5
class A {};
class B : public A {
public:
        B( int ii ) : i( ii ) {}
        void f( A *a ) { i = g( a ); }
        int g(  A& a ) { return ((B *)&a).i; }
        int i;
};
void OnStart()
{
        B a = 1,
          b = 2;
        a.f( &b );
        Print( "OK:", a.i );
}

結果

2016.08.16 10:22:45.244 Script3 (GBPUSD,M15) 'Script3.mq5' (11,27) で無効なポインタ アクセスです。

このエラーはフローティングです。同じものを別の方法で書き直した場合は発生しない

 
A100:

実行中のエラー

結果

2016.08.16 10:22:45.244 Script3 (GBPUSD,M15) 'Script3.mq5' (11,27) で無効なポインタアクセスです。

このエラーはフローティングです。同じものを別の方法で書き直した場合は発生しない

ありがとうございます、直りました。
 
A100:

曖昧さ。

あるケースでは、異なる戻り値の型を持つメソッドをオーバーロードできますが、別のケースではできません。

直接的に継承しても問題がないため、あえてこのようにしました。