Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 220

 
Nikolai Semko # :

bu yüzden savaş modunda tüm grafik öğeleri simge durumuna küçültmeden kapatmanız gerekir. Pencere görünür durumdaysa ancak etkin değilse grafiğin donmasına izin verin.
Ve bana öyle geliyor ki , fare etkin olmadığında, örneğin 1 dakika, tüm grafikleri otomatik olarak kapatmak ve kaldırmak daha kolay ve daha iyi. Fare aktif olur olmaz grafikler kaldığı yerden devam eder.

Hiç iyi değil. Burada grafiğe 2 dakika bakıyorsunuz ve tablo bir dakika önce öldü. O zaman neden gerekli?

 
Vitaly Muzichenko # :

Hiç iyi değil. Burada grafiğe 2 dakika bakıyorsunuz ve tablo bir dakika önce öldü. O zaman neden gerekli?

elbette, bu mod için "Otomatik gizle" seçeneğine ihtiyacınız var

 
Nikolai Semko # :

bu yüzden savaş modunda tüm grafik öğeleri simge durumuna küçültmeden kapatmanız gerekir.

Grafiğin tuvali, simge durumuna küçültülmeden çizilir. Ampirik olarak, VPS minimum düzeyde yüklendiğinde Terminal çalışma modu bulundu.

 

Umarım doğru başlığa yazıyorumdur.

1. Aynı anda birkaç çift üzerinde bir test yapıyoruz, çoklu para birimi

Soru: Her çift için sonuç nasıl alınır?

2. Aynı anda birkaç çift için optimize ediyoruz

Soru: Her çift için sonuç nasıl alınır?

---

Bir zamanlar, yaklaşık 3 yıl önce, bunu test cihazına dahil edeceklerine söz verdiler, ancak şu ana kadar hiçbir şey olmadı. Yoksa bulamıyorum?

 

Örneğin, bir Piyasa Danışmanının veya bir Sinyal Hizmetinin çalışmasını durdurmanın yasal bir yolu vardır. Diyelim ki bir nedenden dolayı onlara erişim yok - VPS.

Ticaret sunucusunda bir kısıtlama varsa yöntem çalışacaktır. Her şeyi mevduatla doldurmanız yeterlidir, ancak dikkatli bir şekilde, aksi takdirde açık pozisyonları kapatmak imkansız olacaktır.


Belki birileri böyle acil bir Market ürünü yazacaktır ...

 

MQL5. MESAJ KUTUSU, "Uzmanlar" dergisindeki mesajları çoğaltır. Lütfen bana nasıl devre dışı bırakılacağını söyle. ***

Teşekkür ederim!

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2017.09.22 20:43

POSITION_TIME_UPDATE sadece pozisyon lotunun değiştirilmesiyle ilgilidir. Örneğin, herhangi bir hesap türündeki bir pozisyonun kısmen kapatılması veya netleştirmeye eklenmesi.

SL/TP seviyelerindeki değişiklikler POSITION_TIME_UPDATE'i etkilemez.

Başka bir deyişle, POSITION_TIME_UPDATE, yalnızca İşlem Geçmişi - fırsatlara yansıtılan değişikliklerden etkilenir. SL / TP seviyeleri bu tür değişikliklerle ilgili değildir, bu nedenle etkilemezler.

Parti büyüklüğündeki değişikliklere rağmen POSITION_TIME_UPDATE_MSC == POSITION_TIME_UPDATE olduğu durumlar olabilir.

 
 

Merhaba ve paylaşım için teşekkürler!

Bu işe yararsa mükemmel olurdu. Ancak, bir .mq5 komut dosyasına yapıştırıldığında ve ne yazık ki yürütüldüğünde kodunuz aşağıdaki hataları veriyor:

  • yerel sınıflarda şablon bildirimlerine izin verilmez ArraySortStruct.mq5 87 4
  • (kodunuzu biraz değiştirdikten sonra): şablon bildirimlerine yalnızca global, ad alanı veya sınıf kapsamında izin verilir ArraySortStruct.mq5 90 4 )

Lütfen bunu düzeltir misiniz? Senin için muhtemelen kolay, oysa ben nereden başlayacağımı bilmiyorum :-)

 
Bodolino # :

