Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 89

 
Alexey Kozitsyn :
Bunu yapmamalısın. Kaynak taşması büyük olacaktır. Ve döngü olmadan reaksiyonun hızına uymayan nedir?
Teşekkür ederim. Sadece resmi mql4 eğitiminde bu örnek olarak verilmiştir, bu yüzden ilgileniyorum. Belki bir şekilde normal yoldan daha iyi çalışır diye düşündüm.
 
LRA :
Onay, sunucudan yeni verilerin gelmesidir. Ve varıştan hemen sonra işlenmelidir. Bunu 5 ms gecikmeli bir döngüde yaparsanız, çoğu işaret tam olarak bu gecikmenin yürütülmesi sırasında gelir. Böylece işlem 0 ... 5 ms gecikmeli olacaktır.
Evet, bunda bir mantık var. Ben sadece start() işlevinin kendisinin de döngüsünde zaman harcadığını ve belki de yinelemesinin birkaç saniye veya daha fazlasını çaldığını düşündüm (bir seferde büyük bir veri paketi almak için sunucuya zorunlu bir çağrı olabilir), bir saf döngü. Belki bunlar sadece iç mekanizmaların yanlış anlaşılmasından kaynaklanan fantezilerimdir, ancak bu yöntemin mql4 ders kitabında verilmiş olması boşuna değildir.
 
smart_man :
Teşekkür ederim. Sadece resmi mql4 eğitiminde bu örnek olarak verilmiştir, bu yüzden ilgileniyorum. Belki bir şekilde normal yoldan daha iyi çalışır diye düşündüm.
Evet, ancak öğretici biraz modası geçmiş. Bu, elbette, hiç yoktan iyidir, ancak belgelere paralel olarak bakmak ve içinde hala start () gibi işlevlerin olup olmadığını kontrol etmek gereksiz olmayacaktır. Artık Uzman Danışmanlar için OnTick() işleyicisini kullanmak daha iyidir.
 

Tünaydın!

 
Tünaydın! Lütfen bana USD/RUB döviz çifti için en uygun komisyoncuyu söyleyin? Minimum yayılma ve minimum takas vb. komisyonlu diğerleri..?
 
kanybek06 :
Tünaydın! Lütfen bana USD/RUB döviz çifti için en uygun komisyoncuyu söyleyin? Minimum yayılma ve minimum takas vb. komisyonlu diğerleri..?

Daha yeni başladığın için, herkesten gerçekten hoşlanacaksın. İnternetteki aramada sorun ve karşılaştırın. Onlarla sohbet edin, sorular sorun. Size cevap verilecektir.

Burada programlama ve Metatrader ticaret platformu hakkındaki soruları tartışıyoruz.

 

Aynı anda kapatmanız gerekiyorsa, zıt emirleri kapatmanın en iyi yolu nedir?

1) her biri ayrı ayrı (manuel veya TP/SL ile)

veya

2) OrderCloseBy kullanan çiftler halinde (yalnızca manuel olarak)?

Ders kitabında yazıldığı gibi OrderCloseBy ile tek bir oranlı tasarruf olacak mı? DC'lerin bu şekilde kapatılmasını yasaklıyorlar mı ve bu spread'i geri verecekler mi? Teknik olarak nasıl kontrol edilir?

Teşekkür ederim.

 
Bir diziyle çalışmak için bir sınıf şablonu vardır.
 #property strict
#include <ObjectVariables.mqh>
#include <Arrays\varQSort.mqh>
#include <Arrays\objQSort.mqh>

template < typename T1>
class ArrayList
{
   private :
      T1 array[];
      QuickSorts<T1> *qs;
       int size;
       int index;

   public :
       //прочие функции
       void QuickSort(); //отсортировать массив
       //прочие функции
};
//+------------------------------------------------------------------+
//| Сортировка массива
template < typename T1>
void ArrayList::QuickSort()
{
   int idx = index; //сохранение положения индекса
   if (IsPointer(array[ 0 ])) // true - массив содержит указатели класса
      qs /*ошибка 2*/ = new ObjQSort<T1>();
   else
      qs /*ошибка 2*/ = new VarQSort<T1>();
   qs.Sort(array, 0 , index);
   index = idx;
}

Bir dizinin karmaşık veri türlerini depolayabildiği gerçeği göz önüne alındığında, bu sınıf şablonunun sıralama uygulaması gerekir. Örneğin:
ArrayList<PP*> *dde; // PP - класс

Basit türler ve karmaşık olanlar için farklı işlevler yazabilirsiniz, ancak derleyici işlevlerin veri türüne göre kesinlikle sınırlandırıldığını anlamaz ve yemin etmeye devam eder:
'<' - geçersiz işlem ArrayList.mqh'yi kullanır

Sonra arayüzü gömmeye karar verdim:

 #property strict
template < typename T1>
interface QuickSorts
{
   void Sort(T1 &array[], int beg, int end);
};
#property strict
#include <Arrays\QuickSorts.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
template < typename T1>
class VarQSort : public /*ошибка 1*/ QuickSorts
{
private :

public :
   void Sort(T1 &array[], int beg, int end);
   VarQSort(){}
   ~VarQSort(){}
};
template < typename T1>
void VarQSort::Sort(T1 &array[], int beg, int end)
{
   //алгоритм функции
}
 #property strict
#include <Arrays\QuickSorts.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
template < typename T1>
class ObjQSort : public /*ошибка 1*/ QuickSorts
{
private :

public :
   void Sort(T1 &array[], int beg, int end){}
   ObjQSort(){}
   ~ObjQSort(){}
};

Tasarımın tüm parçaları derlenmiştir. Ama bunu beyan etmeye çalışırsanız:
ArrayList<PP*> *dde; // PP - класс
daha sonra, dosyayı derlerken hatalar şunlardır:

'QuickSorts' - şablon uyuşmazlığı varQSort.mqh /*hata 1*/
'=' - tür uyuşmazlığı ArrayList.mqh /*hata 2*/


Bu tür uyumsuzluğu ortadan kaldırmak için kodda nelerin düzeltilmesi gerekiyor? Neden böyle olduğunu anlamıyorum.

not
'<' - geçersiz işlem varQSort.mqh kullanıyor
bu tasarımda beni rahatsız ediyor. Ve tam olarak kurtulmak istediğim şey buydu. Ama bu hata benim için açık, ama bu ikisi değil.
 
виталик :
Herkese merhaba, PivotsDaily v2.mq4'ü türkiye'den koparmak için bana bir kod parçasıyla yardım edin, onu bir veya yarım saate, sadece tek bir şeye nasıl dönüştürebilirim, böylece değişiklikler daha net olacak, yardım pliz, şimdiden teşekkür ederim

Tek bir başlıkta yayınlandı. Yeterlik. Diğerlerinin verimli olması gerekmez.
 
Merhaba! Lütfen söyle bana, danışman 1.5 yıl önce yazdı , işe yaradı, her şey yolundaydı. Bunca zamandır kullanmadım, şimdi programa ayarlı değil. Kim bilir neden olabilir? Belki bazı MT4 güncellemeleri nedeniyle?