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

 
pako:
CHART_BRING_TO_TOP
TOP "にない場合。
この機能は、ウィンドウを一番上に表示します。しかし、一番上にウィンドウがあるかどうかはチェックしません
 
Vladislav Andruschenko:
この機能は、ウィンドウを一番上に表示します。しかし、一番上にウィンドウがあるかどうかはチェックしません

ChartGetInteger()


https://www.mql5.com/ru/forum/42833#comment_1493908

その場

ヘルプはまだ変わっていません、1年半は期限ではありません :))

Активный, в данный момент график.
Активный, в данный момент график.
  • www.mql5.com
Есть индикатор на каждом графике.
 

ということは全くありません。グラフは一番上になくても、見えるようにすることができます。あるいは、一番上にあるのに見えないということもあります。

チャートへの描画は、見えるか見えないかがわかって初めて意味がある、あるいはない。

 
fxsaber:

そんなことは全然ないんです。グラフは一番上になくても、見えるようにすることができます。または、一番上にあるのに見えない場合もあります。

見えるか見えないかがわかってこそ、チャートに描く意味があるのです。

お試しください
 
fxsaber:

そんなことは全然ないんです。グラフは一番上になくても、見えるようにすることができます。または、一番上にあるのに見えない場合もあります。

チャートへの描画は、見えるか見えないかがわかって初めて意味がある、あるいはない。

WinApiがあなたの力になります。
ここでは、チャートの座標と幅、そしてzオーダーを取得できます。チャートのすべてのウィンドウは同じWMIClientに属しています。
 
pako:
これを試してみてください。
フィットしない。
 
Sergey Dzyublik:
WinApiがあなたの力になります。
そこでは、チャートの座標と幅、そしてzオーダーを取得できます。チャートのすべてのウィンドウは、同じWMIClientに属しています。
ありがとうございます、WinAPIは意識しています。ENUM_CHART_PROPERTY_INTEGERの拡張をサービスデスクに提案する予定です。
 

期間データを呼び出すのにスクリプトを使っています。時間単位の数字を始めとして、理解しがたい数字が並んでいます。それとも、そういうものなのでしょうか?

void OnStart()
  {
Print("Period()=",Period());
  
  }
2016.11.01 16:56:07.466 период (EURUSD,H1)      Period()=16385
2016.11.01 16:55:58.840 период (EURUSD,M30)     Period()=30
2016.11.01 16:55:46.950 период (EURUSD,M1)      Period()=1
 
forexman77:

期間データを呼び出すのにスクリプトを使っています。時間単位の数字を始めとして、理解しがたい数字が並んでいます。それとも、そういうものなのでしょうか?

void OnStart()
  {
Print("Period()=",Period());
  
  }
2016.11.01 16:56:07.466 период (EURUSD,H1)      Period()=16385
2016.11.01 16:55:58.840 период (EURUSD,M30)     Period()=30
2016.11.01 16:55:46.950 период (EURUSD,M1)      Period()=1
そういうものなのでしょう。
 

現在のインジケーターの流れの中で、フルラップのタイムを計測するのは正しいアプローチなのでしょうか?

#property indicator_chart_window

#property indicator_buffers 0
#property indicator_plots 0

sinput int Amount = 100; // Количество циклов

void OnInit( void )
{
  EventSetMillisecondTimer(1);
}

ulong ArrayMean( const ulong &Array[] )
{
  const int Size = ArraySize(Array);
  
  ulong Sum = 0;
  
  for (int i = 0; i < Size; i++)
    Sum += Array[i];
    
  return((Size > 0) ? Sum / Size : 0);
}

ulong ArrayMin( const ulong &Array[] )
{
  return(Array[ArrayMinimum(Array)]);
}

ulong ArrayMax( const ulong &Array[] )
{
  return(Array[ArrayMaximum(Array)]);
}

#define TOSTRING(A) #A + " = " + (string)(Array##A(Cycles)) + " mcs. "

void CycleComment( void )
{
  static ulong Cycles[];
  static const int Size = ArrayResize(Cycles, Amount);
  
  static ulong PrevTime = GetMicrosecondCount();
  static int i = 0;
    
  Cycles[i] = GetMicrosecondCount() - PrevTime;

  i++;
  i %= Size;
  
  Comment(TOSTRING(Mean) + TOSTRING(Min) + TOSTRING(Max));
    
  PrevTime = GetMicrosecondCount();
}

void OnTimer( void )
{
  CycleComment();
}

int OnCalculate( const int rates_total, const int prev_calculated, const int begin, const double& price[] )
{
  return(rates_total);
}

空のチャート(インジケータなし)で、平均15ms、最小5msの値を得ることができます。なぜ、そのようなことになるのでしょうか。