Güle güle robot, yaşasın delilik - sayfa 12

 
simpleton :

Bu arada, liderlik deneyimi hakkında. 5 yıl önce, mql5 forumunda MT5'in beklentileri hakkında tartışmıştık, o zaman zamanın söyleyeceğini söyledim. Aradan 5 yıl geçti ve topluluğun MT5'i reddettiğini görüyoruz.

Bilgi eksikliğiniz var. Müşterilerimizin ve uygulamalarımızın tabanının asla reklamını yapmayız.


Genel ilkeleri, teoriyi tercüme etmiyorum - teorinin kendisi için değil, pratikte uygulama için. Aynı C/C++ derleyicilerinde böyle ciddi "kusurlar" bulamazsınız.

Ve onlar hakkında yazarlar buldular ve hatta rapor ettiler.


Bu durumda "statik bir sınıf yönteminin sınıfın içeriğine tırmanma hakkı yoktur" diyorsanız, dinamik olarak bir nesne oluştururken neden bu hakka zaten sahip?

Korumayı abarttık, düzelteceğiz dedim. Teoride, koşullar kulağa basit geliyor, ancak pratikte statik/dinamik uygulamalar farklı çalışıyor ve bu da farklılıklara yol açıyor.


Peki ya statik olmayanın da aynı şekilde davranması gerçeğine ne demeli?

Aynı şekilde, "özel özel demektir" kuralı, "kurucu/yıkıcı için bir istisna yap" nüansını bastırdı. Bunu düzelteceğiz.


Dilin uygulanmasında hatalar varsa, evet, hatalar. Toplam kalite kontrolünden bahsediyorsunuz - bu yüzden pratikte MQL4++ derleyicisinin uygulama hatalarından kurtulun, böylece böyle bir kontrole sahip olduğunuz için hataları bulmak C++ derleyicilerinde olduğu kadar zor olacaktır. Hala bir ayrıştırıcının, gösterdiğim gibi hatalardan kurtulmanıza yardımcı olabileceğini düşünmüyorum.

Bu doğru, bunlar kendimiz sıfırdan yazdığımız derleyicideki hatalar / gözden kaçmalar. Yani bu, bir tırmık toplamanın olağan yolu.

Toplam kalite kontrolü, hatalar üzerinde çalışmaya ve onları bulmaya net bir şekilde odaklanmaya yönelik sistematik bir yaklaşımdır. Biz bunu yapıyoruz. Buna karşılık, zorlamaya karşı olduğunuzu ve teknik yollarla sıkı bir kontrol istemediğinizi beyan ediyorsunuz.



Sevmek ya da sevmemekle ilgili değil. Bir araç var. Neden tüm özelliklerini kullanmayı reddetmeliyim?

Bu durumda, "beğendim" ile ilgili bile değil. Bu, Myers'ın çok sevdiği şeydir. Ve nedense kimse onu C++ derleyicilerine "kasıtlı geziler koymaya" çalışmakla suçlamaya çalışmıyor.

İyi bir açıklamamız var - "bu bir C++ dili değil, özel bir MQL4/MQL5 dilidir. Bu nedenle, her şeyi desteklemek zorunda değiliz." Ancak her durumda, davranış en tanıdık C / C ++ 'a indirgenecektir.


Bu kolay bir iş değil, önceden çözülmüş değil. Burada çok çaba sarf etmeniz gerekiyor. MQL kullanıcılarının büyük çoğunluğu programcı değildir. Ve bir dil tasarlarken, bu önemli ölçüde dikkate alınmalıdır. Ama sorun eminim çözülmüştür.

Bu nedenle, eski MQL4'e yapılar eklemek, MQL4++ için yapıldığı gibi, işlemlerin önceliği gibi bir şeyi temizlemek yeterliydi - bu makul bir uzlaşma olacaktır. MT4'ün başarısı, büyük ölçüde, diğer şeylerin yanı sıra, dilin "hilelerinin" olmamasından kaynaklanıyordu. Şimdi değil. Ve derleyicinin uygulanmasında çok daha fazla hata var, çünkü MQL4++ eski MQL4'ten çok daha karmaşık ve geliştirme ekibinin çok fazla değişmesi olası değil.

Burada size katılıyorum, ancak bunun esas olarak rakiplerin anlaşılmaz bir şey yapmasından kaynaklandığını düşünüyorum.

Son 14 yılda 5 ticaret platformunu 5 kez sıfırdan yeniden yazdık.

