Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 571
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
Daha önce şöyle bir soru vardı:
Alexey Viktorov :
lot = (mutlak_değer(sipariş_kar) + istenen kar) / (standart_sözleşme_boyutu * TP * puan)
teşekkürler Artyom Trishkin.
Teşekkür ederim Alexey Viktorov.
"Eşzamansız işlem" tanımını anlıyor musunuz? Eğer anladıysan, o zaman soru sorulmamalı.
Meslektaşlarım, acemi bir programcıya yardım edin.
Özel bir işlev kodu oluşturmaya çalıştım, böylece ayarlardaki zamanı üç zaman oturumu için olağan "13:45" biçiminde ayarlayarak işlevim doğru veya yanlış dönecekti. Buradaki fikir, işlevi önce Expert'e eklemekti. Değeri kontrol eder ve eğer doğruysa, ticaret yapabilir, devam edebilirsiniz...
Ve her şey iyi gidiyor gibi görünüyordu, Alert aracılığıyla döndürülen tüm parametreleri kontrol ettim, böylece her aşamada her şey açıktı, ama sonunda, görünüşe göre Başlat işlevinde yanlış beyan ettiğim gerçeğiyle karşılaştım, çünkü bir hata veriyor "yanlış parametreler sayımı".
Kod uzun, ana kodu vereceğim:
--------------------------------
geçersiz OnTick()
{
bool TradingAllowed = yanlış;
TradeTimeAllowed(TradingAllowed);
if (TradingAllowed = true) { Alert("1 lot satın al");}
else { Alert("Ticaret yasaktır"); }
}
//+------------------------------------------- --------------------+
bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3) //buradaki asıl fonksiyon. Alert aracılığıyla OnTick'e ekleyerek kontrol ettim. Doğru veya yanlış döndürür.
{ ....................}
---------------------
Ve ikinci sorun sonunda fonksiyonun kendisinde.
Şimdi orada yanlış:
if (Trade_Session_1 = true) TradeTime_Ok = true;
if (Trade_Session_2 = doğru) TradeTime_Ok = doğru;
if (Trade_Session_3 = doğru) TradeTime_Ok = doğru;
dönüş(TicaretZamanı_Tamam);
// yani sorun şu ki "son kim, o ve terlik". İlk periyot doğru veya ikinci ve üçüncü yanlış gösteriyorsa, sonunda yanlış hatırlanır. Planlandığı gibi, bunlardan en az birinin doğru olması durumunda, nihai değerin doğru kalması gerekir.
Şöyle yazmaya çalıştım:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ancak bu şekilde bir hata yazar. Neyi sevmediğini bilmiyorum.
İyi tavsiyelere yardım edin, kim yapabilir.
Bir sonraki şubeden nazik insanların yardımıyla ilk sorunu çözdüm. Fonksiyon doğru çağrılır, istenen değeri verir.
İkinci sorun devam ediyor:
Ve ikinci sorun, sonunda fonksiyonun kendisinde.
Şimdi orada yanlış:
if (Trade_Session_1 = true) TradeTime_Ok = true;
if (Trade_Session_2 = doğru) TradeTime_Ok = doğru;
if (Trade_Session_3 = doğru) TradeTime_Ok = doğru;
dönüş(TicaretZamanı_Tamam);
// yani sorun şu ki "son kim, o ve terlik". İlk periyot doğru veya ikinci ve üçüncü yanlış gösteriyorsa, sonunda yanlış hatırlanır. Planlandığı gibi, bunlardan en az birinin doğru olması durumunda, nihai değerin doğru kalması gerekir.
Şöyle yazmaya çalıştım:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ancak bu şekilde bir hata yazar. Neyi sevmediğini bilmiyorum.
İyi tavsiyelere yardım edin, kim yapabilir.
Ertelenen
Andrey Koldorkin :Meslektaşlarım, acemi bir programcıya yardım edin.
Özel bir işlev kodu oluşturmaya çalıştım, böylece ayarlardaki zamanı üç zaman oturumu için olağan "13:45" biçiminde ayarlayarak işlevim doğru veya yanlış dönecekti. Buradaki fikir, işlevi önce Expert'e eklemekti. Değeri kontrol eder ve eğer doğruysa, ticaret yapabilir, devam edebilirsiniz...
Ve her şey iyi gidiyor gibi görünüyordu, Alert aracılığıyla döndürülen tüm parametreleri kontrol ettim, böylece her aşamada her şey açıktı, ama sonunda, görünüşe göre Başlat işlevinde yanlış beyan ettiğim gerçeğiyle karşılaştım, çünkü bir hata veriyor "yanlış parametreler sayımı".
Kod uzun, ana kodu vereceğim:
--------------------------------
geçersiz OnTick()
{
bool TradingAllowed = yanlış;
TradeTimeAllowed(TradingAllowed);
if (TradingAllowed = true) { Alert("1 lot satın al");}
else { Alert("Ticaret yasaktır"); }
}
//+------------------------------------------- --------------------+
bool TradeTimeAllowed (string TS1, string TE1, string TS2, string TE2, string TS3, string TE3 // işte gerçek fonksiyon. Alert aracılığıyla OnTick'e ekleyerek kontrol ettim. Doğru veya yanlış döndürür.
{ ....................}
---------------------
Ve ikinci sorun sonunda fonksiyonun kendisinde.
Şimdi orada yanlış:
if (Trade_Session_1 = true) TradeTime_Ok = true;
if (Trade_Session_2 = doğru) TradeTime_Ok = doğru;
if (Trade_Session_3 = doğru) TradeTime_Ok = doğru;
dönüş(TicaretZamanı_Tamam);
// yani sorun şu ki "son kim, o ve terlik". İlk periyot doğru veya ikinci ve üçüncü yanlış gösteriyorsa, sonunda yanlış hatırlanır. Planlandığı gibi, bunlardan en az birinin doğru olması durumunda, nihai değerin doğru kalması gerekir.
Şöyle yazmaya çalıştım:
if (Trade_Session_1 = true || Trade_Session_2 = true || Trade_Session_3 = true) TradeTime_Ok = true; // ancak bu şekilde bir hata yazar. Neyi sevmediğini bilmiyorum.
İyi tavsiyelere yardım edin, kim yapabilir.
Ertelenen
Andrey Koldorkin :
1) İşlev 6 dize parametresi gerektirir ve onu bir boole ile çağırırsınız. 2) Eşittir işareti "=" değil, "=="'dir.
Ertelenen
LeonidB :Sorunu çözmeye yardım edin!
Haber kategorisi ayarları kaydedilmez. Terminal yeniden başlatıldıktan sonra ayarlar sıfırlanır. Yeniden yüklemek yardımcı olmuyor, yönetici olarak çalıştırmak yardımcı olmuyor. OS Windpws 10. Yapılandırmadan sorumlu tüm dosyaları buldum, değişiklik tarihleri her zaman terminalin kapanış tarihiyle çakışıyor, yani dosyaların üzerine yazılıyor. Anladığım kadarıyla, konfigürasyondan şu dosyalar sorumludur: terminal.ini, settings.ini, hotkeys.ini, common.ini (config klasöründe bulunur), news.dat (haber klasöründe bulunur).
Ve ayar henüz kaydedilmedi: Göster - Son fiyat satırı. Bu nokta haber ayarlarının aksine kritik değil ama bence bunlar aynı zincirin halkaları.
Herkese iyi günler, dördü üzerine yazdım, umarım hızlı bir cevap için .... Beyler, lütfen neyin yanlış olduğunu görün. Gösterge kodu iki satırda görünüyor, ancak gerçek zamanlı olarak çalışmak istemiyor :-(
İşte üç resimli bir yazının bağlantısı....
https://forum.mql4.com/ru/56236/page1041
Teşekkürler!!!!
Günlüğe baktı:
- danışmanı kurma girişimlerinden biri sırasında, program Profili değiştirme hakkında bir mesaj yayınladı;
- diğer tüm denemelerde, danışmanın yüklenmesi yorumsuz geçer.
Bir zamanlar profillerle çalıştım: Profil sayısını artırdım, her profil için kendi programlarımı belirledim. Orada bir şey kırdıysam, ne yazık ki bilmiyorum. Programın profili değiştirmekle ilgili bir mesaj vermesi için orada neyin kırılması gerektiğini bilmiyorum. Her ne kadar başka bir nedenden dolayı bir başarısızlık olabilir. Bu benim için net değil.
Bugün, test uğruna, yeni bir Expert Advisor (şablon) oluşturdum, OnInit(), OnDeinit(const int Reason), OnTick() fonksiyonlarına hiçbir şey yazmadım ve bu Expert Advisor'ı tabloya koymaya çalıştım ve ticarete izin verin.
Önceki durum ortaya çıktı.
Yardım lütfen. durumla ilgilen. Teşekkürler !!!!!!