初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1119

 
pivomoe:
1ミリ秒の休止をする方法を教えてください。 Sleep(1)は0から50ミリ秒くらいまで休止するので、選択肢に入りません。パラメータ1で呼び出す場合。
文書には、技術的なニュアンスの関係で、16-18ミリ秒以下の休止を受信することは現実的でないと書かれています。これは、ハードウェア、OSなどに関係することです。
 
BlackTomcat:
技術的なニュアンスから、16〜18ミリ秒以下の間を取るのは現実的でないとドキュメントに書かれています。これは、ハードウェア、OSなどに関係することです。
負荷に応じて、1本、時には2,3本と本数を増やしています。
 
Aliaksandr Hryshyn:
仕事量に応じて、1台、2台、3台と使い分けています。

なぜ16msを切ることができないのか、その疑問や誤解については、「Windsはリアルタイムシステムではない、Windsのタイマーだけがソフトウェアで利用できる」ということを、ググってみてください。

 
Igor Makanu:

なぜ16msを切ることができないのか、その疑問や誤解については、「Windsはリアルタイムシステムではない、Windsのタイマーだけがソフトウェアで利用できる」ということを、ググってみてください。

16は多いが、我慢できる。50以上にもなる。
 
pivomoe:
16は多いが、我慢できる。時には50本以上。

もう一度、風はリアルタイムシステムではなく、十分なリソースのOSは、あなたのタイマーが遅延されますが、まだ実行され、論理的な時間間隔を使用して、私は100ミリ秒未満を使用していない、と通常は400ミリ、でもグラフィックと処理クリックのチェックボックスでコールDLのために使用する500ミリ秒をチェック目立たない - はい、それはすでにない応答を見ることである。

タイマで100ms以下が保証されるとは思っていません。

 
100ms以下はバツです。400が良い。
 

OKボタンが押されるのを待たずに、画面にインフォメーションメッセージを表示させる方法を教えてください。

もちろんMessageBox機能もありますが、反応を待ってプログラムの実行を 停止させるものです。

 
pivomoe:

OKボタンが押されるのを待たずに、画面にインフォメーションメッセージを表示させる方法を教えてください。

もちろんMessageBox機能もありますが、反応を待ってプログラムの実行を 停止させるものです。

Yes Alert, I think.ただ、最後の段落は必ず読んでください。

https://www.mql5.com/ru/docs/common/alert

Документация по MQL5: Общие функции / Alert
Документация по MQL5: Общие функции / Alert
  • www.mql5.com
[in]  Любые значения, разделенные запятыми. Для разделения выводимой информации на несколько строк можно использовать символ перевода строки "\n" либо "\r\n". Количество параметров не может превышать 64. Массивы нельзя передавать в функцию Alert(). Массивы должны выводиться поэлементно. Данные типа double выводятся с 8 десятичными цифрами после...
 
BlackTomcat:

Yes Alert, I think.ただ、最後の段落は必ず読んでください。

https://www.mql5.com/ru/docs/common/alert

ありがとうございます。私に必要なもの

 

こんにちは。アドバイスまたはリンク先を教えてください。残高の変化をローソク足チャートとして別ウィンドウに表示するようなインジケーターの構成はどうすればいいのでしょうか。一番簡単なのは、インジケータが価格の変化をコピーすることですが、今度は価格の変化を残高の変化に置き換える方法、言い換えれば、インジケータが使用する配列を置き換えることです。

何かアイデアがあれば、それを共有してください、私はアルゴリズムの一般的な説明であっても感謝します、私は経験が不足している、私はどこから始めればいいのかわからない。

//+------------------------------------------------------------------+
//|                                                iBalans_Logic.mq5 |
//|                                              Sergei Voicehovskii |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Sergei Voicehovskii"
#property link      ""
#property version   "1.00"
//------------------------------------------------------------------
#property indicator_separate_window
#property indicator_buffers 6
#property indicator_plots   1
#property indicator_label1  "iBalans_Logic"
#property indicator_type1   DRAW_COLOR_CANDLES
#property indicator_color1  clrGray,clrDodgerBlue,clrSandyBrown
//--- indicator buffers
//--- индикаторный буфер
double opn[],hi[],lo[],cls[],clr[],lot[],type[];
//------------------------------------------------------------------
// Custom indicator initialization function
// Функция инициализации пользовательского индикатора
//------------------------------------------------------------------
int OnInit()
  {
   SetIndexBuffer(0,opn,INDICATOR_DATA);
   SetIndexBuffer(1,hi,INDICATOR_DATA);
   SetIndexBuffer(2,lo,INDICATOR_DATA);
   SetIndexBuffer(3,cls,INDICATOR_DATA);
   SetIndexBuffer(4,clr,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(5,lot,INDICATOR_CALCULATIONS);
   SetIndexBuffer(6,type,INDICATOR_CALCULATIONS);
   IndicatorSetString(INDICATOR_SHORTNAME,"iBalans_Logic ("")");
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 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[])
{
//---
Comment("-------------------------", 
        "\n rates_total        = ",rates_total,
        "\n prev_calculated = ",prev_calculated,
        "\n ---------------------- "
       ); 
//---
int i=(int)MathMax(prev_calculated-1,0);

   for(;i<rates_total && !_StopFlag; i++)
     {
     
       opn[i] = open[i];
       cls[i] = close[i];
        hi[i] = high[i];
        lo[i] = low[i];
       clr[i] = (cls[i]>opn[i])?1:(cls[i]<opn[i])?2:0;
     }
//--- return value of prev_calculated for next call
//--- возвращаемое значение соответствует моменту prev_calculated для следующего вызова
return(rates_total);
}
//+------------------------------------------------------------------+

https://charts.mql5.com/22/192/eurusd-m1-alpari-international-2.png

理由: