포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 590

[삭제]  
Barbarian :

재정의된 가상 메서드 Compare가 CListNode 클래스에서 재정의되는 이유는 무엇입니까?

디버거에서 확인하면 CObject에서 비교가 항상 사용됩니다.


CData 클래스에서 Compare를 재정의해야 합니다.
 
artmedia70 :

기적은 없습니다.

파일 --> 데이터 디렉토리 열기 --> 열리는 창에서 --> MQL4 --> 필요한 폴더가 있습니다. 이것은 이미 300 번 작성되었으며 포럼의 기본 페이지에 기사에 대한 링크가 있습니다. 게으름은 간단합니다.



감사합니다. 솔직히 말해서 제가 뭔가 잘못하고 있는 줄 알았습니다. 이제 모든 것이 명확해졌습니다.
 
스크립트를 실행할 때 조건이 트리거되면 아이콘(레이블)을 넣어야 합니다. 그것을 하는 방법?
 
Forexman77 :
스크립트를 실행할 때 조건이 트리거되면 아이콘(레이블)을 넣어야 합니다. 그것을 하는 방법?
조건이 작동하자마자 - 레이블을 붙이십시오. 분명히.
 
Forexman77 :
스크립트를 실행할 때 조건이 트리거되면 아이콘(레이블)을 넣어야 합니다. 그것을 하는 방법?
아트미디어70 :
조건이 작동하자마자 - 레이블을 붙이십시오. 분명히.

Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.

MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.
 
DiPach :

Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.

MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.

좋은 스크립트, 우리는 거기에서 필요한 기능을 가져옵니다.

여기 있습니다.

 //+------------------------------------------------------------------+
void OnStart ()
  {
 
   if (Signal == Buy_)   //условия
     ArrowBuyCreate( 0 , "ArrowBuy_" +( string ) Time [ 0 ], 0 , Time [ 0 ], Ask );

   if (Signal == Sell_)   //условия
     ArrowSellCreate( 0 , "ArrowSell_" +( string ) Time [ 0 ], 0 , Time [ 0 ], Bid );
   
  }
//+------------------------------------------------------------------+
//====================================================================
//+------------------------------------------------------------------+
//| Создает знак "Buy"                                               |
//+------------------------------------------------------------------+
bool ArrowBuyCreate( const long             chart_ID= 0 ,         // ID графика
                     const string           name= "ArrowBuy" ,   // имя знака
                     const int              sub_window= 0 ,       // номер подокна
                     datetime               time= 0 ,             // время точки привязки
                     double                 price= 0 ,           // цена точки привязки
                     const color            clr= C'3,95,172' ,   // цвет знака
                     const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии (при выделении)
                     const int              width= 1 ,           // размер линии (при выделении)
                     const bool             back= false ,         // на заднем плане
                     const bool             selection= false ,   // выделить для перемещений
                     const bool             hidden= true ,       // скрыт в списке объектов
                     const long             z_order= 0 )         // приоритет на нажатие мышью
  {
//--- установим координаты точки привязки, если они не заданы
//   ChangeArrowEmptyPoint(time,price);
//--- сбросим значение ошибки
   ResetLastError ();
//--- создадим знак
   if (! ObjectCreate (chart_ID,name, OBJ_ARROW_BUY ,sub_window,time,price))
     {
       Print ( __FUNCTION__ ,
             ": не удалось создать знак \"Buy\"! Код ошибки = " ,GetLastError());
       return ( false );
     }
//--- установим цвет знака
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
//--- установим стиль линии (при выделении)
   ObjectSetInteger (chart_ID,name, OBJPROP_STYLE ,style);
//--- установим размер линии (при выделении)
   ObjectSetInteger (chart_ID,name, OBJPROP_WIDTH ,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back);
//--- включим (true) или отключим (false) режим перемещения знака мышью
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden);
//--- установи приоритет на получение события нажатия мыши на графике
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order);
//--- успешное выполнение
   return ( true );
  }
//+------------------------------------------------------------------+
//| Создает знак "Sell"                                              |
//+------------------------------------------------------------------+
bool ArrowSellCreate( const long             chart_ID= 0 ,         // ID графика
                     const string           name= "ArrowSell" ,   // имя знака
                     const int              sub_window= 0 ,       // номер подокна
                     datetime               time= 0 ,             // время точки привязки
                     double                 price= 0 ,           // цена точки привязки
                     const color            clr= C'225,68,29' ,   // цвет знака
                     const ENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии (при выделении)
                     const int              width= 1 ,           // размер линии (при выделении)
                     const bool             back= false ,         // на заднем плане
                     const bool             selection= false ,   // выделить для перемещений
                     const bool             hidden= true ,       // скрыт в списке объектов
                     const long             z_order= 0 )         // приоритет на нажатие мышью
  {
//--- установим координаты точки привязки, если они не заданы
//   ChangeArrowEmptyPoint(time,price);
//--- сбросим значение ошибки
   ResetLastError ();
//--- создадим знак
   if (! ObjectCreate (chart_ID,name, OBJ_ARROW_SELL ,sub_window,time,price))
     {
       Print ( __FUNCTION__ ,
             ": не удалось создать знак \"Sell\"! Код ошибки = " ,GetLastError());
       return ( false );
     }
//--- установим цвет знака
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
//--- установим стиль линии (при выделении)
   ObjectSetInteger (chart_ID,name, OBJPROP_STYLE ,style);
//--- установим размер линии (при выделении)
   ObjectSetInteger (chart_ID,name, OBJPROP_WIDTH ,width);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger (chart_ID,name, OBJPROP_BACK ,back);
//--- включим (true) или отключим (false) режим перемещения знака мышью
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTABLE ,selection);
   ObjectSetInteger (chart_ID,name, OBJPROP_SELECTED ,selection);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN ,hidden);
//--- установим приоритет на получение события нажатия мыши на графике
   ObjectSetInteger (chart_ID,name, OBJPROP_ZORDER ,z_order);
//--- успешное выполнение
   return ( true );
  }
 

동지들이여, 테스트 모드에서 * .txt 파일을 열려고 할 때 오류가 발생하는 이유를 알려주십시오.

이것은 완벽하게 작동합니다.

Handle= FileOpen (File_Name, FILE_CSV | FILE_READ , ";" ); 

그러나 이것은 작동하지 않습니다.

Handle2= FileOpen (File_Name2, FILE_TXT | FILE_READ );

오류 5004, 어떤 이유로 함수 FileIsExist (File_Name2)가 false(wtf???)를 반환합니다.

두 파일(csv 및 txt 모두)은 tester\files 폴더(디스크 D의 터미널)에 있으며 파일 이름은 File_Name 및 File_Name2 변수 에 해당합니다. 여러 번 확인했습니다.

 
DiPach :

Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.

MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.

아니, 디나, 내가 말한 것을 정확히 의미했습니다.)

그는 "구체적인 질문이 무엇인지, 구체적인 답은 무엇인가"라고 암시했다. 오늘은 나쁩니다 :)

 
artmedia70 :

오늘은 나쁩니다 :)

그럼 저는 잠잠해집니다 :) 오늘은 실수로 뜨거운 손에 넘어가지 않기 위해서입니다. :)

 
DiPach :

그럼 저는 잠잠해집니다 :) 오늘은 실수로 뜨거운 손에 넘어가지 않기 위해서입니다. :)

그건 아니에요 ... 난 항상 여자를 사랑 해요.