MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 746

 

얘들아, 나는 매일의 시작에 실행되어야 하는 OnTimer() 함수 를 가지고 있고, 실행의 특정 결과에서 어드바이저는 잠자기 상태가 되어야 한다. OnTimer() 함수의 다음 실행 시간을 다음 날 시작으로 설정하고 그 후 동일한 순간(예: -1초)까지 어드바이저를 절전 모드로 전환하면 시간 카운터가 계속 실행되고 1초 후에 깨어나면 기능이 작동합니까?


추신: 나는 여전히 한 가지 질문에 대해 약간 걱정하고 있습니다. 어떻게 문서를 그렇게 형편없는 스타일로 작성할 수 있습니까? 내 인생에서 "프로그래밍 랩의 학생" 외에는 아무도 본 적이 없으며 mql로 작성하는 사람들은 다음과 같은 내용을 제공합니다.

for(int x=0;x<10;x++)

{

}


사이트가 어떻게든 고정이 됩니다. 대괄호에 대해, 대괄호가 탭으로 배치된다는 것, 즉 브래킷이 수직으로 가는 위치를 직관적으로 추적할 수 없다는 사실을 말하는 것입니다.

 
ukrop1203 :

얘들아, 나는 매일의 시작에 실행되어야 하는 OnTimer() 함수 를 가지고 있고, 실행의 특정 결과에서 어드바이저는 잠자기 상태가 되어야 한다. OnTimer() 함수의 다음 실행 시간을 다음 날 시작으로 설정하고 그 후 동일한 순간(예: -1초)까지 어드바이저를 절전 모드로 전환하면 시간 카운터가 계속 실행되고 1초 후에 깨어나면 기능이 작동합니까?


추신: 나는 여전히 한 가지 질문에 대해 약간 걱정하고 있습니다. 어떻게 문서가 그런 비참한 스타일로 컴파일 될 수 있습니까? 내 인생에서 "프로그래밍 랩의 학생" 외에는 아무도 본 적이 없으며 mql로 작성하는 사람들은 다음과 같은 내용을 제공합니다.

for(int x=0;x<10;x++)

{

}


사이트가 어떻게든 고정이 됩니다. 대괄호에 대해, 대괄호가 탭으로 배치된다는 것, 즉 브래킷이 수직으로 가는 위치를 직관적으로 추적할 수 없다는 사실을 말하는 것입니다.

Sleep을 넣으면 지정된 시간 동안 해당 기능이 상승합니다. 5분 동안 절전 모드로 설정하고 OnTimer를 10초마다 인쇄하도록 설정합니다. 이것은 귀하의 질문에 대한 답변이 될 것입니다. 한 기능의 결과로 다른 기능에서 기본 알고리즘의 작동 모드를 결정하는 키를 간단히 변경할 수 있다면 왜 절전 모드로 전환합니까?

 

안녕하세요!


MT5에 대한 질문입니다. 텍스트 레이블(숫자)은 가는 회색 선으로 배치됩니다. 점은 MT5의 실수를 내 머리 속에 시각화하기 위한 제어 버퍼입니다....


OBJ_TEXT 에 대한 설명서와 비교하면 너무 ....

 //| Вывод текстовой метки с размером интервала "тела" свечи          |
//+------------------------------------------------------------------+
void LabText( const long   chart_ID= 0 ,
             string       name= "Text" , 
             string       text= "text" , // ТЕКСТ ДЛЯ ВЫВОДА НА ГРАФИК
             datetime     time= 0 , 
             double       price= 0 ,
             int          fontsizes= 0 ,
             color        clr= 0 )
  {
   if ( ObjectFind (chart_ID,name)!= 0 )
     {
   ObjectCreate (chart_ID,name, OBJ_TEXT , 0 , 0 , 0 );
   ObjectSetInteger (chart_ID,name, OBJPROP_TIME ,time);
   ObjectSetDouble (chart_ID,name, OBJPROP_PRICE ,price);
//--- установим угол наклона текста 
   ObjectSetDouble (chart_ID,name, OBJPROP_ANGLE , 0.0 ); 
//--- установим способ привязки 
   ObjectSetInteger (chart_ID,name, OBJPROP_ANCHOR , ANCHOR_LEFT ); 
   ObjectSetInteger (chart_ID,name, OBJPROP_COLOR ,clr);
   ObjectSetString (chart_ID,name, OBJPROP_TEXT ,text);
   ObjectSetString (chart_ID,name, OBJPROP_FONT , "Arial" );
   ObjectSetInteger (chart_ID,name, OBJPROP_FONTSIZE ,fontsizes);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов 
   ObjectSetInteger (chart_ID,name, OBJPROP_HIDDEN , true );
     }
  }

********************** В КОДЕ *********************************
    

    double  LW=iLow(NULL,PERIOD_H1,i);  //   ЦИКЛ I

                        *********** 

   LabText(0,"NAME  ("+string(i)+")",DoubleToString(bbull[i],0),iTime(NULL,PERIOD_H1,i),
              LW-(8*_Point),12,clrWhite);
   ExtLineBuffer1[i]=iHigh(NULL,PERIOD_H1,i);


 
kopeyka2 :

안녕하세요!


MT5에 대한 질문입니다. 텍스트 레이블(숫자)은 가는 회색 선으로 배치됩니다. 점은 MT5의 실수를 내 머리 속에 시각화하기 위한 제어 버퍼입니다....


OBJ_TEXT 에 대한 설명서와 비교하면 너무 ....


fontsizes 매개변수에 전달하는 내용을 확인하세요.

 
Artyom Trishkin :

fontsizes 매개변수에 전달하는 내용을 확인하세요.

감사합니다!!! 전역 변수 의 fontsizes에 갇혀 있습니다. void LabText 함수에서 설정합니다. 벌었다...


 

템플릿을 적용하면 그려진 모든 선이 제거되므로 스크립트를 사용하여 차트에 표시기 를 추가 및 제거하고 싶습니다.


 #property indicator_label1    "MA8"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrBlue
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1


int indicator_handle;

void OnStart ()
  {

   indicator_handle = iMA ( 0 , 0 , 8 , 0 , MODE_EMA , PRICE_CLOSE );

   Print (indicator_handle);

   //ChartIndicatorAdd(0,0,indicator_handle);

   
  }

나는 대답을 얻는다

2019.01.24 19:14:53.633 add_ind (EURJPY,H1) '이동 평균' 표시기를 로드할 수 없습니다. [4302]

2019.01.24 19:14:53.633 add_ind (EURJPY,H1) -하나


코드가 오류 없이 컴파일되지만.


 
psyman :

템플릿을 적용하면 그려진 모든 선이 제거되므로 스크립트를 사용하여 차트에 표시기 를 추가 및 제거하고 싶습니다.


나는 대답을 얻는다

2019.01.24 19:14:53.633 add_ind (EURJPY,H1) '이동 평균' 표시기를 로드할 수 없습니다. [4302]

2019.01.24 19:14:53.633 add_ind (EURJPY,H1) -하나


코드가 오류 없이 컴파일되지만.


ERR_MARKET_NOT_SELECTED

4302

MarketWatch에서 선택되지 않은 기호


기호 이름 대신 0을 넣는 이유는 무엇입니까? 현재 것을 원하면 NULL 또는 그 이름(예: "EURUSD")을 작성해야 합니다.

아이마

이동 평균 표시기의 핸들을 반환합니다. 단 하나의 버퍼입니다.

int iMA (
                                 기호 , // 기호 이름
    ENUM_TIMEFRAMES        기간 , // 기간
    정수                                   ma_period , // 평균 주기
    정수                                   ma_shift , // 표시기의 수평 이동
    ENUM_MA_METHOD         ma_method , // 스무딩 유형
    ENUM_APPLIED_PRICE    적용 가격    // 가격 유형 또는 핸들
);