Bu, gerçekten harika bir şey yaratmanın eski bir eşeği düşen tuğlalarla doldurmaktan daha iyi bir yoludur. Bu nedenle, hem MT5'in piyasaya sürülmesi hem de yeni MQL5, önümüzdeki 10 yıl için bize harika bir gelecek verdi.

Ama "memeler ellerine geçsin, asıl mesele şu ki, yenisini başlatıp başarısız olursam beni kovmazlar" düşüncesiyle oturup eski projeyi görenler, yönetimin saygısını kaybeder, iktidarsız olarak yazılırlar ve yavaş yavaş sahneden ayrılırlar.

 
Renat :
Bilgi eksikliğiniz var. Müşterilerimizin ve uygulamalarımızın tabanının asla reklamını yapmayız.

Önceki sürüm, yani MT4 için açık bilgi ve desteğe göre değerlendiriyorum.

MT4 çıktığında, MT3 desteklenmeyi bıraktı ve oldukça hızlı bir şekilde sunuldu - herkes MT4'e geçti. MT4 - MT5 çifti için, zaman aralığı uzun olmasına rağmen bu olmadı. Ve hala MT4'e karşı açık bir önyargı var.

Hatta derleyici de dahil olmak üzere geliştirmelerin MT5'ten MT4'e ters taşınmasını gerçekleştirdiniz. MT4'ten MT3'e ve hatta piyasaya sürüldükten 4 yıl sonra bile bir şey mi transfer oldu?

Renat :
Ve onlar hakkında yazarlar buldular ve hatta rapor ettiler.

Ancak bir fark var: Modern C/C++ derleyicilerinde bir hata bulmak, MQL4++'dan binlerce kat daha zor olmasa da muhtemelen yüzlercedir.

Renat :

Korumayı abarttık, düzelteceğiz dedim. Teoride, koşullar kulağa basit geliyor, ancak pratikte statik/dinamik uygulamalar farklı çalışıyor ve bu da farklılıklara yol açıyor.

Aynı şekilde, "özel özel demektir" kuralı, "kurucu/yıkıcı için bir istisna yap" nüansını bastırdı. Bunu düzelteceğiz.

Bu doğru, bunlar kendimiz sıfırdan yazdığımız derleyicideki hatalar / gözden kaçmalar. Yani bu, bir tırmık toplamanın olağan yolu.

Toplam kalite kontrolü, hatalar üzerinde çalışmaya ve onları bulmaya net bir şekilde odaklanmaya yönelik sistematik bir yaklaşımdır. Biz bunu yapıyoruz.

Burada, özel bir "motorun" gerekmediği olağan regresyon testlerini uygulamak yeterlidir. Dilde sınıflarda/yapılarda erişim kontrolü vardır - bunun için derlenmiş MQL programları biçiminde bir kez testler yazın. Bazıları başarıyla derlenmeli, diğerleri bir tür hatayla başarısız olmalıdır. Bu belirli yerdeki tüm toplam kalite kontrolü budur. Doğru, erişim kontrolünün tüm işlevlerini kapsayan testler önce yazılmalıdır ...

Renat :
Aksine, zorlamaya karşı olduğunuzu ve teknik yollarla sıkı bir kontrol istemediğinizi beyan ediyorsunuz.

Bu tam tersi değil. Varsayılan olarak, MQL programları için MQL derleyicisinin hem uyarıları hem de bazı C++ derleyicilerinde açıklamalar olarak adlandırılanları etkinleştirmesini sağlamak mümkün olacaktır. Yalnızca, en azından açıklamaların bağlantısının kesilmesi gerektiğini "ilan ediyorum". MQL programları için MQL derleyicisinde. Ve şimdi MQL4++ derleyicisinde bu anlamda hiçbir şey devre dışı bırakılamaz.

Hatalar çok kolay tespit edildiğinden, özellikle MQL derleyicisinin kendi uygulamasında kalite kontrolü eksiktir. MQL programlarının sıkı kalite kontrolünün bununla ne ilgisi var?

Renat :
İyi bir açıklamamız var - "bu bir C++ dili değil, özel bir MQL4/MQL5 dilidir. Bu nedenle, her şeyi desteklemek zorunda değiliz." Ancak her durumda, davranış en tanıdık C / C ++ 'a indirgenecektir.

İyi. Her şeyi desteklemiyorsun. Ancak desteklenenler, bu kadar miktarda ve hatta en basit temel yapılarda bile hatalar içermemelidir.

Sınıfların/yapıların üyelerine erişim kontrolünü destekliyor musunuz? En basit temel yapılarda en azından tüm ana durumları hatasız destekleyin.

