MQL5 Sihirbazı ve Standart Ticaret Sınıfı Kitaplığı hakkında sorular - sayfa 12
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
Şimdiye kadar, yukarıdaki dezavantajları ortadan kaldırmanıza izin veren tek kişi:
Konum izleme ve para ve risk yönetimi modüllerinden sinyal modülünün Direction() yöntemi ile döndürülen değerlerin okunmasına açık erişim.
Onlar. pozisyon izleme ve para ve risk yönetimi modüllerine bir yöntem daha ekleyin; örneğin, sinyal modülü sınıfının bir örneğine atıfta bulunan ve Direction() yönteminin bir sonucu olarak dönen çift getMainSingnal() tanımlayıcısı ile sinyal modülü. Bu bilgi alışverişi salt okunur modda gerçekleştiği için güvenlikten hiçbir şekilde ödün verilmeyecektir.
Bunun için ihtiyacınız var
Neredeyse her şey açık. Açıklığa kavuşturmak istediğim tek şey şudur: "Neden MM düzeyinde bir sinyal ve takip etme arzunuz temel sınıflar düzeyinde uygulanmak zorunda?".
Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).
Bu yüzden onlara karşılık gelen 1.,2.,3'ü koyun.
Neredeyse her şey açık. Açıklığa kavuşturmak istediğim tek şey şudur: "Neden MM düzeyinde bir sinyal ve takip etme arzunuz temel sınıflar düzeyinde uygulanmak zorunda?".
Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).
Bu yüzden onlara karşılık gelen 1.,2.,3'ü koyun.
Gerçek şu ki, Master CExpert sınıfını temel sınıf olarak alır. Ve bu nedenle, oluşturduğum modüllerde gerekli işlevleri hiçbir şekilde yeniden tanımlayamayacağım, çünkü sinyal modülü sınıfının bir örneğine erişimleri olmadığından, başlangıçta bu çok temel CEхpert sınıfı ile zaten uyumsuzdurlar.
Sonuçta, sinyal modülü sınıfının bir örneği yalnızca Expert.mqh dosyasının 67. satırındaki CExpert sınıfı alanında saklanır.
CExpertSignal *m_signal; // trading signals object
ve bu alan, temelinde oluşturulan diğer sınıflar ve modüller için paylaşılmaz (erişilemez).
Bu nedenle, master ile uyumlu olması için CExpertMoney ve CExpertTrailing sınıflarını geçersiz kılmamın bir yolu yok.
Sonuçta, ana sınıflarda erişim kapalıysa, soyundan gelenler bunu hiçbir şekilde almayacak.
Köke bakın (c) Kozma Prutkov "Aforizmalar"
CExpertSignal sınıfının örneklerini geçmeden sinyal modülünden pozisyon izleme ve para ve risk yönetimi modüllerine alım satım sinyallerinin nasıl aktarılacağını anladım.
CExpertMoney ve CExpertTrailing sınıflarına iki satır ekleyelim:
ExpertMoney.mqh dosyası için:
ExpertTrailing.mqh dosyası için:
Böylece alım satım sinyallerinin iletilmesi için gerekli alanları ve yöntemleri belirledik. Şimdi bu alım satım sinyallerini modül sınıflarına iletmemiz gerekiyor. Bunu Expert.mqh dosyasında yapacağız, yani. CExpert sınıfı için
Alım satım sinyallerini pozisyon takip sınıfına aktarmak için bir satır yazacağız:
ve her takipten önce çağrılan yöntemin en başına, yani CheckTrailingStop():
Alım satım sinyallerini para ve risk yönetimi sınıfına aktarmak için bir satır yazacağız:
ve her pozisyon açılışından önce çağrılan yöntemin en başına, yani CheckOpen():
Ve işte bu, sorun çözüldü.
Artık pozisyon izleme ve para ve risk yönetimi modüllerindeki alım satım sinyallerinin güncel değerini şu alanın değerine bakarak almak mümkün: m_signaldirection. Geriye sadece CExpertMoney ve CExpertTrailing sınıflarındaki yeni alanların ve yöntemlerin varlığı hakkında belgelere yazmak ve değiştirilen dosyaları güncellemelere eklemek kalıyor.
İşte dosyalar. Expert Advisor'daki 100 ve 123. satırlar elle yazılmıştır.
Başka sorunuz varsa, lütfen iletişime geçin.
İşte dosyalar. Expert Advisor'daki 100 ve 123. satırlar elle yazılmıştır.
Başka sorunuz varsa, lütfen iletişime geçin.
Kahretsin, bu geliştiriciler ne tür insanlar? Halihazırda ticaret sistemleri oluşturma konusunda deneyime sahip olan ve kaynağın manuel olarak iyileştirilmesi gerektiğinden son kullanıcılar için pratik olarak uygun olmayan ticaret sistemleri oluşturmaya yönelik kendi vizyonlarını icat etmeyen tüccarlar tarafından ihtiyaç duyulan şeyleri dinlemeye ne zaman başlayacaklar? ? İçeri girip ellerimle tamir edebileceğimi ne kadar açıklayabilirim ve o zaman bile programlamaya aşina olmama rağmen neyin ve neden olduğunu anlamam uzun zaman alacak. Ve son kullanıcının koda girmesi pek olası değildir, çünkü. Programlamayı anlamıyor. Kendiniz ilan ettiniz, alıntı yapıyorum:
" Programlama dilleri bilgisi artık ticaret robotları oluşturmak için bir ön koşul değil. " Bkz. https://www.mql5.com/ru/articles/240
"Zaten MQL5 Sihirbazı'nın ilk sürümünde, MQL5 dilinde kaynak kodu şeklinde basit modüller seti olarak kullanıma hazır bir Expert Advisor'ı hızlı bir şekilde oluşturmak mümkündü. Bunun için MQL5 dili bilgisi gerekli bile değildi , " MQL5 Sihirbazında Uzman Danışmanınızı Oluşturun " makalesini okumanız yeterliydi. bkz. https://www.mql5.com/ru/articles/275
Ve şimdi programlama dilleri bilgisinin gerekli olduğu ortaya çıktı, çünkü. Sihirbaz çalıştıktan sonra kullanıcının koda tırmanması ve orada bir şeyi düzenlemesi gerekir. Onlar. tüm beyanlar eski beyanlardır - geliştiricilerin icatları ve aldatmacaları.
Örneğin, başka bir modül geliştiricisi tarafından yazılmış bir modülün verdiği alım satım sinyalinin seviyesine göre pozisyon açması gereken kendi para ve risk yönetimi modülümü yazacağım. Sonuç olarak, modülümün artık master ile uyumlu olmadığı ortaya çıktı. Kullanıcılara, modülün çalışmaya başlaması için kodda bir yere gitmeleri ve bazı satırlar eklemeleri gerektiği nasıl açıklanır? Ne de olsa, modül geliştiricilerin modüller oluşturması gerekir ve master, modüllerin en azından birbirleriyle çakışmaması ve birbirleriyle tamamen uyumlu olması için bunları otomatik olarak tek bir tutarlı sistemde birleştirmelidir. Ve ustanın bunu yapmadığını anlıyorsunuz, çünkü. ondan sonra, koda tırmanmanız ve her şeyi manuel olarak yeniden yapmanız gerekir.
Son mesajımda belirttiğim ana sınıf dosyalarına sadece altı satır yazmak gerçekten çok mu zor? Ve sorun kendi kendine çözülecek ve kimsenin kaynak koduna girip orada bir şeyi düzenlemesi gerekmeyecek. Ellerinin düştüğünü? Sihirbazdan sonra bir şeyi manuel olarak nasıl düzelteceğinizi gösteren bir gösteriyle neden bazı çöplerle zaman harcayasınız? Daha sonra kimsenin benzer sorunları çözmek için koda girmesine gerek kalmaması için aynı zamanı daha faydalı bir şeye harcayamaz mıyız?
Şirketinizin bir yandan tam otomasyon ilan etmek için nasıl bir ideolojisi var ve söz konusu olduğunda, sözde "otomasyon" dan sonra koda girmeyi ve her şeyi kalemlerle yeniden yapmayı teklif ediyorlar?
Genel olarak, anladığım kadarıyla, tüm bunları açıklamak işe yaramaz. Ve tüccarların MT5'e geçmek istememelerine şaşıracak bir şey yok, çünkü platform ham ve otomatik ticaretin rahatlığı için değil, bu platformun geliştiricilerinin rahatlığı için yapıldı. Ve kullanıcı programlamayı tam olarak öğrenmiyorsa, otomatik ticaretten mümkün olduğunca uzak durması onun için daha iyidir.
Eğer istemiyorsan, zorunda değilsin. Yapacak başka bir şeyiniz yoksa, burada oturun ve her kullanıcıya kalemlerle kaynak koduna nereye ve nasıl girmeleri gerektiğini ve tam olarak neyi düzeltmeleri gerektiğini açıklayın.
Her halükarda, böyle bir tartışma düzeyi ve izin verilen abartı sınırının ötesinde hemen hemen her sorunun kaldırılması ile sizinle hiçbir iş yapılamaz. Gerçek iş, sözlü demagojiyi değil, bilinçli karar vermeyi içerir.
Korkarım ki ya maksimalizmin tutsağısınız ya da araçların uygulanabilirliğinin sınırlarını anlamıyorsunuz.
Her halükarda, böyle bir tartışma düzeyi ve izin verilen abartı sınırının ötesinde hemen hemen her sorunun kaldırılması ile sizinle hiçbir iş yapılamaz. Gerçek iş, sözlü demagojiyi değil, bilinçli karar vermeyi içerir.
Evet, genel olarak, bir iş istemedim, yani. para kazanmak uğruna ve gönüllü olarak yapılan işbirliğinden oldukça memnun kaldım. Nasıl ve nerede para kazanacağıma kendim karar veririm.
Eh, olmayacak ve olmamalı. Bizim işimiz teklif, sizin hakkınız reddetmek. Dedikleri gibi: usta ustadır.
Şirketiniz zaten her şeyi fark ettiyse ve hatta aptallara sözde "hazır" Uzman Danışmanların nasıl oluşturulacağını öğrettiyse ve bunların yalnızca Sihirbazı göstermek için uygun olmaları, ancak otomatik ticaret için uygun olmaması önemli değil, tarihsel veriler, öz sermaye eğrisi korkutucu görünüyor çünkü. modülerlik sağlanır, ancak tam teşekküllü bir ticaret sistemi için modüllerin tutarlılığı yoktur, o zaman size müdahale etmeyeceğim ve ticaret sistemlerinin nasıl oluşturulması ve oluşturulması gerektiğine dair kurumsal vizyonunuzu daha da teşvik etmeyeceğim.
İyi şanlar!
...
Örneğin, başka bir modül geliştiricisi tarafından yazılmış bir modülün verdiği alım satım sinyalinin seviyesine göre pozisyon açması gereken kendi para ve risk yönetimi modülümü yazacağım. Sonuç olarak, modülümün artık master ile uyumlu olmadığı ortaya çıktı. Kullanıcılara, modülün çalışmaya başlaması için kodda bir yere gitmeleri ve bazı satırlar eklemeleri gerektiği nasıl açıklanır? Ne de olsa, modül geliştiricilerin modüller oluşturması gerekir ve master, modüllerin en azından birbirleriyle çakışmaması ve birbirleriyle tamamen uyumlu olması için bunları otomatik olarak tek bir tutarlı sistemde birleştirmelidir. Ve ustanın bunu yapmadığını anlıyorsunuz, çünkü. ondan sonra, koda tırmanmanız ve her şeyi manuel olarak yeniden yapmanız gerekir.
Son mesajımda belirttiğim ana sınıf dosyalarına sadece altı satır yazmak gerçekten çok mu zor? Ve sorun kendi kendine çözülecek ve kimsenin kaynak koduna girip orada bir şeyi düzenlemesi gerekmeyecek. Ellerinin düştüğünü? Sihirbazdan sonra bir şeyi manuel olarak nasıl düzelteceğinizi gösteren bir gösteriyle neden bazı çöplerle zaman harcayasınız? Daha sonra kimsenin benzer sorunları çözmek için koda girmesine gerek kalmaması için aynı zamanı daha faydalı bir şeye harcayamaz mıyız?
...Yaklaşımınız sınıf kapsüllemesini bozuyor ve sonuç olarak hiyerarşik karışıklığa neden oluyor.
Boş zamanlarınızda Steve McConnell'in Perfect Code kitabını okuyun.
Basitçe söylemek gerekirse, Master'ı eldiven üretimi için bir fabrika olarak hayal edin, sağ ve sol eller için beş parmaklı bir damga var, ancak daha sonra altı parmaklı eldivenler için küçük bir sipariş beliriyor. Sonuçta böyle insanlar var. Ama onlar için bir damga yapmak yerine (ki bu bir yığın yapacak ve şimdilik orada duracak), kayan bir parmak yaparak beş parmaklı damgada değişiklik yapmayı öneriyorsunuz. Bir o kadar evrensel gibi ve her şey harika, ama hayali milyonlarca beş parmaklı eldivenin kalıbının gücü evrensellik uğruna zayıflatılacak (küçük bir ihtiyaç uğruna, bazen altı parmaklı olanları serbest bırakın) . Ve sonra 300 dört parmaklı bir parti için bir sipariş olacak ve yine kanıtlanmış, güvenilir bir şablonu parçalayacak.
Size yukarıda söylendi:
Bence kötü olacak (yani kötü). Algoritma tipik değil (bana göre). Anladığım kadarıyla, kendi MM ve takip modülleriniz var (sinyale bağlı kendi algoritmalarınızla).
Standart İncil'de değişiklik yapmak yerine, onu genişletmek (miras yoluyla) üzerinde çalışmak daha iyidir. O zaman gerçekten ilginç olacak.
Not Ayrıca, insanların kodun incelikleriyle uğraşmak zorunda kalmamaları için (yukarıda yazdığınız gibi), bitmiş modülleri bibl'e sarabilir ve pazara dökebilir, ardından modülü Reshetov'dan bağlayabilir ve basabilirsiniz. [ganimet indir] düğmesi
Yaklaşımınız sınıf kapsüllemesini bozuyor ve sonuç olarak hiyerarşik karışıklığa neden oluyor.
Boş zamanlarınızda Steve McConnell'in Perfect Code kitabını okuyun.
Basitçe söylemek gerekirse, Master'ı eldiven üretimi için bir fabrika olarak hayal edin, sağ ve sol eller için beş parmaklı bir damga var, ancak daha sonra altı parmaklı eldivenler için küçük bir sipariş beliriyor. Sonuçta böyle insanlar var. Ama onlar için bir damga yapmak yerine (ki bu bir yığın yapacak ve şimdilik orada duracak), kayan bir parmak yaparak beş parmaklı damgada değişiklik yapmayı öneriyorsunuz. Bir o kadar evrensel gibi ve her şey harika, ama hayali milyonlarca beş parmaklı eldivenin kalıbının gücü evrensellik uğruna zayıflatılacak (küçük bir ihtiyaç uğruna, bazen altı parmaklı olanları serbest bırakın) . Ve sonra 300 dört parmaklı bir parti için bir sipariş olacak ve yine kanıtlanmış, güvenilir bir şablonu parçalayacak.
Size yukarıda söylendi:
Standart İncil'de değişiklik yapmak yerine, onu genişletmek (miras yoluyla) üzerinde çalışmak daha iyidir. O zaman gerçekten ilginç olacak.Örneğin, bir takip eden durdurma, modülün üçüncü taraf geliştiricisi tarafından yazılan bazı ayrı sinyal sistemine göre, örneğin hareketli bir ortalamaya veya bir paraboliğe göre yürütülür, sinyalleri bazı noktalarda sinyal modülünün çıktılarıyla çelişir ve tüm ticaret sistemi uyumsuz hareket etmeye başlar. Para ve risk yönetimi modülü de telepatik olarak alım satım sinyalinin zayıf olduğunu ve açılan pozisyonların hacmini azaltma zamanının geldiğini tahmin edemez ve ayrıca sinyal modülünden bağımsız bazı kurallara göre hareket eder, yani. biri dönüşlerde yavaşlamayı ister, diğeri gaza basar. Ve sözde ustanızın yardımıyla oluşturulan tüm ticaret sistemi, büyükbaba Krylov'un "Kuğu, kanser ve turna" adlı masalında olduğu gibi ortaya çıkıyor. Daha fazla ve daha az değil. Ve şirketiniz, otomobil ticareti için bize pervasız danışmanlar toplamanın bu muhteşem ideolojisini empoze etmeye çalışıyor. Ve buna ihtiyacımız var mı?
Sonuç olarak, sadece hem yatırımcıları hem de yatırımcıları korkutabilen bu tür özkaynak ve denge çizelgeleri ile alım satım sistemleri elde edilir, bakınız https://www.mql5.com/en/code/833
Ancak bu tür çizelgelerin nedeni, modülün yaratıcısı, bu durumda Nikolai Kositsin'in yanlış bir şey yapması değil, ticaret sisteminin diğer modüllerinin birbiriyle koordine edilememesi ve farklı hareket edememesidir.
Ancak, zaten açıklamak işe yaramaz. Platform geliştiricileri, sorunları çözen talihsiz altı satırı yazmak yerine, forumlara uzun ayak örtüleri yazacak, ticaret sistemlerinin geliştiricilerini demagojiyi yaymak, kapsülleme ilkelerini ve diğer ölümcül günahları ihlal etmekle suçlayacaklar, ancak hiçbir şeyi kaldırmayacaklar. kendi eksikliklerini ve yanlış anlamalarını düzeltmek için parmak.
Bu nedenle, daha fazla tartışma anlamsız. Fikrinizle kalın ve istediğiniz gibi hareket edin. Zaten yorgunum ve bir anlamı yok çünkü. platform geliştiricileri umursamıyor, çünkü kendi kullanımları için olmayan zanaatları ortaya koyuyorlar ve otomatik ticaret platformu kullanıcılarının aynı zanaatları kullanıp kullanamayacakları, geliştiricilerin hiç umrunda değil. İyi beslenen aç olanı anlamaz.
...
Reshetov, bu ayak örtülerini bile duygularla okuyabiliyorum. Tartışmak istiyorsan tartış.
Sihirbazın özü, tüccarların ihtiyaçlarının çoğunu karşılayan bir şablon oluşturmaktır. Solucan üzerinde bir danışman şablonum var (kendim yazdım), ana işlevselliği belirliyor. Ve pratikte her zaman düzeltilmesi gerekir. Ancak, düzenlemeler minimum düzeydedir. Hiç düzenleme yapmamak için bir şablon oluştursaydım, boğulabileceğiniz tüm durumlar için çok büyük bir kod olurdu.
Master, halihazırda çalışmakta olan bir şablon oluşturur ve programlamayı hiç bilmeyen bir kişi onu olduğu gibi kullanabilir. Kodlamayı anlıyorsanız, onu istediğiniz şekilde değiştirmek zor değildir. Standart İncil'de bir şeyin nereden geldiğini ve her şeyin nereye gittiğini anlamak için sadece bir kez yeterlidir. Ayrıca standart İncil de örnek olarak kullanılabilir ve beğendiğiniz bölümleri kodunuza kopyalayıp yapıştırabilirsiniz.