Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.
MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.
좋은 스크립트, 우리는 거기에서 필요한 기능을 가져옵니다.
여기 있습니다.
//+------------------------------------------------------------------+voidOnStart ()
{
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( constlong chart_ID= 0 , // ID графикаconststring name= "ArrowBuy" , // имя знакаconstint sub_window= 0 , // номер подокнаdatetime time= 0 , // время точки привязкиdouble price= 0 , // цена точки привязкиconstcolor clr= C'3,95,172' , // цвет знакаconstENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии (при выделении)constint width= 1 , // размер линии (при выделении)constbool back= false , // на заднем планеconstbool selection= false , // выделить для перемещенийconstbool hidden= true , // скрыт в списке объектовconstlong 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( constlong chart_ID= 0 , // ID графикаconststring name= "ArrowSell" , // имя знакаconstint sub_window= 0 , // номер подокнаdatetime time= 0 , // время точки привязкиdouble price= 0 , // цена точки привязкиconstcolor clr= C'225,68,29' , // цвет знакаconstENUM_LINE_STYLE style= STYLE_SOLID , // стиль линии (при выделении)constint width= 1 , // размер линии (при выделении)constbool back= false , // на заднем планеconstbool selection= false , // выделить для перемещенийconstbool hidden= true , // скрыт в списке объектовconstlong 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 );
}
재정의된 가상 메서드 Compare가 CListNode 클래스에서 재정의되는 이유는 무엇입니까?
디버거에서 확인하면 CObject에서 비교가 항상 사용됩니다.CData 클래스에서 Compare를 재정의해야 합니다.
기적은 없습니다.
파일 --> 데이터 디렉토리 열기 --> 열리는 창에서 --> MQL4 --> 필요한 폴더가 있습니다. 이것은 이미 300 번 작성되었으며 포럼의 기본 페이지에 기사에 대한 링크가 있습니다. 게으름은 간단합니다.
감사합니다. 솔직히 말해서 제가 뭔가 잘못하고 있는 줄 알았습니다. 이제 모든 것이 명확해졌습니다.
스크립트를 실행할 때 조건이 트리거되면 아이콘(레이블)을 넣어야 합니다. 그것을 하는 방법?
스크립트를 실행할 때 조건이 트리거되면 아이콘(레이블)을 넣어야 합니다. 그것을 하는 방법?
조건이 작동하자마자 - 레이블을 붙이십시오. 분명히.
Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.
MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.
MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.좋은 스크립트, 우리는 거기에서 필요한 기능을 가져옵니다.
여기 있습니다.
동지들이여, 테스트 모드에서 * .txt 파일을 열려고 할 때 오류가 발생하는 이유를 알려주십시오.
이것은 완벽하게 작동합니다.
그러나 이것은 작동하지 않습니다.
오류 5004, 어떤 이유로 함수 FileIsExist (File_Name2)가 false(wtf???)를 반환합니다.
두 파일(csv 및 txt 모두)은 tester\files 폴더(디스크 D의 터미널)에 있으며 파일 이름은 File_Name 및 File_Name2 변수 에 해당합니다. 여러 번 확인했습니다.
Artyom은 "... 조건이 작동함 - 레이블을 넣습니다."를 의미하며, 이는 조건이 트리거될 때 스크립트 코드에서 아이콘(레이블)을 설정하는 것을 의미합니다.
MQL4 언어 참조에는 아이콘 생성을 위한 스크립트의 아주 좋은 예가 있습니다. 예를 들어, 이 스크립트 는 차트에서 "구매" 아이콘을 만들고 이동합니다.아니, 디나, 내가 말한 것을 정확히 의미했습니다.)
그는 "구체적인 질문이 무엇인지, 구체적인 답은 무엇인가"라고 암시했다. 오늘은 나쁩니다 :)
오늘은 나쁩니다 :)
그럼 저는 잠잠해집니다 :) 오늘은 실수로 뜨거운 손에 넘어가지 않기 위해서입니다. :)
그럼 저는 잠잠해집니다 :) 오늘은 실수로 뜨거운 손에 넘어가지 않기 위해서입니다. :)