MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 285

 
 
buyanov:

コンマが期待されている "というメッセージが出ました。


int WhatType()

//>>>>>>>>>>>>>>>>>>>>>

{



Alert("beg  WhatType()");



if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick);

Alert(NextTick);



Alert("NextType=",NextType);

OpPrice=OrderOpenPrice();

ClPrice=OrderClosePrice();



if(ClPrice>OpPrice)CurType=OP_BUY;

else CurType=OP_SELL;



Alert("CurType=",CurType);



Alert("end WhatType()");

//>>>>>>>>>>>>>>>>>>>>>>>>>

}//Alert("end int WhatType()");


コンパイラはどの行でエラーを出すのでしょうか?

 

こんにちは。

自由に動かしたいラインを作った。今のところ、線をクリックしないと動かせません。ダブルクリックせずに行を移動できるようにするにはどうしたらいいですか?

double startL;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
startL=Bid;

SetHLine(clrAqua, "", startL, STYLE_SOLID, 5);    
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }

color array_color[5]={clrRed,clrAliceBlue,clrAqua,clrRoyalBlue,clrCrimson};
void OnChartEvent(const int    id,
                  const long   &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5]);
     }
  }
    

void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+
 
Nauris Zukas:

こんにちは。

自由に動かしたいラインを作った。今のところ、線をクリックしないと動かせません。ダブルクリックせずに行を移動できるようにするにはどうしたらいいですか?

ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
実は、かなり古いデザインを書いていたんですね
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);


ありがとうございます。でも、何かうまくいきませんでした。こういう言い方をすると、もしかしたら何かが間違っているのでは?

   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTED,true);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5],true);     
     }
ヴィタリー・ムジチェンコ
実は、かなり古い構造を書いているんですね。

フォーラムを検索してみると、クラスを使ったコンストラクションを見かけますが、私はクラスが苦手なので、まずは一番シンプルなもの(見た目)から始めたいと思いました。

 
Nauris Zukas:


ありがとうございます。でも、何かうまくいきませんでした。私はこの機能をこのように置きました、何か間違っているのでは?

フォーラムを検索すると、クラスを使ったコンストラクションがありましたが、私はクラスについて知らないので、一番シンプルなものから始めたいと思いました(見栄え的に)。

OBJPROP_SELECTABLE とのペアがあるはずです。

   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTED,true);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5],true);     
     }
 
Alexey Viktorov:

OBJPROP_SELECTABLEと 対になっている必要があります。

わからない、何かがうまくいっていない。ダブルクリックした後だけ動いて、線が黒くなる。

 
Nauris Zukas:

なんか、うまくいかないんだよなぁ。ダブルクリックした後だけ動いて、線が黒くなる。

では、この2行の前にもう1行追加してください。

ObjectSetInteger(0, sparam, OBJPROP_HIDDEN, false);
 
Alexey Viktorov:

では、その2行の前にもう1行追加してください。

うまくいかなかった、コードに間違いが あるのでは?

ファイル:
 
buyanov:

コンマが期待されている "というメッセージが表示されましたが、意味がわかりません、開発者に連絡 するべきでしょうか?


int WhatType()

{


Alert("beg WhatType()");


if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick).If(OrderSelect(NextTick,SELECT_BY_TICKET)==true);

Alert(NextTick)を表示します。


Alert("NextType=",NextType).NextTypeを指定します。

OpPrice=OrderOpenPrice()です。

ClPrice=OrderClosePrice()。


if(ClPrice>OpPrice)CurType=OP_BUY;

else CurType=OP_SELL;


Alert("CurType=",CurType)。


Alert("end WhatType()");

}//Alert("end int WhatType()")。

MetaEditorに貼り付けて、少しいじったところ、エラーは出ませんでした。

void WhatType()
//>>>>>>>>>>>>>>>>>>>>>
{
Alert("beg  WhatType()");
int NextTick=1, NextType=1;
if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick);
Alert(NextTick);
Alert("NextType=",NextType);
double OpPrice=OrderOpenPrice();
double ClPrice=OrderClosePrice();
int CurType;
if(ClPrice>OpPrice)CurType=OP_BUY;
else CurType=OP_SELL;
Alert("CurType=",CurType);
Alert("end WhatType()");
//>>>>>>>>>>>>>>>>>>>>>>>>>
}//Alert("end int WhatType()");