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

 

Coryphaeus kurtarmaya gelir.

Görev , [] dizisindeki minimum elemanı bulmaktır .

 //+------------------------------------------------------------------+ 
//| Получим Lowest для заданного промежутка                          | 
//+------------------------------------------------------------------+ 
double iLowMin( int ot, int bands, double &buffer[])
  {
   double result=- 1 ;
   result=buffer[ ArrayMinimum (buffer,ot,bands)];
   return (result);
  }
//+------------------------------------------------------------------+ 
//| Получим High для заданного номера бара                           | 
//+------------------------------------------------------------------+ 
double iHighMax( int ot, int bands, double &buffer[])
  {
   double result=- 1 ;
   result=buffer[ ArrayMaximum (buffer,ot,bands)];
   return (result);
  }

maksimumu arar ve en azından öldürür. Hiçbir şey denemedim, giriş dizileri doluydu - hata ayıklamaya baktım, ne deeeeelllat?

 Print ( "DwMin  " ,iLowMin(rates_total- 50 , 49 ,ExtLowerBuffer));

Belki bazı nüanslar vardır?

aracılığıyla duyuruldu

   SetIndexBuffer ( 1 ,ExtLowerBuffer, INDICATOR_DATA );
 
Top2n :

Coryphaeus kurtarmaya gelir.

Görev , [] dizisindeki minimum elemanı bulmaktır .

maksimumu arar ve en azından öldürür. Hiçbir şey denemedim, giriş dizileri doluydu - hata ayıklamaya baktım, ne deeeeelllat?

Belki bazı nüanslar vardır?

aracılığıyla duyuruldu

ArraySort'u deneyin ve ilk dizinin çıktısını kontrol edin.

 

Noosfer için bu kadar, soruyu bırakır bırakmaz kafanıza tahminler gelmeye başladı ama bende 0 var dizide ve min = 0 veriyor. ama yine de sıfır olmayan değerlere sahip bölümler var ve min hala 0, peki, Allah çıkaracak, soru kaldırıldı)) az önce okuyanlara teşekkürler, noosfer size verdi

 

Dikkat sorusu))

Göstergede işlemeye başlamak için çubuk nasıl ayarlanır?

 if(prev_calculated>rates_total-Bmax)

{ ... то что нужно обрабатывать начиная с бара[rates_total-Bmax]

}

Denendiğinde, göstergenin sonucu genellikle bir hamle yapar.

 

Tekrar merhaba! Lütfen söyle bana, dizi öğesinin dizinini biliyorum ve değerini bulmak için hangi işlevi kullanıyorum

int Totall=SiparişToplam();

çift fiyat; // Seçilen siparişin fiyatı

doubleMas[]; //tüm siparişleri sıralayan dizi

for(int i=0; i<OrdersTotal(); i++) // Sipariş üzerinden döngü

{

if(OrderSelect(i,SELECT_BY_POS)) // Sonrası Varsa

{Fiyat=SiparişAçıkFiyat(); // Diziyi fiyatlar ile doldurun

Mas[i] = Fiyat;

}

}

ArraySort(Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Şimdi açık fiyatlar azalan düzende sıralanıyor

int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND) //Mevcut fiyata en yakın büyük elemanın indeksi belirlendi

 
Nauris Zukas :

Daha önce ders çalışırken karşılaştığım gibi, yine makalelerde anlatılmayan veya arama motorundan bulmak mümkün olmayacak şekilde bir yere gizlenmiş nüanslar var. Bütün gün açıklama arayarak harcandı. Örneğin, bu sembol ne anlama geliyor ve değilse nasıl etkiliyor. Aşağıdaki makaledeki örnekte de görebileceğiniz gibi, önce orada, sonra yok: &

Ayrıca, bu sembolün ne anlama geldiği açık değildir: ~

*

mql4, mql5'te, bir dizi her zaman bir işleve yalnızca başvuru yoluyla iletilir (& == ve işareti)

