Bir EA/göstergeden kenelerin öykünmesi - sayfa 2

 
Meat :

Kodunuzda, ilk olarak, yalnızca bir kene öykünmesi değil, aynı zamanda her bir tike karşılık gelen geçmiş yüklemesiyle grafiğin zorunlu bir güncellemesi vardır. Bazen günlük kaydına bile bakar mısın? Boş zamanlarınızda uğrayın ve neler olduğunu görün. Ve örneğin bir gün içinde ne olacağını düşünün. Özellikle göstergenin birkaç kopyası çalışıyorsa. Sistemin yükü ve İnternet kanalı hakkında sessizim.

Kodunuzda, grafiği güncellemek yerine, tam olarak kene öykünmesini yaparsanız, bu bir döngüye (yani gösterge durmadan başlar) ve buna bağlı olarak terminalin donmasına neden olur.

Geçmişi yüklemeden neden bir güncellemeye ihtiyacınız var? Grafiğin zorunlu güncellemesi, kene öykünmesidir.

2500 tik sonrasındaki günlük:

00:51:32 Check_UpdateChart EURUSD,M1: başarıyla yüklendi
00:52:48 Check_UpdateChart EURUSD,M1: uninit neden 1
00:52:48 Check_UpdateChart EURUSD,M1: kaldırıldı

Hiçbir şey asılı değil. Öykünme bunun için yapılır, böylece gösterge döngüler halinde gider. Onlar. kendini başlatır.
 
Zhunko :

Geçmişi yüklemeden neden bir güncellemeye ihtiyacınız var? Grafiğin zorunlu güncellemesi, kene öykünmesidir.

2500 tik sonrasındaki günlük:

00:51:32 Check_UpdateChart EURUSD,M1: başarıyla yüklendi
00:52:48 Check_UpdateChart EURUSD,M1: uninit neden 1
00:52:48 Check_UpdateChart EURUSD,M1: kaldırıldı

Hiçbir şey asılı değil. Öykünme bunun için yapılır, böylece gösterge döngüler halinde gider. Onlar. kendini başlatır.


Açıkça yazdım: "log log ". Öyleyse neden bana uzman günlüğünü gösteriyorsun? Görünüşe göre haklıymışım, oraya hiç bakmıyorsun. Sabit sürücünüzün yarısı zaten bu günlüklerle doluysa şaşırmayacağım :)

Ve kavramları değiştirmeye gerek yok. Geçmiş güncelleme ve kene öykünmesi iki farklı şeydir. Sunucudan gelen onay işaretleri geçmişi güncellemez (yani önceki çubuklar). Bu olursa, terminal çok fazla trafik ve kaynak tüketirdi.

Bu nedenle, diğer şeylerin yanı sıra, IndicatorCounted() durumunu sıfırlayan her bir onay için neden bir güncellemeye ihtiyacınız olduğu açık değildir; bu, her bir onaydaki tüm geçmişi kendiniz kontrol etmeniz gerektiği anlamına gelir. Bu kadar kaynak israf ediliyor.

 
Meat :

Sunucudan gelen onay işaretleri geçmişi güncellemez (yani önceki çubuklar). Bu olursa, terminal çok fazla trafik ve kaynak tüketir.

Ama ya örneğin 1 bar = 2 tik varsa ))))) Benim durumumda keneler geçmişi güncellerse?
 
IgorM :

sonra koymak

günlüğe girdi:

23:39:01 EURUSD testi,H1: başarıyla yüklendi
23:39:01 EURUSD testi,H1: PostMsgAddr =1977398342
23:39:01 EURUSD testi,H1: başlatıldı
23:39:01 EURUSD testi,H1: döngü bitti....

Evet, sorunun ne olduğu belli değil... O zaman şunu deneyin: #import "user32.dll" içe aktarma bölümüne şu işlevi ekleyin:

CallWindowProcA(int lpPrevWndFunc[], int hWnd, int Msg, int wParam, int lParam);

Ve SetMyTimer işlevinin sonuna şu satırı ekleyin: CallWindowProcA(code,0,0,0,0);

Ve bazı paralel çalışan göstergelerle, şu anda bir onay işareti oluşturulup oluşturulmadığını kontrol edin.

 
solar :
Ama ya örneğin 1 bar = 2 tik varsa ))))) Benim durumumda, tikler geçmişi güncellerse?
Tabii ki, mevcut çubuk her zaman güncellenir. Ama genel olarak tarihle ilgiliydi.
 
Meat :


Açıkça yazdım: "log log ". Öyleyse neden bana uzman günlüğünü gösteriyorsun? Görünüşe göre haklıymışım, oraya hiç bakmıyorsun. Sabit sürücünüzün yarısı zaten bu günlüklerle doluysa şaşırmayacağım :)

Ve kavramları değiştirmeye gerek yok. Geçmiş güncelleme ve kene öykünmesi iki farklı şeydir. Sunucudan gelen onay işaretleri geçmişi güncellemez (yani önceki çubuklar). Bu olursa, terminal çok fazla trafik ve kaynak tüketirdi.

