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

 
Arkadaşlar soru konu başlığında yok yeniyim iş siparişi vermek istiyorum 0 bakiye üzerinden hemen konu açabilirmiyim ? Yoksa önce hesabımı doldurmam mı gerekiyor? Hesaptan para bloke edilince anlamıyorum...
 
OBERON1812 :
Arkadaşlar soru konu başlığında yok yeniyim iş siparişi vermek istiyorum 0 bakiye üzerinden hemen konu açabilirmiyim ? Yoksa önce hesabımı doldurmam mı gerekiyor? Hesaptan para bloke edilince anlamıyorum...
İlk önce hesabı gerekli miktarda doldurun, aksi takdirde uygulamanın ortasında bir sorun olacaktır. Önce bir başvuru formu doldurabilir, ardından bir müteahhit seçip hesabı gerekli miktarda doldurabilir.
 

Vitaly Muzichenko :


Kapalı üzerinden geriye doğru numaralandırma

Teşekkürler ... Açık siparişler üzerinde ters yineleme yapmakla ilgileniyorum ... bu doğru bir şekilde çalışacak mı?
 for ( int i=OrdersTotal()- 1 ; i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES)) {
 
Yaroslav Nykula :
Teşekkürler ... Açık siparişler üzerinde ters yineleme yapmakla ilgileniyorum ... bu doğru bir şekilde çalışacak mı?
Evet, Print() ile kontrol edebilirsiniz;
 
Vitaly Muzichenko :
Evet, Print() ile kontrol edebilirsiniz;
 for ( int i=OrdersTotal()- 1 ; i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES)) {
Teşekkürler ... prensipte, benim için her şey açık, ancak i=OrdersTotal()- 1 parametresi kafa karıştırıyor ; neden tam olarak - 1 ve sadece   i=SiparişToplam() ; ... sonuçta, bu durumda, açık siparişlerin sonuncusunun yeniden hesaplamanın dışında tutulacağı ortaya çıkıyor - yoksa yanılıyor muyum? ...








 
Yaroslav Nykula :
Teşekkürler ... prensipte, benim için her şey açık, ancak i=OrdersTotal()- 1 parametresi kafa karıştırıyor ; neden tam olarak - 1 ve sadece   i=SiparişToplam() ; ... sonuçta, bu durumda, açık siparişlerin sonuncusunun yeniden hesaplamanın dışında tutulacağı ortaya çıkıyor - yoksa yanılıyor muyum? ...









OrderTotal(), var olduğu kadar sipariş sayısını döndürür ve sipariş sayımı sıfırdan başlar. Yani, eksi bir gerekli, bu durumda doğru olan şey.
 
Yaroslav Nykula :
Teşekkürler ... prensipte, benim için her şey açık, ancak i=OrdersTotal()- 1 parametresi kafa karıştırıyor ; neden tam olarak - 1 ve sadece   i=SiparişToplam() ; ... sonuçta, bu durumda, açık siparişlerin sonuncusunun yeniden hesaplamanın dışında tutulacağı ortaya çıkıyor - yoksa yanılıyor muyum? ...
Print() ile yazdırın ve böyle bir soru olmayacak, zor değil
 

Okuyan herkese merhaba.

Sonraki soru, Ask fiyatına ilişkin geçmiş verilerle MT4 test cihazında spread veya ASK fiyatının nasıl ayarlanacağıdır.
Açıklarım.
MT4 terminalinde bazı Semboller için bir geçmişimiz var (sırasıyla Teklife göre tüm fiyatları içerir) ve Symbol_ask geçmişimiz var (tüm fiyatlar sor ile, bu tarih AYRICA ARACI TARAFINDAN SAĞLANIR)

Bu verileri test cihazında kullanmak mümkün müdür?

 
Yaroslav Nykula :
Teşekkürler ... prensipte, benim için her şey açık, ancak i=OrdersTotal()- 1 parametresi kafa karıştırıyor ; neden tam olarak - 1 ve sadece   i=SiparişToplam() ; ... sonuçta, bu durumda, açık siparişlerin sonuncusunun yeniden hesaplamanın dışında tutulacağı ortaya çıkıyor - yoksa yanılıyor muyum? ...

Çünkü 0'dan sayılır. 10 siparişiniz varsa, 0..9 seri numaralarını, yani 0..(10-1) saymalısınız, burada OrdersTotal()=10 .

Program yazarken bunu aklınızda bulundurun.

 
Yaroslav Nykula :
Teşekkürler ... prensipte, benim için her şey açık, ancak i=OrdersTotal()- 1 parametresi kafa karıştırıyor ; neden tam olarak - 1 ve sadece   i=SiparişToplam() ; ... sonuçta, bu durumda, açık siparişlerin sonuncusunun yeniden hesaplamanın dışında tutulacağı ortaya çıkıyor - yoksa yanılıyor muyum? ...
Sayı 1
2
3
4
5
6
7
sekiz
dokuz
on
dizin 0
1
2
3
4
5
6
7
sekiz
dokuz

Gördüğünüz gibi, on sipariş var, ancak endeksleri 1 eksik, çünkü herhangi bir dizide sayım sıfırdan başlıyor.

OrdersTotal(), 10'a eşittir, ancak döngüyü OrdersTotal() ile başlatırsanız , diziden bir uçuş olacaktır - sipariş indeksi 10 yoktur - en büyük indeks 9'dur - bu nedenle OrdersTotal()-1