Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 571

 
Artyom Trishkin :

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.

 
Karputov Vladimir :
"Eşzamansız işlem" tanımını anlıyor musunuz? Eğer anladıysan, o zaman soru sorulmamalı.
Mükemmel anlıyorum! Bu nedenle, soru. SENİNLE amlarla rekabet etmeye niyetim yok.
 

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 :


Sergey Vladimirov :

1) İşlev 6 dize parametresi gerektirir ve onu bir boole ile çağırırsınız. 2) Eşittir işareti "=" değil, "=="'dir.

 
Evet. Hepsi düzeltildi. Hatalar gitti. Teşekkür ederim.
 

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!!!!

Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
  • www.mql5.com
Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. (faq) - MQL4 форум - Страница 1041
 
Tünaydın. Gerekli kalıpları otomatik olarak aramak ve pozisyonları manuel olarak açmak için kullanmak istediğim MT5 üzerine bir danışman yazdım. Onlar. danışmanda ticaret işlevi yoktur. Benim sorunum, bu EA'yı çizelgeye yükleyemem. EA'da göstergelere çağrı yoktur. Tüm göstergeler programda yazılmıştır. Derledim ve ardından strateji test cihazında çalıştırdım. Hepsi sorunsuz. Danışmanı grafiğe koyuyorum, monitörde, ayarlarda ve danışmanın görünen penceresinde işlem yapma izni veriyorum . Fiyat tablosunda, yüzü olan bir gülen yüz yerine bir danışman simgesi belirir ve üzerinde beyaz bir üçgen olan yeşil bir daire bulunur. Bu prosedürü birkaç kez denedim, sonuçlar aynı. Fiyat tablosundaki periyotları değiştirdim, monitörde OnDeinit() işlevinden bir mesaj beliriyor, yani. programda bir mum işlenir ve iş durur.

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 !!!!!!

Neden: