MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 533

 

Herkese merhaba , işlemlerin geçmişini ekranda görüntülemek için hazır bir komut var mı?

bir anlaşmayı geçmişten bir grafiğe sürüklemeye benzer



işlemlerin geçmişini nasıl gözden geçirip nesneleri atayabilirsiniz, ama bence hazır bir yol var

 
Mickey Moose :

Herkese merhaba , işlemlerin geçmişini ekranda görüntülemek için hazır bir komut var mı?

bir anlaşmayı geçmişten bir grafiğe sürüklemeye benzer

Aynı, sadece kontrol tuşuna basıldığında. Ya Ctrl ya da Shift - hatırlamıyorum - cep telefonundan yazıyorum.
 
Artyom Trishkin :
Aynı, sadece kontrol tuşuna basıldığında. Ya Ctrl ya da Shift - hatırlamıyorum - cep telefonundan yazıyorum.



Bu parçayı ticaret yapmayan robotuma eklemek istiyorum. bir çizelgeye koymak ve ne ve nasıl olduğunu görmek için

çizelgeye koymak ve örneğin bu araçta yılda kaç geyik yetiştirildiğini görmek için
 
Ihor Herasko :

MQL aracılığıyla bu tür bilgileri almanın bir yolu yoktur. WinAPI aracılığıyla yapılan DateTimePricker denetimlerine erişimi kullanmanız gerekir.

Teşekkürler, anladım!

Birisi için yararlı olabilir:

 #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 :

Teşekkürler, anladım!

Birisi için yararlı olabilir:

Sonra bir karşı soru: Test aralığının tarihini neden almanız gerekiyor, nerede kullanışlı olabilir?

 
Artyom Trishkin :

Eğer i ikinin katıysa.

i'nin 2'ye bölümünden kalan bu

Teşekkür ederim. Göstergede mumları 19:00 - 11:00 saatleri arasında hesaplamalardan nasıl hariç tutabilirsiniz?

 
PolarSeaman :

Teşekkür ederim. Göstergede mumları 19:00 - 11:00 saatleri arasında hesaplamalardan nasıl hariç tutabilirsiniz?

Saati izleyin ve belirtilen sınırlar içinde değilse atlayın - aynı şekilde.

Mantık basit: Mağazanın 14:00-15:00 arası öğle yemeği için kapalı olduğunu biliyorsunuz. Saatinize dikkat edin ve öğle yemeği vaktiyse mağazaya gitmeyin. Ve o zaman neden bir sersemlik içinde kalkıyorsun? Fark ne?

 
Merhaba, altında bir koşul oluşturmak istiyorum
0-8 zaman aralığında 5 puan, geri kalan süre 10 puana eşit olacaktır. Ancak bir önceki günden açılan siparişler varsa, 0-8 adım aralığında da 10 puana eşittir.


 
Artyom Trishkin :

Saati izleyin ve belirtilen sınırlar içinde değilse atlayın - aynı şekilde.

Mantık basit: Mağazanın 14:00-15:00 arası öğle yemeği için kapalı olduğunu biliyorsunuz. Saatinize dikkat edin ve öğle yemeği vaktiyse mağazaya gitmeyin. Ve o zaman neden bir sersemlik içinde kalkıyorsun? Fark ne?

Gerçek şu ki, zaman aralığını danışmandaki gibi ayarlarsanız

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

, o zaman gösterge şu anda çalışmayacak ve tarihte, aralıktaki mumları hesaplamalardan hariç tutmam gerekiyor.

 
Tigerfreerun :
Merhaba, altında bir koşul oluşturmak istiyorum
0-8 zaman aralığında 5 puan, kalan süre 10 puana eşit olacaktır. Ancak bir önceki günden açılan siparişler varsa, 0-8 adım zaman aralığında da 10 puana eşittir.


Muhtemelen şöyle:

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