İlk olarak - işlevin biçimsel parametrelerinde - bir ve işareti vardır ve bu, dizinin kendisinin işleve değil, ona bir başvuru iletildiği anlamına gelir. Ve sonra - işlevin içinde - zaten bağlantıyla çalışıyorsunuz, bu da onu tekrar belirtmeniz gerekmediği anlamına geliyor.

Eh, yaklaşık işareti (~) sınıf yıkıcısının adından önce yazılır - yapıcı ve yıkıcı, sınıfın kendisiyle aynı ada sahiptir, ancak yıkıcıda ~ vardır.

Burada, bağlantıların ne zaman kullanılacağı ve işaretçilerin ne zaman kullanılacağı hakkında bir makale bulunmaktadır.

Bununla birlikte, yine de temel bilgileri okumanız gerekir.

 
vikzip :

Tekrar merhaba! Lütfen söyle bana, dizi öğesinin dizinini biliyorum ve değerini bulmak için hangi işlevi kullanıyorum

int Totall=SiparişToplam();

çift fiyat; // Seçilen siparişin fiyatı

doubleMas[]; //tüm siparişleri sıralayan dizi

for(int i=0; i<OrdersTotal(); i++) // Sipariş üzerinden döngü

{

if(OrderSelect(i,SELECT_BY_POS)) // Sonrası Varsa

{Fiyat=SiparişAçıkFiyat(); // Diziyi fiyatlar ile doldurun

Mas[i] = Fiyat;

}

}

ArraySort(Mas,WHOLE_ARRAY,0,MODE_ASCEND); // Şimdi açık fiyatlar azalan düzende sıralanıyor

int Blizko2=ArrayBsearch(Mas,Ask,WHOLE_ARRAY,0,MODE_DESCEND) //Mevcut fiyata en yakın büyük elemanın indeksi belirlendi

Array_element_value = Dizi[indeks];

 

Lütfen söyle bana, bir danışmanım var ve onu işyerinde normal bir bilgisayarda, windows xp'de test ettim. Her şey iyi çalışıyor vb.

Eve geliyorum, evde dizüstü bilgisayar macbook'u ve aynı zamanda aynı araç için kesinlikle aynı parametrelerle, FREIMAM Test Cihazında tamamen farklı bir sonuç gösteriyor, Bunun neden böyle olduğu konusunda herhangi bir tahmin veya fikriniz var mı?

 
Artyom Trishkin :

Array_element_value = Dizi[indeks];


Teşekkürler, şimdi yeni bir sorun. Aşağıdaki koşulu yazarken, 'PriceBlizko1' - bildirilmemiş tanımlayıcı hatası oluşuyor. Lütfen nedenini açıklar mısınız?

çift fiyat; // Seçilen siparişin fiyatı

doubleMas[]; // tüm siparişleri sipariş etmek için dizi

for(int i=0; i<OrdersTotal(); i++) // Sipariş üzerinden döngü

{

if(OrderSelect(i,SELECT_BY_POS)) // Sonrası Varsa

{


Fiyat=SiparişAçıkFiyat(); // Diziyi fiyatlar ile doldurun

Mas[i] = Fiyat;

}

}

ArraySort(Mas, WHOLE_ARRAY ,0,MODE_ASCEND); // Şimdi açık fiyatlar azalan düzende sıralanıyor

int Blizko1=ArrayBsearch(Mas,Teklif,WHOLE_ARRAY,0,MODE_ASCEND); //Mevcut fiyata en yakın alt değer elemanının indeksi belirlenir

double PriceBlizko1=Mas[Blizko1];

}

if (PriceBlizko1-Bid>=30*Puan) //Alt sıra 30 puandan fazla ise !!!!!!BU SATIRDA!!!!!

OrderSend(Symbol(),OP_SELL,LtsS,Bid,2,0,Bid+30*Puan); //Bir Satış emri aç

Uyarı(GetLastError()); //Hata mesajı



 
vikzip :

Kodu yapıştırmak için düğmeyi kullanın!