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

 
Vitaly Muzichenko # :

Puan değeri dikkate alınmalıdır.

Kodu verebilirim, ancak anlaşılması uzun zaman alacak, büyük, ayrıca marj için mümkün olan maksimum lotu da hesaba katıyor

Hadi ama ustalaşamazsam soru sorarım))) Tabii ki bir puanın maliyetini de hesaba katmanız gerekiyor ve formül 2 adımda değil. Şartları tam olarak anlamakta güçlük çekiyorum ve varsayımların doğruluğunu test etmek zaman alıyor))) Sözleşmenin maliyeti = hesaplanan gün için bir lotun para olarak maliyeti)))

 

İyi günler, lütfen bana değeri sabitler listesinden metin biçiminde nasıl döndüreceğimi söyleyin.

Örneğin, HistoryDealGetInteger işlevi, bir olay istendiğinde ENUM_DEAL_TYPE listesinden bir int değeri döndürür. Döndürülen numaradan "DEAL_TYPE_CREDIT - kredi tahakkuku" bilgisi nasıl alınır. Daha sonra hata ayıklamadan sonra elbette bu değere artık ihtiyaç kalmayacak, olayı işlemek için int yeterli olacaktır ancak hata ayıklama sırasında işlevin döndürdüğü 3 veya 5 sayılarının ne anlama geldiği hiç açık değildir.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Свойства сделок - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Кирилл Якимов # :

İyi günler, lütfen bana değeri sabitler listesinden metin biçiminde nasıl döndüreceğimi söyleyin.

Örneğin, HistoryDealGetInteger işlevi, bir olay istendiğinde ENUM_DEAL_TYPE listesinden bir int değeri döndürür. Döndürülen numaradan "DEAL_TYPE_CREDIT - kredi tahakkuku" bilgisi nasıl alınır. Daha sonra hata ayıklamadan sonra elbette bu değere artık ihtiyaç kalmayacak, olayı işlemek için int yeterli olacaktır ancak hata ayıklama sırasında işlevin döndürdüğü 3 veya 5 sayılarının ne anlama geldiği hiç açık değildir.

string s = EnumToString((ENUM_DEAL_TYPE) x)

 
Maxim Kuznetsov # :

string s = EnumToString((ENUM_DEAL_TYPE) x)

Çok teşekkürler, yardımcı oldu.
 

Lütfen bana nasıl çözüleceğini söyle:

1) Geçmişi yüklemedim, online işlem sırasında çizelge penceresine 70.000 dakikalık barlar yüklenmeyi başardı. Test cihazında bir danışman başlatıyorum, her ihtimale karşı, belirli bir model için minimum çubuk sayısını kaydettim ve bana gömülü ifadeyle "analiz için yeterli çubuk yok" yanıtını verdi. iBars yazdırıyorum , 1200 bar yazıyor. Yüklenen geçmiş (8.000.000 bar). Penceredeki ve geçmişteki "99999999999" ayarlarında yeniden başlatıldı. Yine "yeterli tarih yok" yazıyor. iBar'ları tekrar 1200 yazdırıyorum. Nedir ve nasıl çözülür?

2) Çoklu para birimi analizinde, mevcut grafikteki teklifler aniden donarsa ve OnTick bir çeke neden olmazsa, göstergeyi diğer döviz çiftlerinde gelen yeni keneleri kaçırmamaya nasıl zorlayabilirim? OnTimer'ı denedim, ancak test cihazında çalışmıyor

 
Bu komut dosyasında, dizi boyutunu artırdıktan sonra yeni hücrelerin hangi yönde göründüğünü anlamak için farklı dizin oluşturma yönlerine sahip dinamik dizileri yeniden boyutlandırmayı deniyorum.
 void OnStart ()
  {
   
   int a[], b[], size = 5 , new_size = size + 5 ;
   
   if ( ArraySize ( a ) != size )
     ArrayResize ( a, size, 0 );
   
   if ( ArraySize ( b ) != size )
     ArrayResize ( b, size, 0 );
   
   if ( ArrayGetAsSeries ( a ) )
     ArraySetAsSeries ( a, false );
   
   if ( ! ArrayGetAsSeries ( b ) )
     ArraySetAsSeries ( b, true );
   
   for ( int i = 0 ; i < size; i++ )
     {
      a[i] = i;
      b[i] = i;
     };
   
   ArrayResize ( a, new_size, 0 );
   ArrayResize ( b, new_size, 0 );
   
   for ( int i = 0 ; i < new_size; i++ )
     {
       Alert ( "a" , i, " " , a[i] );
       Alert ( "b" , i, " " , b[i] );
       Alert ( " " );
     };
   
  }

Ve işte sonuç


Boyut artırıldıktan sonra b[] dizisinin (ters indekslemeye sahip) değerlerinin bir şekilde yansıtıldığı ortaya çıktı.

Niye ya? Bir şey mi kaçırdım yoksa bir hata mı yaptım?
 
Alexandr Sokolov dizin oluşturma yönlerine sahip dinamik dizileri yeniden boyutlandırmayı deniyorum.

Ve işte sonuç


Boyut artırıldıktan sonra b[] dizisinin (ters indekslemeye sahip) değerlerinin bir şekilde yansıtıldığı ortaya çıktı.

Niye ya? Bir şey mi kaçırdım yoksa bir hata mı yaptım?

Her durumda, dizinin yeni hücrelerindeki herhangi bir değere güvenemeyiz - bunlar herhangi bir çöp içerebilen başlatılmamış değişkenlerdir.

 
Alexandr Sokolov dizin oluşturma yönlerine sahip dinamik dizileri yeniden boyutlandırmayı deniyorum.

Ve işte sonuç


Boyut artırıldıktan sonra b[] dizisinin (ters indekslemeye sahip) değerlerinin bir şekilde yansıtıldığı ortaya çıktı.

Niye ya? Bir şey mi kaçırdım yoksa bir hata mı yaptım?

Doldurduktan sonra diziyi çevirmeniz gerekir.

 
JRandomTrader # :

Her durumda, dizinin yeni hücrelerindeki herhangi bir değere güvenemeyiz - bunlar herhangi bir çöp içerebilen başlatılmamış değişkenlerdir.

Doğru ama 2 tane var
1) Spekülerlik, sadece benim örneğimde olduğu gibi değil, diğer boyutlarda da gözlemlenir - 5
2) Dizide ters indeksleme varsa, teoride dizinin başında yeni hücreler görünmelidir - bu gözlenmez

 
Alexey Viktorov # :

Doldurduktan sonra diziyi çevirmeniz gerekir.

Ben de düşündüm - en azından şimdi başka bir çözüm göremiyorum

Neden: