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
int Weekday = TimeDayOfWeek ( TimeLocal ()); //Локальное время |
int Weekdays = TimeDayOfWeek ( TimeCurrent ()); //Серверное время |
while ( IsExpertEnabled ()) //До тех пор пока запушенно |
{if (Weekday!= 0 ||Weekday!= 6 ){Exp= true ; if (Weekday== 1 ){Info( 4 ,Weekday, 0 );}} //Если не Сбб. Воск. то разрешено |
if (Weekdays== 0 ||Weekdays== 6 ) //Если Сбб. Воск. то не разрешено |
{
Exp= false ;Info( 5 ,Weekdays, 0 );
if (Weekdays== 6 ){ Sleep ( 86400000 );} //Если суббота пауза 24 часа |
if (Weekdays== 0 ){ Sleep ( 3600000 );} //Если воскресение пауза 1 час |
}
Ticarete İzin Verilir
Uzman Danışmanların yardımıyla ticaret yapma olasılığı hakkında bilgi verir.
bool IsTradeAllowed ();
Çağrının ikinci şekli, belirtilen zamanda verilen sembol için ticaret fırsatı hakkında bilgi verir.
bool Ticarete İzin Verilir (
const dize sembolü // sembol
tarih saat test edilmiş_zaman // zaman
);
Seçenekler
semboller
[karakterde.
test edilmiş_zaman
[zamanında.
Geri dönüş değeri
EA'nın ticaret yapmasına izin veriliyorsa ve ticaret işlemlerini gerçekleştirmek için iş parçacığı ücretsizse true döndürür, aksi takdirde false döndürür.
Tabii ki teşekkür ederim, ama dedikleri gibi, bir yerden göze tırmanın) Ayrıca euro'ya 5.0 fiyatına depozito koyabilirim, sunucu buna izin verecek ve ardından her zamanlayıcı döngüsünde değiştirmeyi deneyin. depozito, hata 132 ise , o zaman piyasa kapalı, eğer normalse, o zaman ticaret var, ancak ticaret süresi boyunca bu bir sunucu seli, sorunu "rocker" aracılığıyla değil, insanca çözmek istiyorum, ve bu zaten MK geliştiricileri için.
Ticarete İzin Verilir
Uzman Danışmanların yardımıyla ticaret yapma olasılığı hakkında bilgi verir.
bool IsTradeAllowed ();
Çağrının ikinci şekli, belirtilen zamanda verilen sembol için ticaret fırsatı hakkında bilgi verir.
bool Ticarete İzin Verilir (
const dize sembolü // sembol
tarih saat test edilmiş_zaman // zaman
);
Seçenekler
semboller
[karakterde.
test edilmiş_zaman
[zamanında.
Geri dönüş değeri
EA'nın ticaret yapmasına izin veriliyorsa ve ticaret işlemlerini gerçekleştirmek için iş parçacığı ücretsizse true döndürür, aksi takdirde false döndürür.
İskender, yanılıyorsun)
İşte hiç çalışmayan bir seçenek.
İşte çok iyi çalışmayan bir seçenek.
Doğru yoldaki ipucu için teşekkürler, ancak piyasa açıkken, emirlerle çalışma olasılığını belirlemeye çalışmak bir şekilde doğru değil, ama işe yarayacak.
Kendi adıma, aşağıdaki gibi savunuyorum.
Mevcut sembol üzerinde işlem yapmak gerekiyorsa, piyasanın açık olduğuna dair dolaylı bir işaret yeni kenelerin gelmesidir. Böylece OnTick olayı yeterli ve soru kapanmış oluyor.
Mevcut sembolden farklı sembollerle çalışmak gerekiyorsa, o zaman mevcut sembol üzerinde ticaretin açılmış olması, başka bir sembol için ticaretin devam ettiğini garanti etmez. Örneğin, danışman EURUSD'de başlatılır, saat 09:00 UTC'dir ve diğer şeylerin yanı sıra pazarı yalnızca 13:00 UTC'de açılacak olan ABD şirketlerinin hisseleriyle ticaret yapmanız gerekir. Yani, OnTick yardımcı olmaz. Belli aralıklarla sunucuya emir göndermeye çalışılarak piyasanın diğer sembollerle açıldığı gerçeğini tam olarak belirlemek gerekecektir. Dakikada bir emir göndermek kesinlikle bir sunucu bombalaması değil, tamamen normal bir yaklaşım. Burada sorun ne?
haftanın gününü belirleme konusunda servis masasında bir kez cevaplandığım için kene yok ticaret yok,
bir çözüm önerdiler
TimeDayOfWeek( TimeLocal ());
kesinlikle tamamen doğru olmasa da , haftanın günü terminal olandan farklı olabilir.
Önemli bir koşul, siparişleri açmaya çalışmamaktı, ancak diğer projelerde defalarca buna başvurdum. Ve açıkçası, bana öyle geliyor ki, şimdiye kadar bu en basit ve en güvenilir yöntem.
Şimdilik, yapmayı başardığım en iyi seçenek şudur (ama hala bakıyorum, aşağıya bakın):
1) Karşılıklı ticarete izin verilip verilmediğini belirleyin - IsTradeAllowed() işlevinin ikinci biçimi (yukarıda bahsedilmiştir). Olmazsa, deneme yok :)
2) SymbolInfoInteger(<symbol>, SYMBOL_TIME) sembolü için son teklifin zamanını alım satım seanslarından birinin ( SymbolInfoSessionTrade() ) zamanı ile karşılaştırın, eğer teklif süresi seanslardan birinin aralığı içindeyse, biz ticaret yapmanın mümkün olduğunu düşünün.
3) Fiyat teklifi süresinin çok "modası geçmiş" olmadığını kontrol edin: xx dakikadan daha uzun bir süre önceyse (SymbolInfoInteger(<symbol>, SYMBOL_TIME) ve TimeCurrent()'i karşılaştırın), o zaman alıntının eski olduğunu düşünüyoruz ve bu nedenle bunun üzerinden takas mümkün değil çıkacak (yanılmıyorsam 3 dakikadan bahsediyorduk).
Bu yaklaşımın dezavantajı şudur: Enstrüman üzerinde işlem yapmanın imkansız olduğu ancak kenelerin devam ettiği durumlar olabilir.
Mekanizmayı araştırmadım, geliştirme bir komisyoncu için yapıldı ve test ederken böyle bir modu açtılar - keneler devam ediyor, ancak ticaret yapamazsınız. Bu seçeneğin üstesinden gelmek henüz mümkün olmamıştır.
Adil olmak gerekirse, gerçek ticarette bununla karşılaşmadığımı belirtmek gerekir. Dolayısıyla, "olağan" koşullar altında, çözüm tolere edilebilir görünüyor. Ama hala takipteyim :)
Not 1. ve 2. adımları birleştirmek mümkün görünüyor (SimgeInfoInteger(<symbol>, SYMBOL_TIME) ile IsTradeAllowed işlevine geçin), ancak bu seçeneği henüz test etmedim ve onaylamayacağım.