Bu nedenle, diğer şeylerin yanı sıra, IndicatorCounted() durumunu sıfırlayan, her bir onay işareti için neden bir güncellemeye ihtiyacınız olduğu açık değildir; bu, her bir onay işaretindeki tüm geçmişi kendiniz kontrol etmeniz gerektiği anlamına gelir. Bu kadar kaynak israf ediliyor.

Günlük günlüğü de boş, ancak farklı bir nedenle. Geçmişi değiştirdikten sonra konsol temizleyicisini kullanıyorum. Kendi günlüğüm var.

MT4 günlüğü beni hiç rahatsız etmiyor. Metaquotes, günlüğün en son tutulduğunu defalarca belirtti. O bir öncelik değil. Kaynakları tüketmez. Zamanında ve sadece temizlemek gerekir.

IndicatorCounted() ile ilgili olarak ... Ben kullanmıyorum. Göstergelerim, Expert Advisor'dan gelen bilgileri görüntülemek için boş alt pencerelerdir. MT4'te indikatör kullanmanın zararlı olduğunu düşünüyorum. Arayüz akışı yavaşlar ve uzmanlara göre 3 kat daha yavaş çalışır.

Vurgulanan elbette doğrudur, ancak bölünme ile bu kadar uğraşmaya değer mi?

415 güncelleme için günlük kaydı:

03:00:44 Özel gösterge Check_UpdateChart EURUSD,M1: başarıyla yüklendi
03:00:46 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:46 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:47 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:47 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:47 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:47 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:48 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:48 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:48 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:49 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:49 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:49 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:50 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:50 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:51 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:51 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:51 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:52 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:52 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:55 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:55 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:55 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:55 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:55 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:55 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:56 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:00:56 HistoryCenter: 'EURUSD1'i senkronize edin
03:00:57 Özel gösterge Check_UpdateChart EURUSD,M1: kaldırıldı
03:00:59 HistoryCenter: 'EURUSD1' cinsinden içe aktarılan 2 çubuk
03:01:01 MetaTrader build 438 durduruldu

Benim düşünceme göre, göstergenin performansını hafta sonu test etmek önemli değil. Günlük, işten sonra manuel olarak temizlenebilir.

Ancak start() öğesinin sonuna tek bir kod satırı eklemek, kendi kodunuzu eklemekten daha kolaydır. Bu kadar zorlaştırmanın anlamı yok.

 

XP'm var - çalışıyor gibi görünüyor - sonra terminali kapatıyor ....

gösterge kodunda ne var - danışman kodunda ne var - kendi içinde ne var - sonuç aynı - terminal yaklaşık 15 - 50 saniye sonra çöküyor ...

yani sende bir sorun var...

ve bu iyi bir fikir...

 

Gösterge için benzer bir şey yapmak mümkün mü?:

Gösterge okumalarını görmek istediğim anda (o anda) imleci işaret ederek mi?

 

Zhunko , standart olmayan her şeye sahipseniz (kendi günlüğünüz, kendi gösterge uygulamanız vb.), O zaman neden tüm bu konuşmayı başlattınız? Burada aslında kendi geliştirmelerimizle değil, özellikle MT4 ile çalışmayı tartışıyoruz.

İlk gönderide, görev üçüncü taraf DLL'ler olmadan yapılacaksa, kodumun tam olarak yararlı olacağını özellikle belirttim, yani. yalnızca sistem kitaplıklarını kullanan kendi kendine yeterli bir Uzman Danışman/gösterge uygulayın. Ve kendi geliştirmelerinizi kullanırsanız, bu sizin için geçerli değildir.

Ve genel olarak, dağınık olmamak daha kolaysa, neden “işten sonra günlüğü manuel olarak temizlediğini” anlamıyorum. Sonuçta anladığım kadarıyla geliştirmelerinizi DLL'de uyguluyorsunuz. O zaman, burada önerdiğim gibi aynı zamanlayıcıyı orada ayarlamaktan sizi alıkoyan nedir? Sadece orada sadece birkaç satır kod alacaktır. Ama nedense tefli ve kütük temizlemeli her türlü dansı tercih ediyorsunuz. Her nasılsa bir programcı gibi düşünmüyorsunuz ... Görüyorsunuz, kodum sizi rahatsız ediyor ama günlükleri her gün temizleyecek kadar tembel değilsiniz :)

 
elmucon :

XP'm var - çalışıyor gibi görünüyor - o zaman terminali en aza indiriyor ....

gösterge kodunda ne var - danışman kodunda ne var - kendi içinde ne var - sonuç aynı - terminal yaklaşık 15 - 50 saniye sonra çöküyor ...

yani sende bir sorun var...

ve bu iyi bir fikir...


Evet, belki de düşünülmemiştir. Montaj konusunda pek uzman değilim, bu yüzden kesinlikle yargılamayın :) Sorunun ne olduğunu bulmaya çalışacağım.