Merhaba ve paylaşım için teşekkürler!

Bu işe yararsa mükemmel olurdu. Ancak, bir .mq5 komut dosyasına yapıştırıldığında ve ne yazık ki yürütüldüğünde kodunuz aşağıdaki hataları veriyor:

  • yerel sınıflarda şablon bildirimlerine izin verilmez ArraySortStruct.mq5 87 4
  • (kodunuzu biraz değiştirdikten sonra): şablon bildirimlerine yalnızca global, ad alanı veya sınıf kapsamında izin verilir ArraySortStruct.mq5 90 4 )

Lütfen bunu düzeltir misiniz? Senin için muhtemelen kolay, oysa ben nereden başlayacağımı bilmiyorum :-)

İşlevselliği (alt alan ve yöntem) ve uygun kullanımı nasıl koruyacağımı bilmiyorum. Belki de bu seçenek ihtiyaçlarınızı karşılayacaktır.

 // Сортировка массива структур и указателей на объекты 
по полю .
#define ArraySortStruct_Define(TYPE, FIELD)                                      \
namespace TYPE ##FIELD                                                             \
{                                                                                \
   class SORT                                                                     \
  {                                                                              \
   private :                                                                       \
     template < typename T>                                                        \
     static void Swap( T &Array[], const int i, const int j )                     \
    {                                                                            \
       const T Temp = Array[i];                                                   \
                                                                                 \
      Array[i] = Array[j];                                                       \
      Array[j] = Temp;                                                           \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
                                                                                 \
     template < typename T>                                                        \
     static int Partition( T &Array[], const int Start, const int End )           \
    {                                                                            \
       int Marker = Start;                                                        \
                                                                                 \
       for ( int i = Start; i <= End; i++)                                         \
         if (Array[i]. ##FIELD <= Array[End]. ##FIELD)                               \
        {                                                                        \
          SORT::Swap(Array, i, Marker);                                          \
                                                                                 \
          Marker++;                                                              \
        }                                                                        \
                                                                                 \
       return (Marker - 1 );                                                       \
    }                                                                            \
                                                                                 \
     template < typename T>                                                        \
     static void QuickSort( T &Array[], const int Start, const int End )          \
    {                                                                            \
       if (Start < End)                                                           \
      {                                                                          \
         const int Pivot = Partition(Array, Start, End);                          \
                                                                                 \
        SORT::QuickSort(Array, Start, Pivot - 1 );                                \
        SORT::QuickSort(Array, Pivot + 1 , End);                                  \
      }                                                                          \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
                                                                                 \
   public :                                                                        \
     template < typename T>                                                        \
     static void Sort( T &Array[], int Count = WHOLE_ARRAY , const int Start = 0 ) \
    {                                                                            \
       if (Count == WHOLE_ARRAY )                                                  \
        Count = :: ArraySize (Array);                                              \
                                                                                 \
      SORT::QuickSort(Array, Start, Start + Count - 1 );                          \
                                                                                 \
       return ;                                                                    \
    }                                                                            \
  };                                                                             \
}

#define ArraySortStruct(TYPE, ARRAY, FIELD) TYPE ##FIELD::SORT::Sort(ARRAY)


Başvuru.

 ArraySortStruct_Define( MqlRates , open)
ArraySortStruct_Define( MqlRates , high)
ArraySortStruct_Define( MqlRates , time)

void OnStart ()
{
   MqlRates Rates[];
  
   CopyRates ( _Symbol , PERIOD_CURRENT , 0 , 5 , Rates); // Взяли бары
  
   Print ( "\nБары без сортировки - как получили." );
   ArrayPrint (Rates);
  
   Print ( "\nСортируем по open-цене." );
   ArraySortStruct( MqlRates , Rates, open);
   ArrayPrint (Rates);

   Print ( "\nСортируем по high-цене." );
   ArraySortStruct( MqlRates , Rates, high);
   ArrayPrint (Rates);

   Print ( "\nСортируем по времени." );
   ArraySortStruct( MqlRates , Rates, time);
   ArrayPrint (Rates);
}
Neden: