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

 

안녕하세요 여러분, 화면 에 거래 내역 을 표시하는 기성품 명령이 있습니까?

거래 내역에서 차트로 드래그하는 것과 유사



어떻게 거래 내역을 살펴보고 객체를 할당할 수 있지만 이미 만들어진 방법이 있다고 생각합니다.

 
Mickey Moose :

안녕하세요 여러분, 화면 에 거래 내역 을 표시하는 기성품 명령이 있습니까?

거래 내역에서 차트로 드래그하는 것과 유사

컨트롤 키를 눌렀을 때만 동일합니다. Ctrl 또는 Shift - 기억나지 않음 - 모바일에서 작성 중입니다.
 
Artyom Trishkin :
컨트롤 키를 눌렀을 때만 동일합니다. Ctrl 또는 Shift - 기억나지 않음 - 모바일에서 작성 중입니다.



이 조각을 내 비 거래 로봇에 만들고 싶습니다. 차트를 작성하고 무엇을 어떻게 볼

차트에 올려놓고 예를 들어 이 도구에서 연간 몇 마리의 큰사슴이 자라는지 확인하려면
 
Ihor Herasko :

MQL을 통해 이러한 정보를 얻을 수 있는 방법은 없습니다. WinAPI를 통해 수행되는 DateTimePricker 컨트롤에 대한 액세스를 사용해야 합니다.

고마워, 그것을 알아 냈어!

누군가에게 유용할 수 있습니다.

 #import "user32.dll"
   int       SendMessageA( int hWnd, int Msg, int wParam, int &lParam[]);
#import

#define DTM_GETSYSTEMTIME 0x1001

int SystemTime[ 4 ];

.....

//+------------------------------------------------------------------+
//|          Функция преобразования в формат datetime                |
//+------------------------------------------------------------------+
datetime FormatDateTime( int &DT[]){
   string sMonth,sDay,sHour,sMin,sSec;
       int nYear,nMonth,nDay,nHour,nMin,nSec;   
      
   //---- parse date and time from array
         nYear=DT[ 0 ]& 0x0000FFFF ;
         nMonth=DT[ 0 ]>> 16 ;
         nDay=DT[ 1 ]>> 16 ;
         nHour=DT[ 2 ]& 0x0000FFFF ;
         nMin=DT[ 2 ]>> 16 ;
         nSec=DT[ 3 ]& 0x0000FFFF ;
         
   //---- format date and time items
         sMonth= 100 +nMonth;
         sMonth= StringSubstr (sMonth, 1 );
         sDay= 100 +nDay;
         sDay= StringSubstr (sDay, 1 );
         sHour= 100 +nHour;
         sHour= StringSubstr (sHour, 1 );
         sMin= 100 +nMin;
         sMin= StringSubstr (sMin, 1 );
         sSec= 100 +nSec;
         sSec= StringSubstr (sSec, 1 );

   //----
         return ( StrToTime ( StringConcatenate (nYear, "." ,sMonth, "." ,sDay, " " ,sHour, ":" ,sMin, ":" ,sSec)));
  }
  
void OnInit ( void ){
   if ( IsTesting ()){
    SendMessageA( 0x0000000000010288 ,DTM_GETSYSTEMTIME, 0 , SystemTime);
     Print ( "date From: " , TimeToString (FormatDateTime(SystemTime)));
    
    SendMessageA( 0x000000000001028E ,DTM_GETSYSTEMTIME, 0 , SystemTime);
     Print ( "date To: " , TimeToString (FormatDateTime(SystemTime)));
  }
  .....
}

void OnTick ( void ){
  .....
}
//+------------------------------------------------------------------+
 
mrumskiy :

고마워, 그것을 알아 냈어!

누군가에게 유용할 수 있습니다.

그런 다음 반대 질문: 테스트 간격 날짜를 알아야 하는 이유는 무엇입니까? 어디에서 유용할 수 있습니까?

 
Artyom Trishkin :

i가 2의 배수인 경우.

이것은 i를 2 로 나눈 나머지입니다.

고맙습니다. 표시기에서 19:00에서 11:00까지 양초를 계산에서 제외하는 방법은 무엇입니까?

 
PolarSeaman :

고맙습니다. 표시기에서 19:00에서 11:00까지 양초를 계산에서 제외하는 방법은 무엇입니까?

시간을 보고 지정된 제한 내에 있지 않으면 건너뜁니다. 동일합니다.

논리는 간단합니다. 14:00부터 15:00까지 가게는 점심 시간에 문을 닫습니다. 시계를 조심하고 점심 시간이라면 가게에 가지 마십시오. 그리고 왜 당신은 혼수 상태에서 일어나고 있습니까? 차이점은 무엇입니까?

 
안녕하세요, 나는 다음과 같은 조건을 만들고 싶습니다.
기간 0-8 단계는 5 포인트와 같고 나머지 시간은 10입니다. 그러나 전날에 개설된 주문이 있는 경우 기간 0-8 단계도 10 포인트와 같습니다.


 
Artyom Trishkin :

시간을 보고 지정된 제한 내에 있지 않으면 건너뜁니다. 동일합니다.

논리는 간단합니다. 14:00부터 15:00까지 가게는 점심 시간에 문을 닫습니다. 시계를 조심하고 점심 시간이면 가게에 가지 마십시오. 그리고 왜 당신은 혼수 상태에서 일어나고 있습니까? 차이점은 무엇입니까?

사실은 어드바이저에서와 같이 시간 간격을 설정하면

 if ( Hour ()>= 17 && Hour ()<= 11 ) return ( 0 );

, 그러면 표시기가 현재 작동하지 않으며 계산에서 간격에있는 양초를 역사에서 제외해야합니다.

 
Tigerfreerun :
안녕하세요, 나는 다음과 같은 조건을 만들고 싶습니다.
기간 0-8 단계는 5 포인트와 같고 나머지 시간은 10입니다. 그러나 전날에 열린 주문이 있는 경우 기간 0-8 단계도 10 포인트와 같습니다.


아마도 다음과 같이:

   if ( Hour ()>= 0 && Hour ()<= 8 && OrdersTotal ()== 0 )step = 5 ; else step = 10 ;