Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 223
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Tünaydın. Lütfen acemi bir tüccarın, keyfi kar alma yeteneği ile döviz çiftlerinde kilit emirleri açabilen uygun bir otomatik ticaret EA bulmasına yardımcı olun. Teşekkür ederim.
Bir seçenek olarak: hepsinde, tür tanımlayıcısını döndürdüğünüz Type yöntemini bildirin.
Heh, kaynak kodu düzenlemek mümkün olsaydı... Her şeyi bu kadar basitleştirmeye gerek yok. Ama yine de - mql5'te bir sınıf adı var mı???
Heh, kaynak kodu düzenlemek mümkün olsaydı... Her şeyi bu kadar basitleştirmeye gerek yok. Ama yine de - mql5'te bir sınıf adı var mı???
Şablonlara doğru bakın. Bu kod, bir sınıfın veya ilkel türün adını döndürür.
#include <Ticaret\Ticaret.mqh>
//+------------------------------------------- ------ ----------------------+
//| |
//+------------------------------------------- --------------------+
geçersiz Açılışta ()
{
//---
CTrade ticareti;
çift d_değeri=M_PI;
int i_value=INT_MAX;
Yazdır ( "d_value: type=" ,GetTypeName(d_value), ", value=" , d_value);
Print ( "i_value: type=" ,GetTypeName(i_value), ", value=" , i_value);
Print ( "ticaret: type=" ,GetTypeName(ticaret));
//---
}
//+------------------------------------------- --------------------+
//| Türü bir dize olarak döndürür |
//+------------------------------------------- ------ ----------------------+
şablon < typename T>
string GetTypeName( const T & t)
{
//--- türü bir dizge olarak döndür
dönüş ( typename (T));
//---
}
Şablonlara doğru bakın. Bu kod, bir sınıfın veya ilkel türün adını döndürür.
#include <Ticaret\Ticaret.mqh>
//+------------------------------------------- --------------------+
//| |
//+------------------------------------------- ------ ----------------------+
geçersiz Açılışta ()
{
//---
CTrade ticareti;
çift d_değeri=M_PI;
int i_value=INT_MAX;
Yazdır ( "d_value: type=" ,GetTypeName(d_value), ", value=" , d_value);
Print ( "i_value: type=" ,GetTypeName(i_value), ", value=" , i_value);
Print ( "ticaret: type=" ,GetTypeName(ticaret));
//---
}
//+------------------------------------------- --------------------+
//| Türü bir dize olarak döndürür |
//+------------------------------------------- --------------------+
şablon < typename T>
string GetTypeName( const T & t)
{
//--- türü bir dizge olarak döndür
dönüş ( typename (T));
//---
}
İçinde! Bir şeyim var! Ama yeni ile çalışmıyor - kodda neye ihtiyacım olduğuna dair bir örnek var - biri bana hangi yöntemleri söyleyebilir?
İçinde! Bir şeyim var! Ama yeni ile çalışmıyor - kodda neye ihtiyacım olduğuna dair bir örnek var - biri bana hangi yöntemleri söyleyebilir?
Birisi bana yukarıdaki kodun neden gerçek zamanlı olarak çalıştığı halde test cihazında çalışmadığını açıklayabilir mi !!? HistoryOrderGetInteger... özelliklerinin neden HistorySelect(0, TimeCurrent()) 'dan sonra test cihazında mevcut olmadığıyla özellikle ilgileniyorum.
Strateji test cihazında ekran görüntüsü:
Demoda gerçek zamanlı ekran görüntüsü:
ps İlginç bir şekilde, test cihazındaki ilk sipariş doğru bir şekilde işlenirken geri kalanı değil. Ve yine de, HistroryOrderSelect(ticketOrder) yorumunu kaldırırsanız, o zaman gerçek zamanlı olarak siparişin seçilmediğine dair bir mesaj görünür ve strateji test cihazında tam tersine, ilk sipariş dışında her şey çalışmaya başlar.
Ve HistorySelect() ile ilgili bir sorunum var. Piyasa emri göndererek script ile pozisyon açıyorum ve eğer bir fırsat açılırsa script lansmanından bu yana tarihteki işlem sayısına hemen bakıyorum ve saniyede 10 kez aralıklarla kontrol ediyorum. Elbette tek bir anlaşma olmalı. İşte komut dosyası:
Ve işte Alpha Forex'teki sonuç:
Anlaşma aslında yapıldı ve 10 saniye sonra bile tarihte değil. Bu ne? Hata MT'si? Hata Alfa? Bilmediğim bir özellik mi? Alpari için, aynı komut dosyası iyi çalışıyor, yalnızca ilk (sıfır) adımda sıfır atlamalar (peki, bu anlaşılabilir - tarih henüz güncellenmedi), diğer tüm adımlar bir. Ama on saniye sonra, tarihte neden anlaşma yok?
Ve HistorySelect() ile ilgili bir sorunum var. Piyasa emri göndererek script ile pozisyon açıyorum ve eğer bir fırsat açılırsa script lansmanından bu yana tarihteki işlem sayısına hemen bakıyorum ve saniyede 10 kez aralıklarla kontrol ediyorum. Elbette tek bir anlaşma olmalı. İşte komut dosyası:
Ve işte Alfa Broker'ın sonucu:
Anlaşma aslında yapıldı ve 10 saniye sonra bile tarihte değil. Bu ne? Hata MT'si? Hata Alfa? Bilmediğim bir özellik mi? Alpari için, aynı komut dosyası iyi çalışıyor, yalnızca ilk (sıfır) adımda sıfır atlamalar (peki, bu anlaşılabilir - tarih henüz güncellenmedi), diğer tüm adımlar bir. Ama on saniye sonra, tarihte neden anlaşma yok?
suşlar dize
tarihsaat dtStartTime = TimeCurrent();
dtStartTime ve TimeCurrent() zamanına göre aynı sayı olmadığından emin misiniz? Belki bir saniyelik yuvarlama, tamamlanmış bir ticareti dtStartTime'ın dışına çıkarır.
suşlar dize
tarihsaat dtStartTime = TimeCurrent();
dtStartTime ve TimeCurrent() zamanına göre aynı sayı olmadığından emin misiniz? Belki bir saniyelik yuvarlama, tamamlanmış bir ticareti dtStartTime'ın dışına çıkarır.
Ve bir şey olsa bile, MT'nin bu saniyede tarih vermesi gerekmez mi? Onlar. sınırları kendisi de dahil olmak üzere belirlenen sınırlar içinde hikayeyi vermiyor mu?
Ama yine de, hem dtStartTime = TimeCurrent() - 1 hem de dtStartTime = TimeCurrent() - 10 yazmayı denedim. Faydası olmuyor.