[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 240
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
için (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket());
}
İşte bekleyen tüm siparişleri silmesi gereken basit bir komut dosyası , ancak siparişlerin tam olarak yarısını siliyor... ???
a1 = SiparişlerToplam();
için (i = 0; i < a1 ; i++)
{
OrderSelect(i ,SELECT_BY_POS);
OrderDelete(OrderTicket());
}
İşte bekleyen tüm siparişleri silmesi gereken, ancak siparişlerin tam olarak yarısını silen basit bir komut dosyası... ???
Diyelim ki 10 sipariş vardı.
Burada yarısını kaldırdınız (sıfırdan beşinciye)
şimdi altıncıyı seçmek istiyorsun.. ve sadece 5 tane kaldı.Bir hata ve silinecek bir şey yok. geri kalanı ile aynı
a1 = SiparişlerToplam();
için (i = 0; i < a1; i++)
{
OrderSelect(i,SELECT_BY_POS);
OrderDelete(OrderTicket());
}
İşte bekleyen tüm siparişleri silmesi gereken, ancak siparişlerin tam olarak yarısını silen basit bir komut dosyası... ???
Sipariş arama yönünü değiştirin:
için (i=a1-1; i>=0; i--) {....}
Sipariş arama yönünü değiştirin:
için (i=a1-1; i>=0; i--) {....}
1. Kontrol ettiniz mi?
Rapor ediyorum: yardımcı oldu, ancak sorunlu görünüyor.
İlk terminal. Tüm çizelgeler ve semboller kaldırıldı, 7 dolar sembolleri eklendi, çizelgeler eklendi. Hepsi yeniden başlatma ile.
Ekranın 3/4'üne kadar gerilmiş tik. İlk 6'yı dolduran 7., 5 hücre üzerinde durdu.
Bir sonraki yeniden başlatmadan sonra, hepsi tamamen dolmaya başlamadı, dağılım neredeyse rastgele - listedeki sembol ne kadar düşükse, o kadar az hücre alır.
İkinci terminal. Üzerinde 7 yen çifti vardı. Fazladan karakterleri sildim, yeniden başlattım - çok daha derinleri doldurmaya başladılar, ancak doldurma derinliğinin rastgele dağıldığı ortaya çıktı.
Bunun küçük önbellek nedeniyle bir hata olduğuna inanma eğilimindeyim - bu herkes için yeterli değil ve dağıtım ya rastgele ya da "ilk kim, bu spor ayakkabılar".
Her durumda, bir para birimi için yöntem işe yarar. Özet: tarif aslında :) Teşekkürler.
Çalışıyor... ama mantık nedir - i++ veya i-- arasındaki fark nedir?
Nedenini hemen yazmışsın. Bu, i++ veya i-- ile ilgili değil, ancak siparişleri silmeye hangi sondan başlayacağınızla ilgili - listenin başından (sizin gibi) veya listenin sonundan (bu durumda gerektiği gibi)
Emirler silindiğinde ne olduğunu anlamak için emirlerin bir dizide nasıl saklandığını bilmeniz ve anlamanız gerekir.
İlk sırayı sildiğinizde (i=0 ile indekslenir), sonra tüm emirlerin indeksleri dizide kaydırılır - ilk olan sıfır olur, ikincisi birinci olur, üçüncüsü ikinci olur, ve benzeri. Bu nedenle tüm emirler tamamen silinmez - sonuçta, i 6'ya eşit olduğunda, altıncı sıra emirler dizisindeki beşinci pozisyona kaydırılır ve emir sadece indeks 6'da seçilmez.
Listenin sonundan siparişleri kaldırdığınızda, herhangi bir kayma olmaz - ilk sipariş listede sıfır konumuna sahip olduğu için onu almaya devam eder. 10. sıra 9. sıraya sahipti, silindi, ardından listede 8. sıraya sahip olan 9. sıra silindi vb. sipariş dizisinde sıfır konumu olan ilk sıraya.
Çalışıyor... ama mantık nedir - i++ veya i-- arasındaki fark nedir?
kullanıcı zaten size cevap verdi
... grafiği çevrimdışı aç.