Hatalar, hatalar, sorular - sayfa 40

 
Interesting :

> Bu hatayı nasıl aşacağımla ilgilenmiyorum, hatayı düzeltmekle ilgileniyorum. Hiç sahip olmamak için.

ASKERLİK ve VURUŞ olarak algılamayın ama bunun bir HATA olduğuna dikkat çekerek beni öldürdünüz...

Sorunun özüne (öneri):

Bu sizin için MQL4 değildir ve Period() bir zaman çerçevesindeki saniye/dakika sayısını açıkça temsil etmez.

Bir periyottaki saniye sayısını almak için PeriodSeconds işlevini kullanın.


Ve yine de Periyodu bir sayı olarak ifade etmeye çalışırsanız, ENUM_TIMEFRAMES numaralandırmasında bu periyodun tanımlayıcısına karşılık gelen sayısal bir değer elde edersiniz.

Pekala, Period() fonksiyonundaki yardımı açalım. B Ne görüyoruz?

Geçerli grafiğin zaman çerçevesi değerini döndürür.

ENUM_TIMEFRAMES Nokta ();

Geri dönüş değeri

Geçerli grafiğin zaman çerçevesi değerini depolayan _Period değişkeninin içeriği. Değer , ENUM_TIMEFRAMES numaralandırma değerlerinden biri olabilir.

ENUM_TIMEFRAMES bağlantısını tıklıyoruz - dönemleri listeleyen bir tablo açılır.

PERIOD_H1 1 saat

Her şey MQL4'tekiyle aynı. Peki ya 16386 sayısı?

Meta alıntılar repertuarlarındadır - kullanıcılar için yardım yazmazlar, ancak kendileri için bir not defteri olarak kullanırlar. Neyin ne olduğu ve metinlerini okurken kullanıcının beyninde neyin ortaya çıkacağı onlar için açıktır - umurlarında değil. Görünüşe göre Rus dilinin temel stiline sahip olacak profesyonel bir editörleri yok (en azından başlangıç seviyesinde). :(

MQL4'te, materyalin meta alıntılarla sunumunun cehaletinden ustalaşırken yoruldum. MQL5'te tekrar bir güdük güvertesinden geçmek zorunda kalacağımı hissediyorum.

 
drknn :

Pekala, Period() fonksiyonu için yardımı açalım. B Ne görüyoruz?

ENUM_TIMEFRAMES bağlantısını tıklıyoruz - dönemleri listeleyen bir tablo açılır.

PERIOD_H1 1 saat

Peki ya 16386 sayısı?

Meta alıntılar repertuarlarındadır - kullanıcılar için yardım yazmazlar, ancak kendileri için bir not defteri olarak kullanırlar. Neyin ne olduğu ve metinlerini okurken kullanıcının beyninde neyin ortaya çıkacağı onlar için açıktır - umurlarında değil. Görünüşe göre Rus dilinin temel stiline hakim olacak profesyonel bir editörleri yok (en azından başlangıç seviyesinde). :(

Ancak ENUM_TIMEFRAMES içindeki PERIOD_H1 öğesinin 16385 kod değerine sahip olmasına ve daha önce bu değerin 60 (dakika sayısına göre) olmasına rağmen.

Bu tür nedenler, MQL4 yardımında yapıldığı gibi, MQ'nun numaralandırıcıların (tanımlayıcıların) bireysel değerleri için henüz kodlar yayınlamamasından kaynaklanmaktadır.

Şahsen (belki bir başkası da) bu KODLARI (değerleri) henüz yapılmamış olan sertifikada belirtmemi istedim.

not

İşte olay - MQL4 ve MQL5'te Period() işleviyle ilgili yardımı açarsanız, hemen gözünüze çarpan şey budur (en azından olması gerekir):

MQL4 - Geçerli grafik için dönemin dakika sayısını verir.

MQL5 - Geçerli grafiğin zaman çerçevesi değerini döndürür.

Bu, sıradan geliştiriciler için yeterlidir, ancak daha düşük bir düzeyde çalışmak isteyenler için (örneğin, bir DLL'ye bilgi iletmek veya geçiş için bir kitaplık oluşturmak), sayısal KODU bilmeniz gerekir.

MQL4'te bu kod saniye sayısına karşılık gelir (saniye sayısı döndürüldüğü için), ancak MQL5'te kurallar tamamen farklıdır...

Периоды графиков - Документация на MQL4
  • docs.mql4.com
Периоды графиков - Документация на MQL4
 

MQL4 ve MQL5'teki Period() kod değerlerinin özet tablosu şöyle görünecektir:


tanımlayıcı
MQL 5 kodu
MQL 4 kodu
Tanım
PERIOD_CURRENT / NULL / Sıfır
0
0
cari dönem  
  PERIOD_M1 1
1
  1 dakika
  PERIOD_M2 2
X
  2 dakika
  PERIOD_M3 3
X   3 dakika
  PERIOD_M4 4
X   4 dakika
  PERIOD_M5 5
5
  5 dakika
  PERIOD_M6 6
X   6 dakika
  PERIOD_M10 on
X   10 dakika
  PERIOD_M12 12
X   12 dakika
  PERIOD_M15 on beş
on beş
  15 dakika
  PERIOD_M20 20
X   20 dakika
  PERIOD_M30 otuz
otuz
  30 dakika
  PERIOD_H1 16385
60
  1 saat
  PERIOD_H2 16386 X   2 saat
  PERIOD_H3 16387 X   2 saat
  PERIOD_H4 16388 240   4 saat
  PERIOD_H6 16390 X   6 saat
  PERIOD_H8 16392 X   08:00
  PERIOD_H12 16396 X   12 saat
  PERIOD_D1 16408 1440   1 gün
  PERIOD_W1 32769
10080   1 hafta
  PERIOD_MN1
49153
43200   1 ay


not

Umarım şimdi her şey açıktır... :)

Периоды графиков - Документация на MQL4
  • docs.mql4.com
Периоды графиков - Документация на MQL4
 
Interesting :

MQL4 ve MQL5'teki Period() kodları için pivot tablo şuna benzer:

>

not

Umarım şimdi her şey açıktır... :)

MQL5'teki değer bitlerine bakın...
 
mql5 :
MQL5'teki değer bitlerine bakın...
Her şey doğru gibi görünüyor. Ya da ben yazınızı yanlış anladım...
 
Interesting :
Her şey doğru gibi görünüyor. Yazınızın amacını anlamadım...
Rakamlar doğru gibi görünüyor, ancak neden olduklarını ikili değere bakarak öğrenebilirsiniz.
 
mql5 :
Rakamlar doğru gibi görünüyor, ancak tam olarak neden olduklarını ikili değere bakarak öğrenebilirsiniz.

Ha bundan bahsediyorsun... :)
 
