MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1531

 

Bana terminalin donmasıyla nasıl başa çıkacağımı söyle

kod basit ama çok yükleniyor

   for ( int i=limit;i>= 0 ;i--)
     {
      RSI_01Buffer[i]= iRSI ( NULL , 0 ,RSI_Period,RSI_Price,i);
      RSI_02Buffer[i]=iMAOnArray(RSI_01Buffer, 0 ,MA_Period, 0 , MODE_SMA ,i);
     }
 
Alexey Viktorov :

OnTick()'te ilk çalıştırma bayrağını ayarlamak daha kolay ve daha güvenilirdir.

Hesaplamaların ve görselleştirmenin, örneğin bir izin gününde bile, hemen yapılması gerekir.

 
Igor Makanu :

Ne olacağını tahmin etmeyeceğim, ilk gördüğüm şey, OnInit ()'deki gösterge değerlerini almak için duraklamış olmanız - kullanıcı şu anda TF'yi değiştirirse ne olacak?

Not: Uzmanı çalıştırırsanız, ardından terminali kapatıp danışman zaten çalışıyorken terminali tekrar açarsanız kodunuz nasıl davranacak?

bu seçenekler değerlendirilir

 

Banal bir şeyi hatırlamanı istiyorum. Test cihazındaki danışmanım normalde siparişleri açar ve kapatır. Şimdi demoda da bir haftadır her şeyi olması gerektiği gibi takip ediyorum. Ancak iki durumda, ikinci emri (Martin'in) açarken, pozitif bir dengeye ulaşıldığında hem kapanmadı, hem de sadece bir tanesi, ikincisi yakalanana kadar sallandı. Dergiye baktım - " teklif edilen " bir fiyat vardı. Herhangi bir sorun yok gibi görünüyor ve yine de kapanmalı ama bu şekilde kapanmadı.

O yüzden bir koşulda SİPARİŞLERİ ONAYLAMAK (TEKRAR GÖNDERMEK) için bir fonksiyon yazmadım. Atın, lütfen, bu bayağılığı nasıl kaydedeceğinizi. Teşekkür ederim.

 
Порт-моне тв :

Banal bir şeyi hatırlamanı istiyorum. Test cihazındaki danışmanım normalde siparişleri açar ve kapatır. Şimdi demoda da bir haftadır her şeyi olması gerektiği gibi takip ediyorum. Ancak iki durumda, ikinci emri (Martin'in) açarken, pozitif bir dengeye ulaşıldığında hem kapanmadı, hem de sadece bir tanesi, ikincisi yakalanana kadar sallandı. Dergiye baktım - orada fiyat " teklif edildi". Herhangi bir sorun yok gibi görünüyor ve yine de kapanmalı ama bu şekilde kapanmadı.

O yüzden bir koşulda SİPARİŞLERİ ONAYLAMAK (TEKRAR GÖNDERMEK) için bir fonksiyon yazmadım. Atın, lütfen, bu banalliği nasıl yazacağınızı. Teşekkür ederim.

 if ( GetLastError ()== 138 )OrderClose(...);
veya kaymayı artırmak
 
MakarFX :
veya kaymayı artırmak

Cevabın için teşekkürler. Ve neden 138???? Bu bir hata numarası mı? Ve kaymanın ne kadar artacağını (lütfen artışın anlamını açıklayınız). teşekkürler

 
Порт-моне тв :

Ve neden 138???? Bu bir hata numarası mı?

Evet

Port Monet TV :

Ve kaymanın ne kadar artacağını (lütfen artışın anlamını açıklayınız).

bu size kalmış, ne kadar çok kayma o kadar az alıntı

 
MakarFX :

Bana terminalin donmasıyla nasıl başa çıkacağımı söyle

kod basit ama çok yükleniyor

Garip...

OnCalculate yerine int start() ile yapıldı ve hiç takılmıyor

Niye ya???

 
Andrey Sokolov :

Hesaplamaların ve görselleştirmenin, örneğin bir izin gününde bile, hemen yapılması gerekir.

Göstergeler bir iş parçacığında çalışır, eğer biri bekliyorsa, diğerleri terminal donuncaya kadar bekler.
MT'nin başlangıcında, göstergenin (göstergelerin) başlatılması, terminal değişkenlerinin başlatılmasından önce gerçekleşebilir, yani, kapatma zahmetsizdir.