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

 
Leo59 :
Ne yazık ki, yardımcı olmuyor.

içinde();
if(IsTradeAllowed()) Print("Ticaret yapılabilir");
if(!IsTradeAllowed()) Print("Ticaret Yapılamaz");


Çıktılar: "Ticarete izin verilir"

Farklı bir şey olması gerekiyor. Bu nasıl ?

Şu şekilde deneyin:

starttime=( int ) TimeCurrent ()+sec; // например +5 секунд. Эту строку в OnInit

if ( TimeCurrent ()>starttime) {
...
}

Bence ilke açık ve onay işareti olmadığı sürece TimeCurrent değişmeyecek

 
Vitaly Muzichenko :

Şu şekilde deneyin:

starttime=( int ) TimeCurrent ()+sec; // например +5 секунд

if ( TimeCurrent ()>starttime) {
...
}

Bence ilke açık ve onay işareti olmadığı sürece TimeCurrent değişmeyecek

Evet, bu Forex için iyidir, çünkü keneler sıklıkla gelir. Ve eğer Forex için değilse?
 
Leo59 :
Evet, bu Forex için iyidir, çünkü keneler sıklıkla gelir. Ve eğer Forex için değilse?
Sonuç olarak, başlatma sırasında " başlangıç zamanı" değişkeninin zamanı, sunucunun zamanından birkaç saniye daha uzun olacaktır. Yani, piyasa açılışında keneler geldiğinde, TimeCurrent her zaman başlangıç zamanından daha büyük olacaktır ve keneler artık önemli olmayacaktır - koşul karşılanmıştır ve bir sonraki yeniden başlatmaya kadar devam edecektir, örneğin zaman çerçevesini değiştirmek veya yeniden başlatmak gibi. terminal.
 
Vitaly Muzichenko :
Sonuç olarak, başlatma sırasında " starttime " değişkeninin zamanı, sunucu zamanından birkaç saniye daha uzun olacaktır.
Şimdi, ilk kene gelmeden önce, yeni (ilk) kene gelmesiyle her şeyin çalışmaya hazır olması için bilgileri işlemem gerekiyor.
 
Leo59 :
Bu doğru değil. Kırılmamışsa hemen kontrol edin ))). Ama bu değil. Şimdi, ilk kene gelmeden önce, yeni (ilk) kene gelmesiyle her şeyin çalışmaya hazır olması için bilgileri işlemem gerekiyor.
Bunu birkaç yıldır kullanıyorum, ancak kene olmadığı sürece hiçbir şeyi işlemem gerekmiyor. Başka bir çözüme ihtiyacınız var ve verilen bağlantıya göre
 
Vitaly Muzichenko :
Bunu birkaç yıldır kullanıyorum, ancak kene olmadığı sürece hiçbir şeyi işlemem gerekmiyor. Başka bir çözüme ihtiyacınız var ve verilen bağlantıya göre
Haklısınız, " starttime=( int ) TimeCurrent ()+sec; // örneğin +5 saniye", doğal olarak TimeCurrent () 'den daha fazla. Heyecanlandım, beynim çoktan eridi))
Referans olarak, yalnızca TimeLocal() vardır, ancak bundan kaçınmak istedim.
 
Leo59 :
Haklısınız, " starttime=( int ) TimeCurrent ()+sec; // örneğin +5 saniye", doğal olarak TimeCurrent () 'den daha fazla. Heyecanlandım, beynim çoktan eridi))
Referans olarak, yalnızca TimeLocal() vardır, ancak bundan kaçınmak istedim.

Göreve bağlı olarak, TimeCurrent () + OnTimer () bağlantısını veya TimeCurrent () + TimeGMT () + TimeGMTOffset () kullanmayı deneyebilirsiniz.

Zamanlayıcı ile tüm koşulları ve TimeCurrent () ile ticaret yapabilirsiniz. Pek çok çözüm var, ancak bireysel bir görev için seçim sizin.

 
Vitaly Muzichenko :

Göreve bağlı olarak, TimeCurrent () + OnTimer () bağlantısını veya TimeCurrent () + TimeGMT () + TimeGMTOffset () kullanmayı deneyebilirsiniz.

Zamanlayıcı ile tüm koşulları ve TimeCurrent () ile ticaret yapabilirsiniz. Pek çok çözüm var, ancak bireysel bir görev için seçim sizin.

Ve soruma göre OnTimer() öğesini nasıl uygulayabilirim ?
 
Leo59 :
Ve soruma göre OnTimer() öğesini nasıl uygulayabilirim?
Her şey hesaplanana kadar çalışma yasağı bayrağını saklayın, örneğin...
 
Artyom Trishkin :
Her şey hesaplanana kadar çalışma yasağı bayrağını saklayın, örneğin...
Artyom, soru, TimeLocal() 'a başvurmadan izin gününü programlı olarak nasıl belirleyeceğimizle ilgiliydi. ))