Interesting :

MQL4 ve MQL5'teki Period() kod değerlerinin özet tablosu şöyle görünecektir:

not

Umarım şimdi her şey açıktır... :)

Biçimsel mantığı biliyorum ve terimlerdeki farklılıklar hemen gözüme çarptı. Gerçek şu ki, MQL5 dilini okumak birçok konuda netlik sağlamaz. Meta alıntıların, bir grup beta test kullanıcısını kendi taraflarına çekmek için terminali kamu malı haline getirdiği açıktır - bu hareket onlara zaman ve para tasarrufu sağlar. Ancak kullanıcılara netlikten yoksun bir sertifika vermek, onlar için büyük bir gaftır. Peki, örneğin, en önemli bölümünü açalım " MQL4'ten Migration ":

Önceden Tanımlanmış Değişkenler

MQL5'te Ask, Bid, Bars gibi önceden tanımlanmış değişkenler yoktur. Rakamlar ve Nokta değişkenleri, tabloda gösterildiği gibi yazımda biraz değişti.

Tablo Ask, Bid ve Barlar hakkında bilgi vermemektedir. Aynı Ask kelimesi için arama yapılmaya çalışılması , kişinin en son fiyatları talep etmek için tamamen anlaşılmaz bir yapı ile karşı karşıya kalmasına neden olur. Geliştirici, yardımın bu bölümünü yazdırma aşamasında bile bunu öngöremez miydi? Saçmalık. Bu neden olabilir? Tek bir sebep var - tutarlılık eksikliği - yani gelecekteki kompozisyon için net bir planın olmaması. Büyük olasılıkla, sertifika rastgele yazılmıştır, ardından ayrı parçalar basitçe birbirine yapıştırılmıştır ve işte size bir "yardım". Hiçbir yere uymuyor. Kimse başkalarının taslaklarını okumayı sevmez!

Tamam, bu bir taslak olsa bile - örneğin şunun gibi farklı bir şekilde yazmak gerçekten zor muydu:

Önceden Tanımlanmış Değişkenler

MQL5'te Ask, Bid, Bars gibi önceden tanımlanmış değişkenler yoktur. Bu değerler MQL5'te diğer kurallara göre elde edilir. Bunun nasıl yapıldığını açıkça anlamak için " 1 11 ", " 2222 " ve " 3333 " bölümlerine aşina olmanız gerekir.

Rakamlar ve Nokta değişkenleri, tabloda gösterildiği gibi yazımda biraz değişti.

Her şey!!! Böyle basit bir hareket ve BÖYLE bir zaman ve emek tasarrufu.

