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

 
sergeev:
テスターはデバッグされているのか?
はい、アンロードされています。
 
MoneyJinn:

そうですね、勘違いしていますね。複数のChartGetIntegerレコードフォームを使用することができます。

しかし、ChartGetIntegerレコードの形式に関係なく、CHART_BRING_TO_TOP プロパティの現在値を取得することはできない。

事例がないと、何をどのようにと言うのは難しいですね。ドキュメントとビルドリリースを確認してください。

もし、あるべき形で動作しない場合は、CA + コードへのリクエストを、例とともに書いてください。

そして、2番目のバリアントは、とにかくそのプロパティを返すべきです。

 

プロトタイプ関数が あります

#import "kernel32.dll"
BOOL WriteFile()
HANDLE hFile, //ファイルディスクリプタ
LPCVOID lpBuffer, // データバッファー
DWORD nNumberOfBytesToWrite, // 書き込むバイト数
LPDWORD lpNumberOfBytesWritten, // 書き込まれたバイト数
LPOVERLAPPED lpOverlapped // 非同期バッファー

);

この関数は、プログラムの中で呼び出されます

op_err=WriteFile(h1,buff,LenPos,Writing,NULL)。

buffとWritingが参照渡しであることを正しく指定するにはどうしたらよいですか?

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
tor30515:

プロトタイプ関数が あります


buffとWritingが参照渡しであることを正しく指定するにはどうしたらよいですか?

buff - 配列経由 例:uchar &buff[].

written - 配列または1つの変数を使用することもできます int &written

 
Yedelkin:

ハンドブックによると、このプロパティは単にサポートされていません。

エラーコードに同じことが書いてある。チャートプロパティ CHART_BRING_TO_TOP がサポートされていない理由は、開発者レベルにあります...。そして、そのプロパティが実際にサポートされている場合、質問は再び彼らのレベルになります:その場合、なぜChartGetInteger 関数はfalseを返す のでしょうか?

なぜなら、CHART_BRING_TO_TOPプロパティを trueに 設定することで、与えられたチャートをその時点で前景に出すという 命令をターミナルに 与えるからです。これは通常の意味でのプロパティではなく、コマンドである。それが説明です。
 

Rosh:
Потому что установка свойства CHART_BRING_TO_TOP в значение true дает терминалу приказ вывести данный чарт на передний план в данный момент. Это не свойство в обычном понимание, а команда. Вот такое объяснение.

つまり、このケースでは、ChartGetInteger() 関数を参照する「プロパティ」コマンドCHART_BRING_TO_TOPは単にサポートされておらず、ChartGetInteger()は正しくfalseを 返すということです。これがMoneyJinnの 答えです

 
Rosh:
なぜなら、CHART_BRING_TO_TOPプロパティを trueに設定することで、ターミナルに このチャートを今すぐフォアグラウンドにするように命令するからです。これは通常の理解ではプロパティではなく、コマンドである。それが説明です。

開発者は、グラフウィンドウがユーザーから見えているかどうか、ウィンドウの相対的な位置はどうなっているかを判断する方法を残していない。

これは非常にまずい。再びコントロールを失い、新たなリスクを抱えることになる。

 

私はMQLでのプログラミングが初めてであることをすぐに指摘したい)

問題の本質: レベル(水平線)の描画を標準のものをやり直すことで実装したい

はフラクタルに対する指標となる。それは、矢印の代わりに横線を引くことです。

したがって、「指標の枠内で可能かどうか?結局のところ、指定 する必要があります。

計算前のインジケータの行 数がわからない。プロパティで可能か

#property indicator_plots で変数を指定します。それとも不可能なのでしょうか?

以下は、少し修正したフラクタルのコードです。上下のフラクタルに2本の線を描画します。

しかし、水平方向の線が必要で、1つのフラクタルに1本の線が必要です。

もしかして、ObjectCreateでインジケータに横線を作ることができるのでは?

#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
//---- indicator settings
#property indicator_chart_window 
//Для индикаторов расположение на графике цены (indicator_chart_window)
//или в отдельном окне (indicator_separate_window)
#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrDeepPink
#property indicator_color2  clrRoyalBlue
#property indicator_label1  "Resistance lvl"
#property indicator_label2  "Support lvl"
#property indicator_style1  STYLE_SOLID
#property indicator_style2  STYLE_SOLID
#property indicator_width1  2
#property indicator_width2  2
//---- indicator buffers
double ExtUpperBuffer[];
double ExtLowerBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtUpperBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtLowerBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);// точность индикатора равна точности графика
//---- sets first bar from what index will be drawn
//  PlotIndexSetInteger(0,PLOT_ARROW,217);
//  PlotIndexSetInteger(1,PLOT_ARROW,218);
//---- arrow shifts when drawing
//  PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,ExtArrowShift);
//  PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-ExtArrowShift);
//---- sets drawing line empty value--
//  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
// PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
  {
   int i,limit;
//---
   if(rates_total<5)
      return(0);
//---
   if(prev_calculated<7)
     {
      limit=2;
      //очистка буферов
      ArrayInitialize(ExtUpperBuffer,EMPTY_VALUE);
      ArrayInitialize(ExtLowerBuffer,EMPTY_VALUE);
     }
   else limit=rates_total-5;

   for(i=limit;i<rates_total-3 && !IsStopped();i++)//(?условие нач.цикла;усл.оконч.цикла;вычисление)
                                                   //i++ тоже самое что и i=i+1
     {
      //---- Upper Fractal
      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
         ExtUpperBuffer[i]=High[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtUpperBuffer[i]=ExtUpperBuffer[i-1];
      //else ExtUpperBuffer[i]=ExtUpperBuffer[1];

      //---- Lower Fractal
      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])
         ExtLowerBuffer[i]=Low[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtLowerBuffer[i]=ExtLowerBuffer[i-1];
      //else ExtLowerBuffer[i]=ExtLowerBuffer[1];
      
     // ObjectCreate(0,Level_obj,OBJ_HLINE);

     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }

//+------------------------------------------------------------------+
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
ファイルに関する質問です。µl5で開くファイルの サイズに制限はありますか?
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
履歴からACCOUNT_BALANCEの 値を取得するにはどうすればよいですか? 取引履歴を 見る場合、残高の推移を知る必要があります。
理由: