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
1. Yeni operatör bir işaretçi döndürür, elbette geliştiriciler örtük referans kaldırma ile kararlarını verdiler, bu nedenle sürümünüz çalışır, ancak belgelenmemiş şeylere karışmamak daha iyidir.
2. Tabii ki, elimizde C++ yok, ancak çok benzer, bu nedenle başlatma listeleri (verimliliği bilmiyorum) koşer.
Seçeneğin işe yarayıp yaramadığını kontrol ettim ve mantıksal olarak daha doğru:
2019.08.31 22:07:35.196 tst (EURUSD,H1) Strateji_1::Strateji_1
2019.08.31 22:07:35.196 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 22:07:35.196 tst (EURUSD,H1) strateji_2::strateji_2
2019.08.31 22:07:35.196 tst (EURUSD,H1) Bağlam::Bağlam
2019.08.31 22:07:35.196 tst (EURUSD,H1) Strateji_1::Algoritma
2019.08.31 22:07:35.196 tst (EURUSD,H1) Strateji_2::Algoritma
2019.08.31 22:07:35.197 tst (EURUSD,H1) Strateji_1::Algoritma
başlatma sırasında oluşturulan işaretçi ve nesnenin kendisi kaybolmadı ve arabirimdeki yöntem, sınıf 1 ve 2'deki yöntemlerin yerini almadı - her şey amaçlandığı gibi çalışıyor gibi görünüyor
başlatma sırasında kod bölümlerini tekrar etmekten nasıl kaçınılır? - yapıcıda mümkün değil
başlatma sırasında kod bölümlerini tekrar etmekten nasıl kaçınılır? - yapıcıda mümkün değil
Arayüz yerine normal bir sınıf yaparsınız. Oraya *m koyarsınız ve onu bir metod yaparsınız bool SomeMethod {if (CheckPointer(m)) return false; m=yeni...; doğru dön;}
hayır, arayüz gerekli - her tikte her şeyi çekmenin gerekli olmayacağı çok güzel - her tik için bir stratejiye bir çağrı yapacağım - genel olarak, tüm bunların konfigürasyonunu beğensem de, öyle görünüyor sorunumun bu şekilde çözülmesi gerektiğini:
Örneğimi biraz değiştirdim - her şey çalışıyor, ama bence şöyle görünmeli:
ancak herhangi bir nedenle, CStrategy::Algorithm(void) yönteminin gövdesini kaldırırsam bir hata olacaktır: 'Algorithm' - işlevin bir gövdesi olmalıdır
neden hata? - sonuçta, sanal değiştiriciyle CStrategy::Algorithm(void) yöntemini ilan ediyorum
Örneğimi biraz değiştirdim - her şey çalışıyor, ama bence şöyle görünmeli:
ancak herhangi bir nedenle, CStrategy::Algorithm(void) yönteminin gövdesini kaldırırsam bir hata olacaktır: 'Algorithm' - işlevin bir gövdesi olmalıdır
neden hata? - sonuçta, sanal değiştiriciyle CStrategy::Algorithm(void) yöntemini ilan ediyorum
sanal boşluk Algoritması()=0;
Hayır, o da çalışmayacak. Soyutlama beyan edilmişse, lütfen uygulayın.
Bence derleyici, arayüzden Algoritma () yöntemini ve sanal değiştirici nedeniyle bildirilen sanal geçersiz Algoritmasını () farklı yöntemler olarak algılıyor.
Torunlarda soyut bir yöntem uygulanmalıdır. Bir kez daha söylüyorum, burada arayüze gerek yok.
arayüzlere ihtiyaç var, danışmanın ayarlarına bağlı olarak, 6 strateji için farklı davranışlar bildirmek benim için uygun (çok fazla strateji yok, ancak kaç tane sipariş sistemi araştırması var)
şimdi böyle:
bu yüzden Algorithm() yöntemlerinin tüm gövdesini küçültmek istiyorum - eğer temel sınıfı doğru yazarsam - CSrategy sınıfının üstündeki örneğimde, o zaman Algorithm()'in kendisinde 5-10 satırdan fazla olmayacak
arayüz olmadan bu kod nasıl yazılır? - şimdi her şey kısa ve geriye kalan tek şey strateji algoritmalarını her tık veya daha az sıklıkta çekmek
как этот код без интерфейса написать? - сейчас все кратко и останется только дергать сами алгоритмы стратегий каждый тик или реже