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

 
こんにちは...おそらく単純な質問だと思うのですが、何から手をつけていいのかわかりません。作成日時を含む名前を持つ矩形を描画 するスクリプトが必要です。もしかしたら、誰かが私のタスクに適合するような例を持っているかもしれません。

よろしくお願いします :).
 
svob:
こんにちは...おそらく単純な質問だと思うのですが、何から手をつけていいのかわかりません。作成日時を含む名前を持つ矩形を描画 するスクリプトが必要です。もしかしたら、誰かが私のタスクに適合するような例を持っているかもしれません。

よろしくお願いします :).

OBJ_RECTANGLEの 参照例を基本に考えてみましょう。

ただし、この行を変更する

//--- создадим прямоугольник
   if(!RectangleCreate(0,InpName,0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }

をこれに加える。

//--- создадим прямоугольник
   if(!RectangleCreate(0,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS),0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
  • www.mql5.com
//| Cоздает прямоугольник по заданным координатам                    |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки прямоугольника                         |...
 
Vladimir Karputov:

OBJ_RECTANGLEの リファレンス例を基本として使用します。

この行だけ変更する

をこれに加える。

ありがとうございました。:)了解...

 
こんにちは、インジケーター(別ウィンドウ)の小数点以下の桁数は、ツールの_Digitsに依存するのでしょうか?その場合、どうすれば回避できるのでしょうか?インジケータは分数値を取得し、スケールには整数値のみを描画します。
 
VANDER:
こんにちは、インジケーター(別ウィンドウ)の小数点以下の桁数は、シンボルの_Digitsに依存するのでしょうか?もしそうなら、どうすれば回避できるのでしょうか?インジケーターは分数値を出し、スケールには整数値のみを表示します。

例題インジケーター [データフォルダ]゙MQL5゙Indicators゙Examples゙ATR.mq5

OnInit() ->表示精度の設定

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input value
   if(InpAtrPeriod<=0)
     {
      ExtPeriodATR=14;
      printf("Incorrect input parameter InpAtrPeriod = %d. Indicator will use value %d for calculations.",InpAtrPeriod,ExtPeriodATR);
     }
   else ExtPeriodATR=InpAtrPeriod;
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
//---
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- sets first bar from what index will be drawn


例2→[data folder]\MQL5 Indicatorsの例CustomMoving Average.mq5

こちらの方が精度が高いです

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
//--- set accuracy
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);


例3→[data folder]\MQL5Indicators﹑Examples﹑ADX.mq5

Digits() に関係なく、常に2つの値の精度があります。

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input parameters
   if(InpPeriodADX>=100 || InpPeriodADX<=0)
     {
      ExtADXPeriod=14;
      printf("Incorrect value for input variable Period_ADX=%d. Indicator will use value=%d for calculations.",InpPeriodADX,ExtADXPeriod);
     }
   else ExtADXPeriod=InpPeriodADX;
//---- indicator buffers
   SetIndexBuffer(0,ExtADXBuffer);
   SetIndexBuffer(1,ExtPDIBuffer);
   SetIndexBuffer(2,ExtNDIBuffer);
   SetIndexBuffer(3,ExtPDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,ExtNDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtTmpBuffer,INDICATOR_CALCULATIONS);
//--- indicator digits
   IndicatorSetInteger(INDICATOR_DIGITS,2);
 

ストラテジーテスターの ビジュアルモードで他のチャートにアクセスすることは可能ですか(多通貨テスト時)。例えば、こんな感じです。

int OnInit()
  {
   int bars=iBars("EURUSD",PERIOD_H1);
   bars=iBars("GBPUSD",PERIOD_H1);
   bars=iBars("USDJPY",PERIOD_H1);
   
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
   long arr[];
   ArrayResize(arr,1);
   arr[0]=ChartFirst();
   long id=arr[0];
   while (!IsStopped()){
      id=ChartNext(id);
      if(id>=0){
         int s=ArraySize(arr);
         ArrayResize(arr,s+1);
         arr[s]=id;
      }
      else break;
   }
   Comment("Total charts: ",ArraySize(arr));   
  }

ストラテジーテスターでこのEAを起動すると、ビジュアライザーでEURUSD、GBPUSD、USDJPYのチャートが表示されますが

Comment("Total charts: ",ArraySize(arr));

と表示され、チャートが1つしかないことがわかります。

 

ラベルのフォントサイズ と文字長を知るには?他の要素との相対的な位置関係を示すには

ObjectGetInteger(0,"label",OBJPROP_XSIZE,0);

0を付与

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 
Maksym Mudrakov:

ストラテジーテスターの ビジュアルモードで他のチャートにアクセスすることは可能ですか(多通貨テスト時)。例えば、こんな感じです。

ストラテジーテスターでこのEAを起動すると、ビジュアライザーでEURUSD、GBPUSD、USDJPYのチャートが表示されますが

と表示され、チャートが1つしかないことがわかります。

これは、レンダラーのウィンドウハンドルを取得する際の問題です。そして、それに勝るものはない。

 
Roman Sharanov:

ラベルのフォントサイズ と文字長を知るには?他の要素との相対的な位置関係を示すには

0を付与

私は「Courier New」などの半角フォントを使用していますが、その場合、各文字の幅はフォントのサイズとほぼ同じになります。
 
行の長さとフォントサイズによって 間接的に
理由: