Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Hexadecimal mantık her yerde aynıdır. Sayı sistemleri hakkında buradan bilgi edinebilirsiniz. Orada konumsal sayı sistemleri hakkında bilgi edinebilir ve 16 ve ikili sayı sistemlerine referansları görebilirsiniz. Orada sistemden sisteme dönüşümle ilgili daha fazla örnek var.
Tüm bitsel işlemler ikili sistem için tasarlanmıştır. MQL5'teki bitsel işlemler hakkında burada.
Bu makaleler, ne hakkında konuştuğunuzu zaten biliyorsanız okumak için iyidir :)
Örneğin, numaralandırmada "0x" önekini kullanıyorsunuz. Anladığım kadarıyla hexadecimal sayıların yazıldığı anlamına geliyor, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" ifadesinde ise "bitsel AND" işlemi kullanılıyor. Bitsel işlemlerin ikili sistem için tasarlandığını yazıyorsunuz. O zaman & operatörü (ikili sistem için) onaltılık sayılarla nasıl ilişkilidir?
Başka bir soru: Eğer doğru anladıysam, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" ifadesi"flag_event !"=CHARTEVENT_NEWBAR_M1" ifadesine eşdeğerdir. Bu doğru mu? Ve eğer öyleyse, neden bitsel işlemler kullanılıyor?
Вы же пишите, что побитовые операции предназначены для двоичной системы
Ne fark eder ki? CPU'nun içindeki sayılar zaten ikilidir.
Bu yüzden kafanızda 255 veya FF'yi "görseniz" ve bunu 8 ile veya 0x00000100 ile karşılaştırsanız bile hiçbir fark olmayacaktır.
Başka bir soru: Eğer doğru anladıysam, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" ifadesi"flag_event !"=CHARTEVENT_NEWBAR_M1" ifadesine eşdeğerdir. Bu doğru mu? Ve eğer öyleyse, neden bitsel işlemler kullanılıyor?
Ne fark eder ki? CPU'nun içindeki sayılar zaten ikilidir.
Bu nedenle, kafanızda 255 veya FF "görseniz" ve bunu 8 ile veya 0x00000100 ile karşılaştırsanız bile hiçbir fark olmayacaktır.
Aradaki fark terminolojiktir. Ancak sözlerinizden programcılar için bunun önemli olmadığını anladım.
Evet, bu durumda tam olarak bu anlama gelir, ancak bit işlemleri uygulamada daha geniştir ve sadece karşılaştırmadan daha geneldir, özellikle sabitlerle çalışırken bit işlemlerini kullanmak zaten klasik bir davranış haline geldiğinden.
Anlıyorum! Yani, bit işlemlerine biraz aşina değilsem, karşılaştırma operatörlerini kullanarak ifadeleri güvenle yeniden yazabilir miyim? Açıklama için teşekkür ederim!
Bu makaleler, ne hakkında olduğunu zaten bildiğinizde okumak için iyidir :)
Örneğin numaralandırmanızda "0x" ön ekini kullanıyorsunuz. Anladığım kadarıyla hexadecimal sayıların yazıldığı anlamına gelirken "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" ifadesinde"bitsel AND işlemi" kullanılmış. Bitsel işlemlerin ikili sistem için tasarlandığını yazıyorsunuz. O zaman & operatörünün (ikili sistem için) onaltılık sayılarla ilişkisi nedir?
Tüm bu sistemler sadece görsel olarak sayıları farklı bir şekilde temsil eder ve bu nedenle bir sayı on ise, her yerde ondur. Comp için, hangi sistemde yazarsak yazalım TÜM sayılar ikilik sisteme dönüştürülür. Yazdığım bu harfler bile ikiliye dönüştürülür. Diğer sistemlerde, sayılar çoğunlukla anlaşılırlığı artırmak için veya alışkanlıktan dolayı etiketlenir. Bazı insanlar bunu daha zeki görünmek için yapar. Bu durumda, onaltılık sayılar yazının kompaktlığı ve daha iyi anlaşılırlık için kullanılmıştır. Görünürlük, onaltılık sayıların nasıl oluşturulduğunu bildiğinizde gelir.
Başka bir soru: Eğer doğru anladıysam, "(flag_event & CHARTEVENT_NEWBAR_M1)!=0" ifadesi"flag_event !" =CHARTEVENT_NEWBAR_M1" ifadesine eşdeğerdir. Bu doğru mu? Eğer öyleyse, neden bitsel işlemler kullanılıyor?
Hayır, durum her zaman böyle değildir. Bu flag_event içinde ne yazıldığına bağlıdır. Eğer flag_event'a sadece CHARTEVENT_NEWBAR_M1 yazılmışsa, flag_event= CHARTEVENT_NEWBAR_M1 olur. Eğerflag_event' a CHARTEVENT_NEWBAR_M1|CHARTEVENT_NEWBAR_M5 yazılmışsa, flag_event !=CHARTEVENT_NEWBAR_M1.Ancak her iki durumda da (flag_event & CHARTEVENT_NEWBAR_M1)!=0koşulu yerine getirilecektir .
flag_event içineCHARTEVENT_NEWBAR_M5yazarsanız ,flag_event != CHARTEVENT_NEWBAR_M1. Ancak (flag_event & CHARTEVENT_NEWBAR_M1)=0.
Bu hileleri anlamak için sayı sistemlerini ve bitsel işlemleri anlamanız gerekir. Aksi takdirde, ölürsünüz.
Anlıyorum! Yani, bitsel işlemleri kullanmak benim için biraz alışılmadık bir durumsa, karşılaştırma operatörlerini kullanarak ifadeleri güvenle yeniden yazabilir miyim? Açıklama için teşekkür ederim!
Her zaman değiştirebilirsiniz, ancak ek hesaplamalar gerektirebilir. Bu durumda dikkatli olun :).
Tamam! Bir soru daha. Onaltılık sayıları yazarken ikinin derecesini kullanıyorsunuz. İkinin derecelerini kullanmanın bir anlamı var mı yoksa bu da bir alışkanlık meselesi mi? Yani şu tür kombinasyonlar kullanılabilir mi: 0x00000003, 0x00000009, vb.
Tamam! Bir soru daha. Onaltılık sayıları yazarken ikinin derecelerini kullanıyorsunuz. İkinin derecelerini kullanmanın bir anlamı var mı yoksa bu da bir alışkanlık meselesi mi? Yani şu tür kombinasyonlar kullanılabilir mi: 0x00000003, 0x00000009, vb.
Hayır. Bu, bitsel işlemlerin kullanımından kaynaklanmaktadır. Casusta birkaç sayıyı (olayı) tek bir sayıya (flag_event içinde) ekliyorum ve EA'da casusun hangi olayları gönderdiğini görmek için bir sayıdan birkaç sayı çıkarıyorum. Ve tam tersi.
Oh, dikkatli okumamışım. Evet, yapabilirsiniz, ancak muhtemelen tüm olayları sığdırmak için yeterli bir sayıya sahip olmazdım. İki derecesi kullanılıyor çünkü sayının ikili gösterimiyle çalışıyorum ve onaltılık olarak yazıyorum. Her bit farklı bir olayı temsil ediyor.
Varsayılan olarak, price[rates_total-1] son bitmemiş çubuğun kapanış fiyatına eşittir ve bu da son teklif fiyatına eşittir. yani, teklif fiyatını varsayılan olarak her zaman casustan alırız.
Satış fiyatını zorla almak istiyorsanız, bu satırı örneğin aşağıdakiyle değiştirin.
Yazar, özür dilerim, belki okumayı bitirmedim, ancak bu işlev Uzman Danışmana yalnızca fiyat olaylarını değil, örneğin,
bir göstergenin olayları veya bunların diğer araçlardan kombinasyonları / varyasyonları, yani sinyal zaten oradan alınmış gibi. Evet ise, nasıl uygulanır.
Cevabınız için teşekkür ederim.
Varsayılan olarak, price[rates_total-1] son bitmemiş çubuğun kapanış fiyatına eşittir ve bu da son teklif fiyatına eşittir. yani, varsayılan olarak casustan her zaman teklif fiyatını alırız.
Zorla satış fiyatını almak istiyorsanız, bu satırı örneğin aşağıdakiyle değiştirin.
Yazar, özür dilerim, belki de okumayı bitirmedim, ancak bu işlev Uzman Danışmana yalnızca fiyat olaylarını değil, örneğin
bir göstergenin olayları veya bunların diğer araçlardan kombinasyonları / varyasyonları, yani sinyal zaten oradan alınmış gibi. Evet ise, nasıl uygulanır.
Cevap için teşekkür ederim.