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

 
Kisolen:
MT5でWindows10(homeどっちか忘れたけどモダン、interprise ltsb 1607(かなり古い))でスタンバイに入ると、EAがチャートに付かなくなり、トレードが成立しなくなるが、一部の機能は動く(グラフィック自己書き込みウィンドウの出力、これは機能する)。これはMTのバグなのか、EAの問題なのか?ありがとうございます。

スタンバイモードとは、パソコンの電源が実質的に切れている状態です。すべてのプログラムが停止します。

 
前回のコメントへのご返答ありがとうございました。もうひとつ、疑問があります。MT5です。チャート上に「グリッド」のないインターフェーステンプレートを作成し、このテンプレートを「デフォルト」と呼んで、デフォルトで有効にしています。ありがとうございます。
 
Kisolen:
前コメントへの返信ありがとうございました。もうひとつ、疑問があります。MT5です。私は、チャートに「グリッド」がないインターフェーステンプレートを作っています。このテンプレートを「デフォルト」と呼んで、デフォルトで有効にしています。MT自体ではすべて動作しますが、EA可視化ウィンドウでは動作しません。ありがとうございます。

チャートテンプレート "default.tpl "はターミナルで新しいチャートを開いたときに適用され、チャートテンプレート "tester.tpl "はビジュアルモードでストラテジーテスターを実行したときに適用されます。

詳しくはこちら:テンプレートとプロファイル - 高度な機能 - クオート、テクニカル、ファンダメンタル分析チャート

 

皆さん、こんにちは。

MT5(build 2006)の以下の不具合について、開発者の皆様にお知らせします。プロパティ IDCHART_WIDTH_IN_BARS またはCHART_VISIBLE_BARS を指定してChartGetInteger 関数を呼び出すと、同じシンボルでより小さい TF の別のウィンドウがアクティブな場合、関数が不正な値を返すという問題があります。チャートのスケーリングが最大(5)の場合、返される値は実際の値より5だけ小さくなります。スケーリングが 4 の場合、返される値は 10 だけ小さくなる。スケーリングが3であれば、それぞれ20ずつなど。不具合を再現するためのテスト用インジケーターのコードは以下の通りです。この不具合は、TF D1とRTS-3.19の計測器で安定して再現されます。 また、わかりやすいようにバグデモを動画で記録しています。ビルド274では(履歴から判断して)同様のバグが既に修正されていましたが、どうやら最後まで修正されていないようです。:)

//+------------------------------------------------------------------+
//|                                                     DBS_Bug2.mq5 |
//|                                            Copyright © 2019, DBS |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1                                         //количество индикаторных буферов
#property indicator_plots   1                                         //количество графических построений
//+------------------------------------------------------------------+ 
//| Функция инициализации индикатора                                 | 
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+ 
//| Функция расчёта индикатора                                       | 
//+------------------------------------------------------------------+
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[])
  {
//---Debug
   int chart_bars=int(ChartGetInteger(0,CHART_WIDTH_IN_BARS));     //к-во баров на экране
   int vis_bars=int(ChartGetInteger(0,CHART_VISIBLE_BARS));        //к-во баров видимых на экране
   PrintFormat("%s: Debug #2! rates_total=%i chart_bars=%i vis_bars=%i",__FUNCTION__,rates_total,chart_bars,vis_bars);
   return(rates_total);
  }
//+------------------------------------------------------------------+

以前はこの関数の戻り値がさらにおかしなことになっていました(特に端末読み込み時)。チャートスケールが最大(5)の場合、(チャート上の実際のバー数に関係なく)戻り値は5となります。ズームが4の場合、戻り値は=10となる。スケーリングが3であれば、それぞれ=20、など。残念ながら、この不具合は動画に収めることができませんでした。しかし、他のTFでは問題ないのに、なぜ私のインジケータはD1で間違って動作するのかを理解するのに丸一日を費やしました。


追伸:同じチャート(RTS-3.19, D1)の数時間後(接続中断後)のログです。現実的には55本のバーがチャートに表示されます。そして、MT5のログには、画面に5本しか表示されず、バーが全く表示されないと書かれています:)スクリーンショット

2019.02.24 21:27:09.692 DBS_Volume (RTS-3.19,D1)        DBS Volume (VOLUME_REAL): SetVolScale: Debug #1!  max_vol_idx=3 max_vol=402550 time=2019.02.19 00:00 rates_total=220 chart_bars=5 vis_bars=0
MetaTrader 5 Client Terminal build 274
MetaTrader 5 Client Terminal build 274
  • 2010.05.15
  • MetaQuotes Software Corp.
  • www.metatrader5.com
Terminal: Исправлено отображение истории торговли на чарте. Terminal: Исправлена ошибка в навигации чарта (при отключеном сдвиге и автоскроле). Terminal: Исправления по сообщениям на форуме и крешлогам. Terminal: В файл помощи добавлено описание Тестера Стратегий MetaTester: Исправлена ошибка в загрузке параметров тестирования при смене...
 
Dmitriy Burlachenko:

開発者の皆さん、こんにちは。

MQL5標準ライブラリのヘルプにWindowHandle 関数がありますが、これを使用するとコンパイラから'WindowHandle' - function not defined'と言われます。質問:コードとコンパイラのどちらが不具合を起こしているのでしょうか?:)

それはSBです。

int CChart::WindowHandle(void) const;
 
Dmitriy Burlachenko:

開発者の皆さん、こんにちは。

MQL5標準ライブラリのヘルプにWindowHandle 関数がありますが、これを使用するとコンパイラから'WindowHandle' - function not defined'と言われます。質問:コードとコンパイラのどちらが不具合を起こしているのでしょうか?:)


ヘルプの使い方が間違っています。

Look closely:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

一歩戻って、「プライスチャート」の項をお読みください。


追加されました。

使用例(注意 -最初にAttach メソッドを実行する必要が あります)、その後でオブジェクトを操作します。

//+------------------------------------------------------------------+
//|                       Gets window handle of the chart (HWND).mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property description "Gets window handle of the chart (HWND)"
//---
#include <Charts\Chart.mqh>
CChart   m_chart;                      // CChart object
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

   m_chart.Attach(); // assigns the current chart to the class instance

   Print("CChart.WindowHandle: ",m_chart.WindowHandle());
   Print("CChart.ChartId: ",m_chart.ChartId());
  }
//+------------------------------------------------------------------+

結果

2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.WindowHandle: 13830128
2019.02.25 16:01:32.165 Gets window handle of the chart (HWND) (GBPUSD,H1)      CChart.ChartId: 131571247244850547
 
Dmitriy Burlachenko:

開発者の皆さん、こんにちは。

MQL5標準ライブラリのヘルプにWindowHandle 関数がありますが、これを使用するとコンパイラから'WindowHandle' - function not defined'と言われます。質問:コードとコンパイラのどちらが不具合を起こしているのでしょうか?:)

を使用します。

ChartGetInteger(0,CHART_WINDOW_HANDLE,0);
 
Vladimir Karputov:

ヘルプの使い方を間違えている

Look carefully:MQL5 ReferenceStandard LibraryPrice ChartsWindowHandle

一歩戻って「プライスチャート」を読む


追加されました。

使用例(注意 -最初にAttach メソッドを実行する必要が あります)、その後でオブジェクトを操作します。

結果

ありがとうございます。

 
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.02.21
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

MQL5 ME 2006

#property strict

class A
 { 
public:
  int f();
 };

void OnStart()
  {
   A a;
   a.f();
  }

MQL4でも本来は同じコード、"関数「f」はボディを持たなければならない"