MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 273
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
int tip=OrderType();
if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
Bu parçanın ikinci satırında bir hata olduğu size zaten söylendi: OrderType() işlevini çağırmadan önce, OrderSelect() işlevi kullanılarak bir sipariş seçilmelidir.
3. satırda bir hata var: Ama numara ile bir sipariş var mı? Minimum sayı 1 ise, yani. hesap 1'den başlarsa, maksimum sayı sayıya eşit olacaktır ( toplam 5 sipariş olsun: sipariş numaraları 1, 2, 3, 4, 5). Ancak siparişler 0'dan numaralandırılmıştır - İmleci OrdersHistoryTotal üzerine getirin ve F1'e basın, bir örneğe bakın. Peki maksimum sipariş numarası nedir?
Daha önce, ikinci tabloda yapılan ayın tarihini 7'ye bölmeyi ve yukarı yuvarlamayı önerdiniz.
Algoritmanızı anlamıyorum.
Şimdi şöyle düşünüyorum:
1. Ayın ilk gününde haftanın gününü belirleyin
2. Haftanın bitimine kaç gün kaldığını öğrenin (Çarşamba (3)'ten 7-3=4 Pazartesi'ye kadar)
3. 5 - ikinci haftanın başlangıcı
4. Döngünün devamında hangi haftayı arıyoruz, eğer sayı 5 + 7 * x ile 5 + 7 * (x + 1) aralığındaysa, burada x hafta sayısı eksi birincidir, o zaman elimizde haftayı buldu
ama daha kolay bir seçenek ne kadar zor olabilir?
Alex, farklı şeylerden bahsediyoruz. Görev, ayın hangi haftasının ayın gününü içerdiğini değil, bu ayda aynı adı taşıyan haftanın ilk gününü belirlemekti. Bunlar farklı görevler ve buna bağlı olarak farklı çözümler.
63 yılım boyunca, aydaki hafta sayısının nasıl hesaplandığını hala anlamış değilim. Rusya'da adet olduğu üzere, haftanın ilk gününün Pazartesi olduğunu kabul ettiğimizi varsayalım. Ay Pazar günü başlıyorsa, Pazartesiyi nasıl sayarsınız? İkinci hafta başladı mı? Veya nasıl??? Bu retorik bir soru, bu konuda bir tartışma başlatmaya gerek yok.
Alex, farklı şeylerden bahsediyoruz. Görev, ayın hangi haftasının ayın gününü içerdiğini değil, bu ayda aynı adı taşıyan haftanın ilk gününü belirlemekti. Bunlar farklı görevler ve buna göre farklı çözümler.
63 yılım boyunca, aydaki hafta sayısının nasıl hesaplandığını hala anlamış değilim. Rusya'da adet olduğu üzere, haftanın ilk gününün Pazartesi olduğunu kabul ettiğimizi varsayalım. Ay Pazar günü başlıyorsa, Pazartesiyi nasıl sayarsınız? İkinci hafta başladı mı? Veya nasıl??? Bu retorik bir soru, bu konuda bir tartışma başlatmaya gerek yok.
Açık. Benim için soru şu...
Alex, farklı şeylerden bahsediyoruz. Görev, ayın hangi haftasının ayın gününü içerdiğini değil, bu ayda aynı adı taşıyan haftanın ilk gününü belirlemekti. Bunlar farklı görevler ve buna bağlı olarak farklı çözümler.
63 yıldır aydaki hafta sayısının nasıl hesaplandığını hala anlamış değilim. Rusya'da adet olduğu üzere, haftanın ilk gününün Pazartesi olduğunu kabul ettiğimizi varsayalım. Ay Pazar günü başlıyorsa, Pazartesiyi nasıl sayarsınız? İkinci hafta başladı mı? Veya nasıl??? Bu retorik bir soru, bu konuda bir tartışma başlatmaya gerek yok.
Bu parçanın ikinci satırında bir hata olduğu size zaten söylendi: OrderType() işlevini çağırmadan önce, OrderSelect() işlevi kullanılarak bir sipariş seçilmelidir.
3. satırda bir hata var: Ama numara ile bir sipariş var mı? Minimum sayı 1 ise, yani. hesap 1'den başlarsa, maksimum sayı sayıya eşit olacaktır (toplam 5 sipariş olsun: sipariş numaraları 1, 2, 3, 4, 5). Ancak siparişler 0'dan numaralandırılmıştır - İmleci OrdersHistoryTotal üzerine getirin ve F1'e basın, bir örneğe bakın. Peki maksimum sipariş numarası nedir?
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY))
int tip=OrderType();
ve şimdi doğru mu?
if (OrderSelect(1,SELECT_BY_POS,MODE_HISTORY)) - так какой наибольший номер ордера?
int tip=OrderType();
ve şimdi doğru mu?
bir komut dosyası yazın ve her ifadeden sonra Alert() işleviyle + GetLastError() bilgilerini görüntüleyin - hemen yukarıdaki komut dosyası örneğine bakın
yalnızca yazdırmak için _LastError değişkeninden hata kodunu almak daha iyidir, aksi takdirde mantığı hafif bir "debug print" ile yok edebilirsiniz
GetLastError() ayrıca GetXXX() için açık olmayan bir şey yapar - dahili durumu değiştirir, hata kodunu 0'a sıfırlar.
yalnızca yazdırmak için _LastError değişkeninden hata kodunu almak daha iyidir, aksi takdirde mantığı hafif bir "debug print" ile yok edebilirsiniz
GetLastError() ayrıca GetXXX() için açık olmayan bir şey yapar - dahili durumu değiştirir, hata kodunu 0'a sıfırlar.
peki, bu bir zevk meselesi - ya hata kodunu bir değişkende saklayın ve hatayı sıfırlayın ya da daha sonra kullanmak üzere _LastError'da saklayın
burada, yukarıdaki algoritmaya göre aşağıdan yukarıya doğru okuyun