エラー、バグ、質問 - ページ 2470 1...246324642465246624672468246924702471247224732474247524762477...3185 新しいコメント Eugeni Neumoin 2019.05.22 14:27 #24691 Igor Zakharov:だから、秒単位じゃないんです...。そもそも言語表記はそういうものであるべきなのです。 検索しなければならないような記事ではありません。最後にフォーラムで探してほしいのはこれです。 そうでない場合は、「本を見ても、図鑑を見ても......」という感じです。 Alexey Viktorov 2019.05.22 14:55 #24692 なぜ、そうなるのでしょうか? IM 0 17:19:04.403 Terminal MetaTrader 5 x64 build 2056 started (MetaQuotes Software Corp.) NG 0 17:19:04.403 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9408 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 ツール仕様の最小ボリュームが100で、ステップも100であることを今日知りました。しかし、Invalid volumeという エラーが出て、ポジションを開くことができません。 0.01を設定すると、ボタンは非アクティブになります。 バージョンを "若い "ものに変更しました。 KK 0 17:35:14.046 Terminal MetaTrader 5 x64 build 2025 started (MetaQuotes Software Corp.) IE 0 17:35:14.046 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9182 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 は変更なし。 その後、リリース版と入れ替えました。 FI 0 17:37:23.049 Terminal MetaTrader 5 x64 build 2007 started (MetaQuotes Software Corp.) RS 0 17:37:23.049 Terminal Windows 7 Service Pack 1 (build 7601) x64, IE 11, AMD FX-4170 Quad-Core Processor , Memory: 9180 / 12255 Mb, Disk: 20 / 238 Gb, GMT+3 そして、その結果がこれです。 なぜ、1社だけに起きているのか?もし普及していれば、とっくに問題は解決しているはずです。 会社のサポートにどのような方向で送ればいいのでしょうか? 追記:同じ会社のセントアカウントでビルド2025が正常に動作するのは非常に不思議です。すべてのツールパラメータは、あるべき姿になっています。 セントで取引することができます。自分で考えたんだ......でも、もっと欲しい。 Sergey Dzyublik 2019.05.22 19:05 #24693 Ilyas:メッセージをありがとうございました。 初歩的なことだから、直せばいいんだ。Ilyas さん、NonPOD構造体でも同じような問題があります。 struct NonPod{ uchar data[]; }; void OnStart(){ NonPod obj; obj = (NonPod)(obj); // '(' - invalid cast operation } Sergey Dzyublik 2019.05.22 21:00 #24694 クラスの名前空間をサポートする新しいビルドを待つ以外に、この制限を回避する方法を知っている人はいますか?template<typename T> class TestTypedef{ public: typedef void (* callback)(T &); // 'callback' - identifier already used callback eq; }; void ff(int&) {Print(__FUNCSIG__);} void OnStart(){ TestTypedef<int> int_value; int_value.eq = ff; int x = 5; int_value.eq(x); // Ok TestTypedef<string> int_value; //Compile error 'callback' - identifier already used }typedef 機能内のグローバル名前空間宣言領域の問題 Sergey Dzyublik 2019.05.22 22:38 #24695 MT5(ビルド2057) typedef 内で同じ関数シグネチャを繰り返し使用すると、コンパイルエラーが 発生する。typedef void (* callback_0)(); // а без этой строки все ОК typedef void (* callback)(); void test_func(){} void OnStart(){ callback func_ptr = test_func; //'test_func' - type mismatch func_ptr(); } A100 2019.05.23 00:46 #24696 Sergey Dzyublik: MT5(ビルド2057) typedef内で同じシグネチャを再利用することを「禁止」するバグ。また、2年以上前に作成した同様のスクリプトでは、2056x32の結果「EX5の読み込みに失敗しました」と表示されます。 A100 2019.05.23 01:01 #24697 Sergey Dzyublik: クラスの名前空間をサポートする新しいビルドを待つ以外に、この制限を回避する方法を知っている人はいますか?コンパイル void f(int&) {} void OnStart() { TestTypedef<int> int_value; TestTypedef<string> string_value; を書くことは可能ですが、それ以上のことはできません。 int_value.eq = f; }ということを書かないように Sergey Dzyublik 2019.05.23 01:17 #24698 A100:コンパイルするので、どのように書かないなーんだ、やっぱり難しいけど、うまくいくんだ・・・。 例のtypedefでbool型が 迷子になった。 #define PRINT(x) ; Print(#x, ":", string(x)) #define CREATE_TestTypedef(type) \ class TestTypedef_##type{ \ public: \ typedef bool (* callback_##type)(type &); \ callback_##type eq; \ } bool f(int&) {return true;} void OnStart(){ CREATE_TestTypedef(int) int_value; CREATE_TestTypedef(string) string_value; int data = 5; int_value.eq = f; PRINT(int_value.eq(data)); // result: true } Sergey Dzyublik 2019.05.23 01:26 #24699 typedefの修正と名前空間の更新(もしあれば)がリリースされるまで。 となると、それぞれの型の用途をマクロで個別に宣言し、生成されたクラスの名前をマクロで取得してクラスオブジェクトを 作成しなければならない...。 Igor Makanu 2019.05.23 05:51 #24700 CChartObjectLabelを 作成する際、このコードで非初期化する際にインジケータ内のオブジェクトを削除しない理由を説明してください。 //+------------------------------------------------------------------+ //| test.mq4 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict #property indicator_separate_window #include <ChartObjects\ChartObjectsTxtControls.mqh> CChartObjectLabel *LabelUP,*LabelDN; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { CreateLabel(LabelUP,"LabelUP",0); CreateLabel(LabelDN,"LabelDN",30); /* LabelUP=new CChartObjectLabel; LabelDN=new CChartObjectLabel; LabelUP.Create(0,"LabelUP",ChartWindowFind(),0,0); LabelUP.Color(clrYellow); LabelUP.FontSize(14); LabelUP.Description("LabelUP"); LabelDN.Create(0,"LabelDN",ChartWindowFind(),0,10); LabelDN.Color(clrYellow); LabelDN.FontSize(14); LabelDN.Description("LabelDN"); */ //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { delete LabelUP; delete LabelDN; } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } //+------------------------------------------------------------------+ void CreateLabel(CChartObjectLabel *l,string name,int y) { l=new CChartObjectLabel; l.Create(0,name,ChartWindowFind(),0,y); l.Color(clrYellow); l.FontSize(14); l.Description(name); } //+------------------------------------------------------------------+ TFを切り替えるとジャーナルエントリーが表示されます: 2019.05.23 09:49:02.044 tstlabel EURUSD,M30: 2 objects of type CChartObjectLabel left.テキストラベル(CChartObjectLabel)の作成をOnInit()でアンコメントすると、すべてが正しく動作するようになります。 CreateLabel() 関数にポインタを 渡しますが、後でOnDeinit()で削除 できません。 1...246324642465246624672468246924702471247224732474247524762477...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
だから、秒単位じゃないんです...。
そもそも言語表記はそういうものであるべきなのです。
検索しなければならないような記事ではありません。最後にフォーラムで探してほしいのはこれです。
そうでない場合は、「本を見ても、図鑑を見ても......」という感じです。
なぜ、そうなるのでしょうか?
ツール仕様の最小ボリュームが100で、ステップも100であることを今日知りました。しかし、Invalid volumeという エラーが出て、ポジションを開くことができません。 0.01を設定すると、ボタンは非アクティブになります。
バージョンを "若い "ものに変更しました。
は変更なし。
その後、リリース版と入れ替えました。
そして、その結果がこれです。
なぜ、1社だけに起きているのか?もし普及していれば、とっくに問題は解決しているはずです。
会社のサポートにどのような方向で送ればいいのでしょうか?
追記:同じ会社のセントアカウントでビルド2025が正常に動作するのは非常に不思議です。すべてのツールパラメータは、あるべき姿になっています。
セントで取引することができます。自分で考えたんだ......でも、もっと欲しい。
メッセージをありがとうございました。
初歩的なことだから、直せばいいんだ。
Ilyas さん、NonPOD構造体でも同じような問題があります。
typedef 機能内のグローバル名前空間宣言領域の問題
typedef 内で同じ関数シグネチャを繰り返し使用すると、コンパイルエラーが 発生する。
MT5(ビルド2057)
typedef内で同じシグネチャを再利用することを「禁止」するバグ。
また、2年以上前に作成した同様のスクリプトでは、2056x32の結果「EX5の読み込みに失敗しました」と表示されます。
クラスの名前空間をサポートする新しいビルドを待つ以外に、この制限を回避する方法を知っている人はいますか?
コンパイル
を書くことは可能ですが、それ以上のことはできません。
ということを書かないように
コンパイルするので、どのように書かない
なーんだ、やっぱり難しいけど、うまくいくんだ・・・。
例のtypedefでbool型が 迷子になった。
となると、それぞれの型の用途をマクロで個別に宣言し、生成されたクラスの名前をマクロで取得してクラスオブジェクトを 作成しなければならない...。
CChartObjectLabelを 作成する際、このコードで非初期化する際にインジケータ内のオブジェクトを削除しない理由を説明してください。
TFを切り替えるとジャーナルエントリーが表示されます: 2019.05.23 09:49:02.044 tstlabel EURUSD,M30: 2 objects of type CChartObjectLabel left.
テキストラベル(CChartObjectLabel)の作成をOnInit()でアンコメントすると、すべてが正しく動作するようになります。
CreateLabel() 関数にポインタを 渡しますが、後でOnDeinit()で削除 できません。