Aynı erişim kontrolünü ele alalım - en basit temel yapılarda:

 /******************************************************************************/
class A {
private :
   class B { };
};

/******************************************************************************/
void OnStart () {
  A a;
  B b;
}

Bu hatasız derlenir:

'3.mq4' 3.mq4   1       1
0 error(s), 0 warning(s)                1       1

Ancak, C++'da bu kodun iki nedenden dolayı derlenmediğini görüyoruz:

$ clang -c 3 .cpp
3 .cpp: 10 : 3 : error: unknown type name 'B'
  B b;
  ^
1 error generated.

B Sınıfı, A sınıfı içinde tanımlanır, bu nedenle OnStart() içinde A::B olarak başvurulmalıdır:

 class A {
private :
   class B { };
};

/******************************************************************************/
void OnStart () {
  A a;
  A::B b;
}

Ancak hepsi bu kadar değil, değiştirilen kod hala C++ derleyicisi tarafından derlenmedi:

$ clang -c 3 .cpp
3 .cpp: 10 : 6 : error: 'B' is a private member of 'A'
  A::B b;
     ^
3 .cpp: 4 : 9 : note: declared private here
   class B { };
        ^
1 error generated.

Bazı nedenlerden dolayı, MQL4++ içindeki erişim denetimi genellikle yöntemler ve veri sınıfı üyeleri için çalışır, ancak türler için çalışmaz.

B sınıfı kapsamını A::B olarak belirtirken, MQL4++ derleyicisi aşağıdaki hataları üretir:

'3.mq4' 3.mq4   1       1
'B' - struct member undefined   3.mq4   12      6
'b' - undeclared identifier     3.mq4   12      8
'b' - some operator expected    3.mq4   12      8
expression has no effect        3.mq4   12      6
3 error(s), 1 warning(s)                4       2

Bu aynı zamanda neden "yapı üyesi tanımsız"?

Ve yine, C++ derleyicileri bir şekilde sınıflar içindeki türlerle de problem yaşamazlar. Ve MQL4++ derleyicisi yapar.

Bu hatalar Myers singletonunu uygulamaya çalışırken tesadüfen bulundu, bu durumda hiç kimse özellikle hataları aramadı. Hataların bazıları benim tarafımdan, bazıları ise tartışmadaki diğer katılımcılar tarafından bulundu. Bu, MQL4++ ile programlama yaparken derleyici uygulama hatalarıyla karşılaşmanın ne kadar kolay olduğunu gösterir. Ve hatalara rastlamak için, özellikle bir şey aramanıza gerek yok, sadece sorunu çözmeye çalışmak yeterlidir.

Bunların hepsinin ciddi MQL4++ kullanımı için kritik hatalar olduğunu vurgulayayım.

Açıkçası, en azından basit bir sağlık kontrolü için, en azından MQL4++ derleyicisini kontrol etmek için erişim kontrolü için yukarıda bahsettiğim tipte regresyon testi yok. Aksi takdirde, zaten tespit edilir ve düzeltilirdi.

Renat :
Son 14 yılda 5 ticaret platformunu 5 kez sıfırdan yeniden yazdık.

Bu, gerçekten harika bir şey yaratmanın eski bir eşeği düşen tuğlalarla doldurmaktan daha iyi bir yoludur. Bu nedenle, hem MT5'in piyasaya sürülmesi hem de yeni MQL5, önümüzdeki 10 yıl için bize harika bir gelecek verdi.

Ama "memeler ellerine geçsin, asıl mesele şu ki, yenisini başlatıp başarısız olursam beni kovmazlar" düşüncesiyle oturup eski projeyi görenler, yönetimin saygısını kaybeder, iktidarsız olarak yazılırlar ve yavaş yavaş sahneden ayrılırlar.

Yenilikçi bir geliştirme türü kullanan aktif eylemlerin en önemli bileşen olduğuna katılıyorum, ancak tek bileşen bu değil. Ve bir varil bal, merhemdeki bir sinekle bozulabilir.

Merhemdeki bu sineklerden biri açıkça yetersiz kalitedir. MQL'de bir şeyler yaratma amacı bu yüzden ortadan kalkıyor.

 

SSE2'den bahsediyorum, belki konuyla ilgili değil, aynı zamanda zevkle, hatta dinledim.

Ve sonra bilgisayarlardan birinin değişmesi gerekiyor, hepsi değil, ama konuyu dağıtıyor, forumu okumak dışında geliştirme, ticaret için kullanmıyorsunuz.

 
MT5 Süper! Üzerine piramitler inşa etmek büyülüdür.
 

