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

 
MakarFX :

Soru 1: Soruyu anlamadım

Seçilen dönemin başlangıcını veya dönemin kendisini almak için program

 
Andrey Sokolov :

Seçilen dönemin başlangıcını veya dönemin kendisini almak için program

Hiçbir şekilde, "OrdersHistoryTotal , müşteri terminaline yüklenen cari hesap geçmişindeki kapatılan ve silinen siparişlerin sayısını verir."
 
Andrey Sokolov :

Seçilen dönemin başlangıcını veya dönemin kendisini almak için program

Bir zamanlar sadece "Geçmiş" sekmesindeki ayarlara bağlı olan süre değil, aynı zamanda sıralama düzeni. Sıralama değişmez hale getirilmiş gibi görünüyor, ancak süre bağımlı kalmış gibi görünüyor. Diğer bir deyişle, ayarlar 12/01/2020 - 12/04/2020 arasındaki geçmişi gösteriyorsa, OrdersHistoryTotal() yalnızca bu dönem için sipariş sayısını döndürür. Ve eğer beynim tamamen kuru değilse, o zaman kapanma zamanına göre değerlendirilir. Açılış saati sayılmaz. Diyelim ki: sipariş 12/02/2020'de açıldı ve kapandı (şimdiye kadar çok iyi tarihler değil, ama yine de), 12/05/2020'de, o zaman 12/01/2020 - 12/04 dönemine girmeyecek /2020.
 
Alexey Viktorov :
Ve eğer beynim tamamen kuru değilse, o zaman kapanma zamanına göre değerlendirilir.

Evet, yalnızca kapatın veya silin

 
Alexey Viktorov . MakarFX , hangi tarihin dikkate alındığını açıkladığınız için teşekkür ederiz. Ama soru aslında bununla ilgili değildi. Diyelim ki orada "geçen ay" dönemi seçildi, o gün hiç işlem olmasa bile bu (seçilen) dönemin başlangıç tarihi programlı olarak nasıl alınır?
 
Andrey Sokolov :
Alexey Viktorov . MakarFX , hangi tarihin dikkate alındığını açıkladığınız için teşekkür ederiz. Ama soru aslında bununla ilgili değildi. Diyelim ki orada "geçen ay" dönemi seçildi, o gün hiç işlem olmasa bile bu (seçilen) dönemin başlangıç tarihi programlı olarak nasıl alınır?
Mümkün değil.
 
Andrey Sokolov :
Alexey Viktorov . MakarFX , hangi tarihin dikkate alındığını açıkladığınız için teşekkür ederiz. Ama soru aslında bununla ilgili değildi. Diyelim ki orada "geçen ay" dönemi seçildi, o gün hiç işlem olmasa bile bu (seçilen) dönemin başlangıç tarihi programlı olarak nasıl alınır?

Dönem için başlangıç tarihi yok, en erken tarihli sipariş var. Hüzün, dürüst olmak gerekirse, çünkü tarihte emir yoksa, o zaman dönemin tarihleri de yoktur. Aslında, her şey.

 
Valeriy Yastremskiy :

Dönem için başlangıç tarihi yok, en erken tarihli sipariş var. Hüzün, dürüst olmak gerekirse, çünkü tarihte emir yoksa, o zaman dönemin tarihleri de yoktur. Aslında, her şey.

bu ayar "günlük büküm" için tasarlanmamıştır - terminali bir kez ayarlayın ve dokunmayın

ticaret sistemlerinin% 99,9'unda, 3 aylık bir geçmiş dönemi, muhtemelen, ayda birkaç on binlerce siparişin olduğu TS hariç - mükemmel bir şekilde çalışacaktır - burada, büyük olasılıkla, 1 aylık bir süre . ortaya çıkarmak

Not: Geniş bir sipariş geçmişine sahip herhangi bir performans kaybı fark etmedim (her şeyin alınabileceği ve bozulabileceği açık)))) ) - ancak 1 aylık bir süre ile. sürprizler mümkün


ZYZY: MT geliştiricileri siparişlerin geçmişini "bükmeyi" mümkün kıldı - kötü! bu fırsatı vermezdi - yine mi kötü?

)))

 
Igor Makanu :

bu ayar "günlük büküm" için tasarlanmamıştır - terminali bir kez ayarlayın ve dokunmayın

ticaret sistemlerinin% 99,9'unda, 3 aylık bir geçmiş dönemi, muhtemelen, ayda birkaç on binlerce siparişin olduğu TS hariç - mükemmel bir şekilde çalışacaktır - burada, büyük olasılıkla, 1 aylık bir süre . ortaya çıkarmak

Not: Geniş bir sipariş geçmişine sahip herhangi bir performans kaybı fark etmedim (her şeyin alınabileceği ve bozulabileceği açık)))) ) - ancak 1 aylık bir süre ile. sürprizler mümkün


ZYZY: MT geliştiricileri siparişlerin geçmişini "bükmeyi" mümkün kıldı - kötü! bu fırsatı vermezdi - yine mi kötü?

)))

Benim yaklaşımım daha karamsar. Geçmiş gibi varsayılan veriler üzerinde analiz yapılamaz, çünkü ya zaten olması gerekir ve bulunması gerekir ve etkili analiz için kendi veri toplamanız gerekir)))) Geçmiş yalnızca operasyonel yönetim içindir.

 

WinAPI kullanarak formdan tarihi çıkarmayı deneyebilirsiniz. Ve yeni bir dönem de sipariş edin.

Dördü için, beşte işler nasıl bilmiyorum.


İşte buldum, birkaç yıl önce şöyle bir şey yaptım:

 #import "user32.dll"
   int GetForegroundWindow();
   int PostMessageA( int hWnd, int msg, int wParam, int lParam);
#import

//загружает всю историю закрытых ордеров
bool DownloadOrderHistory()
   {
   int eHandle=GetForegroundWindow();
   if (eHandle<= 0 ) return ( false );
   return (PostMessageA(eHandle, 0x0111 , 0x8122 , 0 )== 1 );
   }
GetForegroundWindow'u değiştirmek daha iyidir....