"ダミー "からの質問 - ページ 9

 
stringo:

私が言いたかったのはそこではないんです。

テスターエージェントログと書いてありますが、テスターエージェントログという意味です。

さて、まず後発組のために、どこで何をするのか(できれば写真で)明記してほしいのだが...。
 

ドラッグでオブジェクトを移動させることは可能ですか? すらすら 水平方向か垂直 方向か?

グラフのスクロールのようなものを作りたいのですが。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
kPVT:

ドラッグでオブジェクトを移動させることは可能ですか? すらすら チャートオブジェクトは、ドラッグ&ドロップで水平方向や垂直 方向に移動させることができるのですね。

グラフのスクロールのようなものを作りたいのですが。

スクリプトを発見し、少し手を加えた。

#import "user32.dll"
bool      GetCursorPos(int &Pos[]);
bool      GetWindowRect(int hWnd,int &Pos[]);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int p[2];
   int rect[4];
   int hwnd=ChartGetInteger(ChartID(),CHART_WINDOW_HANDLE);
   while(!IsStopped())
     {
      GetWindowRect(hwnd,rect);
      GetCursorPos(p);
      int X=p[0]-rect[0];
      int Y=p[1]-rect[1];
      string c="Глобальные координаты мыши x= "+p[0]+" y= "+p[1]+"\n"+
               "Координаты мыши в окне котировок x= "+X+" y= "+Y;
      Comment(c);
      Sleep(100);
     }
  }
//+------------------------------------------------------------------+

user32.dllを使ってマウス座標を取得し、スクロールをスムーズにする、はずです。

一般的には、Chartオブジェクトのナビゲーションを内蔵しているのが良いと思います。

 
アングル 編の例をご覧になりましたか?
 
Rosh:
バインディングアングルの 例をご覧になりましたか?

ありがとうございます、すでにメッセージを見つけて削除しましたが、あなたの方が早かったです:)

もう一つ質問なのですが、OnTimerでEAが動作するのですが、ウィンドウが次のティックでしか更新されないのですが、これは対処できるのでしょうか?

 
Olegts:

ありがとうございます、すでにメッセージを見つけて削除しましたが、あなたの方が早かったです:)

もう一つ質問なのですが、OnTimerでEAが動作するのですが、ウィンドウが次のティックでしか更新されないのですが、これは対処できるのでしょうか?

チャート上のオブジェクトという意味でのウィンドウ?

ChartRedraw -チャートを 強制的に再描画 します(ほとんどの場合、これで解決するはずです)。

Документация по MQL5: Операции с графиками / ChartRedraw
Документация по MQL5: Операции с графиками / ChartRedraw
  • www.mql5.com
Операции с графиками / ChartRedraw - Документация по MQL5
 
Interesting:

チャート上のオブジェクトという意味でのウィンドウ?

ChartRedraw -グラフを 強制的に再描画 します(おそらくこれで解決するはずです)。

私はChartRedraw(0);を入れて、ウィンドウが正確にゼロと唯一のもので、それは助けにはなりません、オブジェクトは、次のティックの後にのみ更新されますが、Print()は、データの変化を1秒ごとに示しています EventSetTimer(1)。
 
Olegts:
ChartRedraw(0)を入れました。ウィンドウはゼロで1つだけですが、役に立ちません。オブジェクトは次のティックの後にのみ更新されます。Print()は1秒に1回のデータ変更を示します。

それなら、せめてもっと情報が必要だ。

対象物は何ですか?誰がどのように作成するのか(例えば、オブジェクトはフクロウやインジケーターによって作成/変更することができる)?

そして、全般的な状況が非常に曖昧に描かれています。

 
Interesting:

そうなると、最低限、もっと情報が必要です。

対象物は何ですか?誰がどのように作成するのか(例えば、オブジェクトはフクロウが作成/変更することも、七面鳥が作成/変更することもできる)?

そして、全体の状況が非常に曖昧に描かれています。

//+------------------------------------------------------------------+
//|                                                    testClass.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"

//--- input parameters

input int Timer=1;


int Val=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- create timer
   EventSetTimer(Timer);
   int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   int step=0;
   step=step+30; CreateLabel(0,"EUR",CORNER_LEFT_UPPER,"",50,step);
   step=step+30; CreateLabel(0,"GBP",CORNER_LEFT_UPPER,"",50,step);
   
   
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy timer
   EventKillTimer();
   ObjectDelete(0,"EUR");
   ObjectDelete(0,"GBP");
  
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
//void OnTick()
//  {
//---
//   
//  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   Val=Val+1;
   int EUR0=Val,EUR1=Val;
   
   int GBP0=Val,GBP1=Val;

     
   ObjectSetString(0,"EUR",OBJPROP_TEXT,"EUR: "+IntegerToString(EUR0)+" | "+IntegerToString(EUR1));
   ObjectSetString(0,"GBP",OBJPROP_TEXT,"GBP: "+IntegerToString(GBP0)+" | "+IntegerToString(GBP1));

   ChartRedraw(0);
//---
  }
//+------------------------------------------------------------------+

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0);
   ResetLastError();
   if(!ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner))
      Print("Не удалось установить угол привязки для объекта ",
            name,", ошибка ",GetLastError());
   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
   }
 
Olegts:
すべて正常に更新され、値は1秒ごとに変化します。