옵션

기호

【인】 지표가 계산되는 데이터의 계측기의 기호 이름입니다. NULL 은 현재 문자를 의미합니다.

기간

【인】 기간 값은 ENUM_TIMEFRAMES 열거형 값 중 하나일 수 있으며 0은 현재 시간 프레임을 의미합니다.

ma_period

【인】 이동 평균을 계산하기 위한 평균화 기간입니다.

ma_shift

【인】 가격 차트를 기준으로 한 표시기 이동입니다.

ma_method

【인】 평균화 방법. ENUM_MA_METHOD 값 중 하나일 수 있습니다.

적용 가격

【인】 사용된 가격입니다. ENUM_APPLIED_PRICE 가격 상수 또는 다른 표시기 핸들 중 하나일 수 있습니다.

반환 값

실패한 경우 INVALID_HANDLE반환 하는 지정된 기술 표시기의 핸들을 반환합니다. IndicatorRelease() 함수는 이 표시기의 핸들이 전달되는 더 이상 사용되지 않는 표시기에서 컴퓨터 메모리를 해제하는 데 사용됩니다.

 
안녕하세요, MA 핸들의 어레이가 정상 가격을 반환하도록 하는 방법을 알려주세요. 예상대로 8이 아닌 소수점 이하 5자리를 의미합니다.
 int OnInit ()
  {
 ima1_handle        = iMA ( Symbol (), 0 , 14 , 0 , MODE_EMA , PRICE_CLOSE );
 ima2_handle        =   iMA ( Symbol (), 0 , 64 , 0 , MODE_EMA , PRICE_CLOSE );               //хендл
 Stoch_handle       = iStochastic ( Symbol (), 0 , 20 , 15 , 15 , MODE_EMA , STO_CLOSECLOSE ); //хендл
 ATR_handle         = iATR         ( Symbol (), 0 , 21 );                               //хендл

   if ( Digits == 3 || Digits == 5 )
     {
      Slippage*= 10 ;
      TrailingStop *= 10 ;
      TrailingStep *= 10 ;
     }
   return ( 0 );
  }
void OnDeinit ( const int reason)
  {

  }

void OnTick ()
  { 
     double ima1_massiv [];                                           //динамический массив для быстрой машки
     ArraySetAsSeries (ima1_massiv, true );   
     int ima_count1 = CopyBuffer (ima1_handle, 0 , 0 , 2 ,ima1_massiv);     //скопировал данные из 2х буферов быстрой машки
     //double ima1_normal = NormalizeDouble(ima1_massiv[0], Digits);
     string ima1_massiv_str0 = DoubleToString (ima1_massiv[ 0 ]);
     string ima1_massiv_str1 = DoubleToString (ima1_massiv[ 1 ]);
     printf ( "сегодня = " + ima1_massiv_str0 + " вчера = " + ima1_massiv_str1);  
    
  }    
mt5 언어
 
Sergey Lobzankin :
안녕하세요, MA 핸들의 어레이가 정상 가격을 반환하도록 하는 방법을 알려주십시오. 즉, 8이 아닌 소수점 이하 5자리여야 합니다.
 if ( Digits == 3 || Digits == 5 )
     {
      Slippage*= 10 ;
      TrailingStop *= 10 ;
      TrailingStep *= 10 ;
     }
   return ( 0 );

시원한)

 double normalMA= NormalizeDouble (MA,_Digits);    
 

안녕하세요, MA 핸들의 어레이가 정상 가격을 반환하도록 하는 방법을 알려주세요. 예상대로 8이 아닌 소수점 이하 5자리를 의미합니다.

mt5 언어

mt5의 DoubleToStr이 없습니다. DoubleToString() ; 하지만 도움이 되지 않는다
DoubleToStr - Преобразование данных - Справочник MQL4
DoubleToStr - Преобразование данных - Справочник MQL4
  • docs.mql4.com
DoubleToStr - Преобразование данных - Справочник MQL4
사유: