Bağlandı() - sayfa 3

 

Üzgünüm, ama neden çalışmamalı:

 int start()

{

     while ( ! IsStopped () )
    {
        IsConnectedBefore = IsConnectedNow;
        IsConnectedNow = IsConnected();
      ....

     }

}   

Bu yüzden EA'm her zaman döngü içindedir ve herhangi bir onay işaretine ihtiyaç duymaz.

 

PostMessageA() ile ilgili her şey, yalnızca bu dizinin önceki bölümlerindeki "call start() from init()" cümlesine yanıt olarak gönderildi. Bunun yorumsuz kalmasına izin veremezdim. "init()'ten start() çağrısı" pek çok düzeyde açıkça yanlıştır ve bu nedenle onun hakkında yorum yapmak ve aynısını elde etmek için uygun bir çözüm sağlamak zorunda kaldım, yani init() içinden bile bir start() çağrısını zorlamak hafta sonları.


MT4'ü bağlantısız bir durumda başlatma sorunu için bir çözüm sağlamaz. Bunun kullanım durumunun ne olabileceğini de anlamasam da, gelen ve giden bağlantı olduğu için metatrader'ın kendisi 7/24 kesintisiz olarak kolayca çalışmaya devam etmelidir. Ve hafta sonu yeniden başlatıldığında bile, init() içindeki PostMessageA() ile, yeniden başlatmadan sonra bağlantı geri gelir gelmez, bir onay işareti olmadan bile start() içindeki döngüye hemen devam edecek ve sonra tekrar devam edecektir. bir sonraki (yanlışlıkla) yeniden başlatmaya kadar sonsuza kadar çalışır.

 
sunshineh :

Üzgünüm, ama neden çalışmamalı:

Bu yüzden EA'm her zaman döngü içindedir ve herhangi bir onay işaretine ihtiyaç duymaz.


evet, çünkü terminali yeniden başlatmadınız İnternet bağlantınız yokken, ancak internet bağlantınız yokken terminali yeniden başlatırsanız, ne yaparsanız yapın AE tek tıklama olmadan döngüye gelmez. yapın, PostMessageA() kullansanız veya init()'ten Start() öğesini çağırsanız bile, bunu yapmanın tek yolu bir komut dosyası kullanmaktır, çünkü komut dosyaları çalışıyor İşaretli olsun veya olmasın
 

Yine de yardım etmeye çalışan herkese teşekkürler. Ellerimi biraz kirletmeye ve senaryoyu çalıştırmak için harici bir program çalıştırmaya karar verdim, hikayenin sonu.
Ne olursa olsun, IsConnected() işlevi beni hala güldürüyor, Bu kadar basit bir şeyi kapsamazsa

 
7bit :

PostMessageA() ile ilgili her şey, yalnızca bu dizinin önceki bölümlerindeki "call start() from init()" cümlesine yanıt olarak gönderildi. Bunun yorumsuz kalmasına izin veremezdim. "init()'ten start() çağrısı" pek çok düzeyde açıkça yanlıştır ve bu nedenle onun hakkında yorum yapmak ve aynısını elde etmek için uygun bir çözüm sağlamak zorunda kaldım, yani init() içinden bile bir start() çağrısını zorlamak hafta sonları.


MT4'ü bağlantısız bir durumda başlatma sorunu için bir çözüm sağlamaz. Bunun kullanım durumunun ne olabileceğini de anlamasam da, gelen ve giden bağlantı olduğu için metatrader'ın kendisi 7/24 kesintisiz olarak kolayca çalışmaya devam etmelidir. Ve hafta sonu yeniden başlatıldığında bile, init() içindeki PostMessageA() ile, yeniden başlatmadan sonra bağlantı geri gelir gelmez, bir onay işareti olmadan bile start() içindeki döngüye hemen devam edecek ve sonra tekrar devam edecektir. bir sonraki (yanlışlıkla) yeniden başlatmaya kadar sonsuza kadar çalışır.


7Bit ünleminiz için teşekkürler, daha iyi yöntemler bilmek faydalı, bende önemli sorunlara neden olan bir sorunu çözmek için yukarıda açıkladığım gibi bir EA'yı başarılı bir şekilde çalıştırıyorum. Terminal düzenli olarak bağlantıyı kaybedebilir, ancak bilinmeyen bir nedenden dolayı tekrar bağlantı kuramaz. Yeniden bağlanmadan önce terminaldeki sunucuları manuel olarak yeniden taramam gerekti. Başlangıçta bunun bir zamanlama tesadüfü olduğunu düşündüm, ancak genellikle şans eseri olmak için bir saat bekleyebilirdim, bağlantıyı yeniden kuramazdım ve ardından yeniden tara'yı tıklattığım örnek yeniden bağlanacaktı. benim çözümüm, bağlantı durumunu sürekli olarak test etmekti ... bağlantı kesilirse, uyarılarda, e-postalarda ve günlüklerde çatılardan çığlıkları yeniden bağlamak için 5 dakika verin ve ardından terminali kapatır ve yeniden başlatır. Bu, çoğu durumda işe yaradı. Zaman zaman meşru bir bağlantı sorunu vardı ve EA bağlantı olmadan başlatılmayacağı için bir deliğe sıkışıp kaldım. Bunların hepsi MT4'ün ve dolayısıyla mevcut BT yeteneklerimin dışında olan yöntemler olan bunları çözmek için yöntemlere baktım. Fortunatley, komisyoncuları değiştirdim ve şu anki sağlayıcımla herhangi bir sorun yaşamadım... bu yüzden bu konuda daha fazla çalışmak öncelik listesinde düşük.

Ancak bağlantı gerçekten mevcut olduğunda bağlantının kesilmesi ve MT4'ün yeniden bağlanamaması olabilir. Bir terminalin yeniden başlatılması EA'larımı aşamaz, ancak bir saat boyunca bağlantı olmadan oturmak yapar!.

V

 
Viffer :

Fortunatley, komisyoncuları değiştirdim ve şu anki sağlayıcımla herhangi bir sorun yaşamadım... bu yüzden bu konuda daha fazla çalışmak öncelik listesinde düşük.

Bunu henüz brokerimde görmedim, bu yüzden gerçekten sadece bazı brokerlerde olabilir. Bağlantı günde bir veya iki kez bazen birkaç saniyeliğine kesiliyor, ancak her zaman hemen yeniden bağlanıyor.


Başka bir Windows uygulamasını izleyebilen ve uzaktan kontrol edebilen harici bir uygulamayı hızlı bir şekilde hacklemek için (düğmelere tıklamak, menü tavsiyeleri vb.) AutoIT'i tavsiye ederim. Tam olarak bu tür şeylere odaklanan, BASIC benzeri bir betik dili öğrenmesi kolay.

 
7bit :

Bunu henüz brokerimde görmedim, bu yüzden gerçekten sadece bazı brokerlerde olabilir. Bağlantı günde bir veya iki kez bazen birkaç saniyeliğine kesiliyor, ancak her zaman hemen yeniden bağlanıyor.


Başka bir Windows uygulamasını izleyebilen ve uzaktan kontrol edebilen harici bir uygulamayı hızlı bir şekilde hacklemek için (düğmelere tıklamak, menü tavsiyeleri vb.) AutoIT'i tavsiye ederim. Tam olarak bu tür şeylere odaklanan, BASIC benzeri bir betik dili öğrenmesi kolay.

Bunun için teşekkürler, bakacağım

V

 
qjol :

IsConnected() işlevi beni hala güldürüyor, Eğer bu kadar basit bir şeyi kapsamazsa

Sorunun, yeniden başlatmanın ardından tamamen bağlanana kadar MT4'ün init()'i geciktirmesiyle ilgili olduğunu düşündüm?


Bunun birdenbire IsConnected() ile ne ilgisi var? IsConnected() amaçlandığı gibi çalışıyor gibi görünüyor. Bağlandığında true, bağlantısı kesildiğinde false döndürür. Bunda bu kadar gülünç olan ne anlamıyorum.

 
7bit :

Sorunun, yeniden başlatmanın ardından tamamen bağlanana kadar MT4'ün init()'i geciktirmesiyle ilgili olduğunu düşündüm.


Bunun birdenbire IsConnected() ile ne ilgisi var? IsConnected() amaçlandığı gibi çalışıyor gibi görünüyor. Bağlandığında true, bağlantısı kesildiğinde false döndürür. Bunda bu kadar gülünç olan ne anlamıyorum.


çünkü

if (!IsConnected()) false döndürmelidir & Yeni bir tick gelmediği sürece IsConnected() kontrol edilemez Bu yüzden beni güldürüyor

 
qjol :

IsConnected() yeni tik gelmediği sürece kontrol edilemez Bu yüzden beni güldürüyor

Kontrol edilebilir, sadece kontrolü sonsuz bir döngüde çalıştırın. bir bağlantı kesintisi sırasında terminali başlatırken bu döngünün nasıl başlatılacağı tamamen ayrı bir sorundur. Döngünüzü çalıştırdığınızda, bekleneni yapacaktır.

Sorununuzun IsConnected() işleviyle hiçbir ilgisi yok. Aynı argümanla, Print() veya Alert() veya tamamen farklı bir nedenden dolayı tüm kodu ilk etapta başlatamadığınız için çağıramayacağınız diğer işlevler hakkında da şikayet edebilirsiniz.