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 :

뭔가 작동하지 않는지 모르겠습니다. 더블 클릭 후에만 이동하고 선이 검은색으로 바뀝니다.

그럼 이 두 줄 앞에 더 추가하세요.

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

그럼 이 두 줄 앞에 더 추가하세요.

도움이 되지 않았습니까? 코드에 버그가 있습니까?

파일:
 
buyanov :

"쉼표가 필요합니다"라는 메시지를 받았지만 이것이 무엇을 의미하는지 명확하지 않습니다 . 개발자에게 연락할 가치가 있습니까?


정수 유형()

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

{


Alert("WhatType()");


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

경고(NextTick);


경고("다음 유형=",다음 유형);

OpPrice=OrderOpenPrice();

ClPrice=OrderClosePrice();


if(ClPrice>OpPrice)CurType=OP_BUY;

그렇지 않으면 CurType=OP_SELL;


경고("CurType=",CurType);


Alert("WhatType() 종료");

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

}//Alert("끝 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()");