Hatalar, hatalar, sorular - sayfa 1547

 
Комбинатор :
Şimdi şu soruya dikkat edin - terminalin bu şekilde hesaplanan verileri hemen yeniden çizmesini nasıl sağlarsınız?

OnCalculate'de olmayan tamponlardan veri çeker .

OnCalculate'de minimum çekiliş süresi 1 dakikadır

Tik göstergeleri her keneyi çizer

 
comp :
Öyle görünmüyor.

Yine de dördüncü ChartRedraw'da %100 ihtiyacınız olanı yapacaktır.

Evet ve ilk beşte, ortaya çıktığı gibi , normal.

Böylece ChartRedraw her iki platformda da iyi çalışacaktır.

 

CHARTEVENT_CHART_CHANGE geldiğinde bazen bir saniye süren bir hesaplama yapıyorum/diğer. Örneğin hesaplama sırasında grafiği hareket ettirirseniz, hesaplamadan sonra CHARTEVENT_CHART_CHANGE tekrar kuyruktan çağrılır.

Olay kuyruğunda bir şey olduğunu hesaplama sırasında öğrenmek mümkün müdür? O zaman artık alakalı olmayan bir hesaplama yapamıyor, kesiyor ve yeni bir hesaplama başlatamıyor musunuz?

Örneğin, çok ağır bir hesaplama bölümünde bile her yerde IsStopped() için bir kontrole basarsanız, EA anında kapanır - hesaplamayı beklemeden.

Bu benzer bir şey olurdu, ancak bir kapanış etkinliği ile değil, bir ChartEvent ile.

 
comp :

CHARTEVENT_CHART_CHANGE geldiğinde bazen bir saniye süren bir hesaplama yapıyorum/diğer. Örneğin hesaplama sırasında grafiği hareket ettirirseniz, hesaplamadan sonra CHARTEVENT_CHART_CHANGE tekrar kuyruktan çağrılır.

Olay kuyruğunda bir şey olduğunu hesaplama sırasında öğrenmek mümkün müdür? O zaman artık alakalı olmayan bir hesaplama yapamıyor, onu kesip yeni bir hesaplama başlatamıyor musunuz?

Örneğin, çok zor bir hesaplama bölümünde bile IsStopped() için bir kontrole basarsanız, EA anında kapanır - hesaplamayı beklemeden.

Bu benzer bir şey olurdu, ancak bir kapanış etkinliği ile değil, bir ChartEvent ile.


ikinci bir işleme iş parçacığı yapın (örneğin bir ms zamanlayıcı şeklinde)

ve CHARTEVENT_CHART_CHANGE'de artan sayaç==XXX bayrağının ayarlanması şartıyla hesaplamayı yapmak için içindedir.

bu şekilde tüm ChartEvent kuyruğunu çok hızlı bir şekilde tararsınız, bir bayrak kurarsınız ve buna paralel olarak zamanlayıcı bu bayrağı çeker ve hesaplar.

---

Aynı zamanda, aynı zamanlayıcıda sayaç bayrağının değerini kontrol edin. Sayacın mevcut değeri, hesaplamanın başlatıldığı değerden büyük olduğunda hesaplamayı iptal edebilirsiniz. Yani, böyle bir IsNewChanged

 
o_O :

bu şekilde tüm ChartEvent kuyruğunu çok hızlı bir şekilde tararsınız, bir bayrak kurarsınız ve buna paralel olarak zamanlayıcı bu bayrağı çeker ve hesaplar.

ChartEvent ve Timer olaylarının paralel çalıştığını mı söylüyorsunuz?
 

Servis Masası böyle bir açıklama yaptı

SetIndexBuffer делается однократно на вызове OnInit

SetIndexBuffer'ı OnInit'te ve/veya tekrar tekrar kullanmayan var mı? MT4'ü her zaman kullanırım. Ne yazık ki, bu MT5'te yapılamaz.

 
comp :
ChartEvent ve Timer olaylarının paralel çalıştığını mı söylüyorsunuz?

sırayla yürütülseler bile - en azından bunu kullanmanız sizi rahatsız etmez.

anında tüm ChartEvent'i alır ve yalnızca bir sipariş verirsiniz.

---

zamanlayıcı ve grafik olaylarının paralelliği hakkında soru uygundur.

Servis masasına sorun.

 
o_O :

sırayla yürütülseler bile - en azından bunu kullanmanız sizi rahatsız etmez.

anında tüm ChartEvent'i alır ve yalnızca bir sipariş verirsiniz.

---

zamanlayıcı ve grafik olaylarının paralelliği hakkında soru uygundur.

Servis masasına sorun.

Belgeleri kimse okumuyor...

İstemci terminali, ortaya çıkan olayları ilgili açık grafiklere gönderir. Olaylar ayrıca tablolar ( grafik olayları ) veya mql5 programları ( kullanıcı olayları ) tarafından da oluşturulabilir. Bir grafikte grafik nesneleri oluşturmak ve silmek için olayların oluşturulması, CHART_EVENT_OBJECT_CREATE ve CHART_EVENT_OBJECT_DELETE grafik özellikleri ayarlanarak etkinleştirilebilir ve devre dışı bırakılabilir. Her mql5 programı ve her çizelge, yeni gelen tüm olayların eklendiği kendi olay kuyruğuna sahiptir.

Program olayları yalnızca üzerinde çalıştığı grafikten alır. Tüm olaylar, alındıkları sıraya göre birbiri ardına işlenir . Kuyrukta zaten bir NewTick olayı varsa veya bu olay işleniyorsa, yeni NewTick olayı mql5 programının kuyruğuna konmaz. Benzer şekilde, ChartEvent olayı zaten mql5 programının kuyruğundaysa veya böyle bir olay işleniyorsa, bu türden yeni bir olay kuyruğa alınmaz. Zamanlayıcı olayları aynı şekilde işlenir - bir Zamanlayıcı olayı kuyruktaysa veya halihazırda işleniyorsa, yeni bir zamanlayıcı olayı kuyruğa alınmaz.

 
Slawa :

Belgeleri kimse okumuyor...

Daha sonra olay üzerinde hesaplama kesintisi yapılmaz.
 
Slawa :

Belgeleri kimse okumuyor...

bu uzun zaman önceydi