MQL5 yardımını okumak daha çok haritasız, pusulasız ve ağaca tırmanıp yönünüzü bulamadan yoğun bir ormanda dolaşmaya benzer. Arzu ne olacak? Bu doğru - böyle bir ormana hiç girme. Geliştirici bu ormanı içini ve dışını biliyor. Kılavuzu kullanıcıya teslim etme konusundaki isteksizliği, en azından şaşkınlığa, daha fazla tiksintiye neden olur.

Geliştiricilerin "Artık bundan daha önemli görevlerimiz var" gibi cevaplarını okuduğumda, sadece sormak istiyorum, diyorlar ki, o zaman neden bu kadar kirli bir iş yayınladınız? İtibarın dezavantajıdır. İlk önce her şeyi kontrol etmek, hata ayıklamak, düzgün bir şekilde şifrelemek ve taslaklarınızla kullanıcılara eziyet etmemek daha iyi olmaz mıydı?

Hiç bir kelime yok. Metatrader 4 kaç yıldır kullanılıyor? Bu doğru, çok. Ve hala MQL4 dilinde normal bir ders kitabı yok. Böyle bir ders kitabı yapmaya çalışan ve başarısız olan bir aktivist vardı. O çalışkan bir adam ve başka bir şey değil. Kitabı normal bir ders kitabını çekmiyor. Daha iyi bir kreasyon olmadığı için, bu kreasyon şimdi bir ders kitabı olarak sitede. Neden bir ders kitabı çekmiyor? Evet, her şey basit - yeni başlayanlar bu kitabı okuyorlar, sonra foruma gidiyorlar ve o kadar çok çöp soruyorlar ki şaşırıyorsunuz. Normal bir ders kitabı olsaydı, bu olmazdı - okuyucu netleşecek ve gelecekteki kodda bir veya başka bir kaynağı kullanmanın geçerliliğini görecekti.

Uzun bir süre her şeyi bırakıp iki şey yapmak istedim - MQL4 için normal bir kod editörü ve bu dilde normal bir eğitim. Ama işin miktarı muazzam olduğu için ve kendi tatmin duygum dışında, böyle bir iş için hiçbir şey almazdım, bu fikirleri hayata geçirmeyi taahhüt etmedim.

Kısacası, muhtemelen birkaç yıl bekleyeceğim - meta alıntıların MQ5 kreasyonlarını cilalamasına izin verin. Bu kadar berbat yapılmış bir işe dokunmak bile istemiyorum. Ve bu olmadan, zaten "tüm eller kendi kıymıklarına". MQ5'i aceleyle perçinlemektense, MQ4 ailesini baştan sona hata ayıklamak daha iyi olur.

Hayal kırıklığına uğradım.

 
drknn :

Biçimsel mantığı biliyorum ve terimlerdeki farklılıklar hemen gözüme çarptı. Buradaki nokta, MQL5 dilini okumanın birçok konuda netlik sağlamamasıdır. Meta alıntıların, bir grup beta test kullanıcısını kendi taraflarına çekmek için terminali kamu malı haline getirdiği açıktır - bu hareket onlara zaman ve para tasarrufu sağlar. Ancak, kullanıcılara netlikten yoksun bir sertifika vermek, onlar için büyük bir gaftır. Peki, örneğin, en önemli bölümünü " MQL4'ten Migration " açalım....

Hayal kırıklığına uğradım.

Bazı özellikler dikkate alındığında oldukça kabul edilebilir bir referans (büyük ölçüde MQL5'te sürekli değişiklik yapılması gerçeğiyle ilgilidir).

Tabii ki, orada yanlışlıklar var ya da birçok insanın düşünmeyi tercih ettiği gibi, "ıskartalar ve söveler", ancak bu oldukça anlaşılabilir ve yavaş yavaş düzeltiliyor.

MQL4'ten MQL5'e geçiş konusu genellikle ayrı bir katmandır, geliştiricilerin muhtemelen MQL5'in kendisiyle ilgilenmesi ve ancak o zaman düşünmesi gerektiğinden, bu bölümdeki büyük değişiklikleri sonbaharın başına kadar (en azından ondan önce) unutmuştum. bu kısımda değişiklik yapıyoruz.

not

Burada, sonuç olarak her şeyin bir demetini eklemenin oldukça mümkün olduğunu tanıtmalıyım. Örneğin, bazı işlevleri MQL4'ten ESKİ bölümüne taşımak dahil (MQL4'te yapıldığı gibi).

Göçü kolaylaştırmak için yapılan çalışmaların bir kısmı yapılmasa bile büyük bir sorun haline gelmeyecek, çok daha az tökezleyecek...

 
Interesting :

Oldukça iyi bir referans...

Anlayışınız için teşekkürler :)