Merhaba forumcular!

MT5'e geçiyorum ve birkaç soru istiyorum

bir tavus kuşuna sor.

Pavlik eğer   göreceksin sonra haber gönder

r.klassen.ruit@web.de

pansa

 
TimeMaster :

Yeni yapılarda derlenmeyen büyük bir hindi, baykuş vb. veri tabanınız varsa, daha yakından bakmak ve "göğsünüzü sallamak" mantıklıdır. Kullanışlı olanı bırakın ve yeni yapılar için yeniden yazmak ve hata ayıklamak için zaman ayırın.

Bir noktada sıkıldım.)

zaman ustası :

Gerçek deneyimli programcılar veya onlar olmak isteyenler her zaman yenilikleri takip eder, hatalar ve aksaklıklar onların ekmeğidir. İyi programlama olarak kabul edilen hatasız kod yazıyor. Metaquotes'ın tüm yeniliklerini araştırmak için gücünüz, zamanınız, fırsatınız veya isteğiniz yoksa, akıcı olduğunuz dili kullanın. DLL iptal edilmedi, hata ayıklanmış algoritmalarınızı bağlayın.

Peki ya gerçek tüccarlar veya onlar olmak isteyenler, ne takip ediyorlar? ) MT'nin ana özelliği olan uygun fiyatlı otomatik ticaret unutulmaya yüz tuttu ve sayısız yapının sürekli yenilikleri arasında kayboldu... Diyelim ki programlamaya daha ciddi bir yaklaşımla elde edilen otomatik ticaret seçenekleri var. MT'de sadece küçük, gerçekten unutulmuş bir hesap vardı. Bugün MT araçlarının rehabilitasyonu için 2 saat harcadım, görünüşe göre 10 kat daha fazlasına ihtiyacım var. İhtiyacım olduğundan emin değilim, belki biraz daha kazacağım, bunun yerine "eski zamanların hatırına". Prensip olarak, kendim için her şeye karar verdim.

 
Figar0 :

MT'nin ana özelliği olan uygun fiyatlı otomatik ticaret, unutulmaya yüz tuttu ve sayısız yapının sürekli yenilikleri arasında kayboldu... Programlamaya daha ciddi bir yaklaşımla kullanılabilen otomatik ticaret seçenekleri var, diyelim. MT'de sadece küçük bir unutulmuş hesap vardı. Bugün MT araçlarının rehabilitasyonu için 2 saat harcadım, görünüşe göre 10 kat daha fazlasına ihtiyacım var. İhtiyacım olduğundan emin değilim, belki biraz daha kazacağım, bunun yerine "eski zamanların hatırına". Prensip olarak, kendim için her şeye karar verdim.

Aslında, yalnızca önceki özellikleri kullanırsanız, şimdi bile her şey çalışır. Bazı şeyler çok daha basit ve daha güvenilir bir şekilde yapılabilir, örneğin, geçmişteki kesintileri hesaba katarak: ondan önce (µl ++), molalarla geçmişe dayalı hesaplama yeteneği bana biraz "baş ağrısına" neden oldu (nedeniyle önce tarihin "kuyruğu" yüklenir, sonra kaçırılan çubuklar içeriye sığar) "koltuk değneği" kullanmak zorunda kaldım. Şimdi her şey çok daha kolay. Ek özellikler kullanamaz ve daha önce olduğu gibi LCL'yi eski / basitleştirilmiş biçiminde kullanamazsınız. İstisna, dizi taşması olan programlardır (dizin yanlış hesaplandı veya bellek tahsis edilmedi) - bu şekilde garantisiz ve büyük olasılıkla yanlış çalışıyorlardı.
 
Figar0 :

Bir noktada sıkıldım.)

Ve birinin govnokoda'yı doğurduğu gerçeği için kim suçlanacak???

figar0 :

Prensip olarak, kendim için her şeye karar verdim.

Tutmaya çalışan var mı? Kement atıldı ve tutuldu ???

 
AlexeyVik :

Ve birinin govnokoda'yı doğurduğu gerçeği için kim suçlanacak???

Buradaki boktan kodun nesi var? Bazı temel şeyler değişti
 
TheXpert :
Buradaki boktan kodun nesi var? Bazı temel şeyler değişti
Sadece merak ediyorum (eski kodu kullanıyorum, işe yarıyor): temel şeyler nelerdir?
Neden: