Büyük ipucu "Ama bunu nasıl yapacağımı bilmiyorum" idi.
OP'den herhangi bir yanıt gelmemesi, bir şeylerin yanlış olduğunun bir göstergesidir. Benim "tahminim", OP'nin anlayış eksikliğinden dolayı hüsrana uğradığı ve konuyu terk ettiği yönünde. Yıllar önce benim de aynı şeyi yaptığım bir zaman vardı. Bundan farklı sitelerden/forumlardan daha fazlasını öğrendim çünkü kimse ne kadar yeni olduğumu fark etmek için zaman ayırmıyordu ve sürekli olarak örnekler yayınlıyordu ve o zamanlar benim anlayışımın tamamen üzerinde tartışmalar vardı.
Bakış açınıza göre haklı olabilirsiniz, diğer yandan, belgelere hızlı bir şekilde bakma riskini alırsanız basitçe cevaplanmış birçok soru gördüm ve bu soruları tekrar tekrar cevaplarken kendinizi gerçekten aptal gibi hissediyorsunuz.
Ayrıca google ve burada bir arama seçeneği var. Bir şeyi nasıl yapacağımı bilmiyorsam, bu benim bir sonraki adımım sorunu kendi başıma çözmeye çalışmaktır.
Bu konunun konusu olması durumunda, çok para birimli bir sistemin nasıl kodlanacağını bilmiyorum, google'a yanıt verirdim veya zaten mevcut kodu burada arardım.
Bakış açınıza göre haklı olabilirsiniz, diğer yandan, belgelere hızlı bir şekilde bakma riskini alırsanız basitçe cevaplanmış birçok soru gördüm ve bu soruları tekrar tekrar cevaplarken kendinizi gerçekten aptal gibi hissediyorsunuz.
Ayrıca google ve burada bir arama seçeneği var. Bir şeyi nasıl yapacağımı bilmiyorsam, bu benim bir sonraki adımım sorunu kendi başıma çözmeye çalışmaktır.
Bu konunun konusu olması durumunda, çok para birimli bir sistemin nasıl kodlanacağını bilmiyorum, google'a yanıt verirdim veya zaten mevcut kodu burada arardım.
Geri bildiriminiz için teşekkür ederiz, olumlu olmasına sevindim. çok komik
Bu durumda karşılaştığım yol için endişelenenlerden özür dilerim. Ben gerçekten barışı seven, dramadan uzak, genellikle katılmadığım çoğu şeyi görmezden gelen bir insanım.
Burada aktivite olmadan uzun süre için özür dilerim. İş için seyahat ediyordum ve ayrıca bazı projelerle meşguldüm ve bir süre projeyi bir kenara bırakmak zorunda kaldım..
Gönderi güncellemelerini okuduktan sonra, netleştirmem gereken bazı noktalar var:
Birinin benim için her şeyi kodlamasını istemiyorum, sadece bana doğru yönü göstermesi gerekiyor ve gerisini ben hallediyorum. Pekala... şimdi WHRoeder çözümünü test edeceğim ve işlerimi yapacağım ve daha sonra sonucu buraya göndereceğim. WHRoeder önerisi: https://www.mql5.com/en/forum/158938
Bu konuyu oluşturmadan önce benzer gönderiler için arama yaptım ama bulunamadı... sonra oluştur
Kusura bakmayın yanıt vermem uzun zaman aldı ama gerçekten çok fazla çalıştı ama şimdi göstergeyle çalışmaya devam ediyorum
Zavallı ingilizcem için özür dilerim! benim dilim portekizce ve ingilizce yayınladığımda google çevirmen kullanmam gerekiyor ve bu mükemmel değil.
Kullanıcıların varlıklarını bilgilendirmelerine izin verin ve ardından tüm çiftleri Yüksek/Düşük değerlerini gösterin.
Selectec çiftlerinden herhangi biri aktif Pencere ile aynıysa, oranları güncellenir. Ancak diğer çiftler, yalnızca gösterge eklendiğinde oranları gösterir... ve artık güncelleme yapmaz...
Aşağıdaki görselde de görebileceğiniz gibi GBPUSD penceresine gösterge eklendi... ve GBPUSD oranları tik adım güncellendi. Ancak EURUSD güncelleme yapmıyor ve hala aynı değerde.
wemersonrv : RefreshRates() kullanmaya çalışıyorum ama yine de aynı sonuçla... sadece aynı penceredeki çift çalışıyor, diğer çiftler güncellenmiyor.
RefreshRates() 'in MqlRates verileriyle hiçbir ilgisi yoktur. WHRoeder'ın örnek kodu yalnızca 600 öncesi yapılar için geçerlidir. En son derleme için, ArrayCopyRates() dönüş kodlarının yanı sıra Hata kodları, Rates Array'in boyutu ve WHRoeder tarafından belirtilen ek bir önlem olarak test etme gibi gönderimde belirtilen çeşitli noktaları kontrol etmeniz gerekir. zaman özelliğinin geçerliliği.
not! İngilizcede zorlanıyorsan bana PM gönder. Ben Portekizliyim (Portekiz)
Test ederken, önce çift dizisini tüm yinelemelerde ÜCRETSİZ, ardından oranları tekrar kopyalayan bir döngü ekleyerek OnCalculate işlevine oranların bir "tekrar kopyasını" ekledim. Çalışıyor gibi görünüyor ve hata döndürmüyor.
İhtiyacım olanı yapmanın en iyi yolu bu mu bilmiyorum ama görünüşe göre çalışıyor ve hatasız.
int i= 0 ;
if ( initial ){
for ( i= 0 ; i< ArraySize (pairs); i++){
if (pairs[i].rates[ 0 ].time == 0 ) return (rates_total);
}
initial= false ;
}
// My change to recopy rates every tick by adding a loop at starting of OnCalculate() to do this// AS FMIC says, ArrayCopyRates needs the array without content, // then before recopy, free the array.for (i= 0 ; i< ArraySize (pairs); i++){
ArrayFree (pairs[i].rates);
ArrayCopyRates(pairs[i].rates, pairs[i].symbol, PERIOD_CURRENT );
}
wemersonrv : Test ediyorum, OnCalculate işlevine oranların bir "tekrar kopyasını" ekledim... önce çift dizisini tüm yinelemelerde SERBEST GEÇEN, ardından oranları yeniden kopyalayan bir döngü ekleyerek. Çalışıyor gibi görünüyor ve hata döndürmüyor.
Başka bir çizelgeden veri (sembol adı ve/veya zaman çerçevesi mevcut olanlardan farklı) isteniyorsa, ilgili tablonun istemci terminalinde açılmamış olması ve sunucudan gerekli verilerin talep edilmesi durumu mümkündür. Bu durumda, ERR_HISTORY_WILL_UPDATED hatası (4066 - istenen geçmiş verileri güncelleniyor) last_error değişkenine yerleştirilecek ve birinin yeniden talep etmesi gerekecek
Hiç geçmiş yoksa ArrayCopyRates bir hata döndürür (ERR_NO_HISTORY_DATA = 4073.) İndirme tamamlanana kadar yinelenen çağrılar da başarısız olur. Geçmiş olduğunda ancak güncel olmadığında, ArrayCopyRates geçerli döndürür VE ayrıca `_LastError` öğesini ERR_HISTORY_WILL_UPDATED (= 4066) olarak ayarlar.
OP'nin PM aracılığıyla kodunu düzeltmesine yardım ediyorum, çünkü İngilizce'de zorluk çekiyor ve ikimiz de Portekizce konuşuyoruz. Testlerimizde " ArrayCopyRates() " işleviyle gerçekleşen başka bir "komik" ile karşılaştık. Bir EA'da " ArrayCopyRates() " ile bir MqlRates dizisi kullanırken, veri dizisi her zaman şeylerin mevcut durumunu bildiren sanal bir dizidir, bu nedenle veriler her zaman tazedir.
Ancak, bir Göstergede durum böyle görünmüyor. Dizi sanal bir kopya değil, bunun yerine " ArrayCopyRates() " çağrıldığı anda ayarlanmış statik bir kopyadır. Sembol, grafik sembolünden farklı olduğunda veriler güncellenmez. Grafikle aynı sembol olduğunda, dizi verileri "canlıdır" ve beklendiği gibi güncellenir, ancak başka bir sembole ait olduğunda statik bir kopyadır.
Bu nedenle, bir Göstergede çalışması için, taze verilere ihtiyaç duyulursa, OnCalculate() olayına yapılan her çağrıda " ArrayCopyRates() " işlevi çağrılmalıdır.
WHRoeder , sana da teşekkür ederim...Hepimizin her zaman yanındasın!
Düşünceleriniz için tüm forum üyelerine teşekkürler ve hatta bu başlıkta oluşturulan tüm tartışma için teşekkürler. Çok ilginçti. !
Bu (neredeyse) daha sonra yaptığım şeyin aynısı, ancak fark şu ki, ArrayCopyRates'ten önce bir ArrayFree çalıştırıyorum... ve bana yardım ettiğiniz doğrulamaları yapmıyorum.
İşte FMIC'in bana yardım ettiği son kod. Şimdi bir gösterge kodunda normal çalışıyor ..:
Büyük ipucu "Ama bunu nasıl yapacağımı bilmiyorum" idi.
OP'den herhangi bir yanıt gelmemesi, bir şeylerin yanlış olduğunun bir göstergesidir. Benim "tahminim", OP'nin anlayış eksikliğinden dolayı hüsrana uğradığı ve konuyu terk ettiği yönünde. Yıllar önce benim de aynı şeyi yaptığım bir zaman vardı. Bundan farklı sitelerden/forumlardan daha fazlasını öğrendim çünkü kimse ne kadar yeni olduğumu fark etmek için zaman ayırmıyordu ve sürekli olarak örnekler yayınlıyordu ve o zamanlar benim anlayışımın tamamen üzerinde tartışmalar vardı.
Bakış açınıza göre haklı olabilirsiniz, diğer yandan, belgelere hızlı bir şekilde bakma riskini alırsanız basitçe cevaplanmış birçok soru gördüm ve bu soruları tekrar tekrar cevaplarken kendinizi gerçekten aptal gibi hissediyorsunuz.
Ayrıca google ve burada bir arama seçeneği var. Bir şeyi nasıl yapacağımı bilmiyorsam, bu benim bir sonraki adımım sorunu kendi başıma çözmeye çalışmaktır.
Bu konunun konusu olması durumunda, çok para birimli bir sistemin nasıl kodlanacağını bilmiyorum, google'a yanıt verirdim veya zaten mevcut kodu burada arardım.
Bakış açınıza göre haklı olabilirsiniz, diğer yandan, belgelere hızlı bir şekilde bakma riskini alırsanız basitçe cevaplanmış birçok soru gördüm ve bu soruları tekrar tekrar cevaplarken kendinizi gerçekten aptal gibi hissediyorsunuz.
Ayrıca google ve burada bir arama seçeneği var. Bir şeyi nasıl yapacağımı bilmiyorsam, bu benim bir sonraki adımım sorunu kendi başıma çözmeye çalışmaktır.
Bu konunun konusu olması durumunda, çok para birimli bir sistemin nasıl kodlanacağını bilmiyorum, google'a yanıt verirdim veya zaten mevcut kodu burada arardım.
Geri bildiriminiz için teşekkür ederiz, olumlu olmasına sevindim. çok komik
Bu durumda karşılaştığım yol için endişelenenlerden özür dilerim. Ben gerçekten barışı seven, dramadan uzak, genellikle katılmadığım çoğu şeyi görmezden gelen bir insanım.
Merhaba millet,
Burada aktivite olmadan uzun süre için özür dilerim. İş için seyahat ediyordum ve ayrıca bazı projelerle meşguldüm ve bir süre projeyi bir kenara bırakmak zorunda kaldım..
Gönderi güncellemelerini okuduktan sonra, netleştirmem gereken bazı noktalar var:
Aşağıda, gösterge kodu:
RefreshRates() kullanmaya çalışıyorum ama yine de aynı sonuçla... sadece aynı penceredeki çift çalışıyor, diğer çiftler güncellenmiyor.
RefreshRates() 'in MqlRates verileriyle hiçbir ilgisi yoktur. WHRoeder'ın örnek kodu yalnızca 600 öncesi yapılar için geçerlidir. En son derleme için, ArrayCopyRates() dönüş kodlarının yanı sıra Hata kodları, Rates Array'in boyutu ve WHRoeder tarafından belirtilen ek bir önlem olarak test etme gibi gönderimde belirtilen çeşitli noktaları kontrol etmeniz gerekir. zaman özelliğinin geçerliliği.
not! İngilizcede zorlanıyorsan bana PM gönder. Ben Portekizliyim (Portekiz)
Merhaba millet.
Test ederken, önce çift dizisini tüm yinelemelerde ÜCRETSİZ, ardından oranları tekrar kopyalayan bir döngü ekleyerek OnCalculate işlevine oranların bir "tekrar kopyasını" ekledim. Çalışıyor gibi görünüyor ve hata döndürmüyor.
İhtiyacım olanı yapmanın en iyi yolu bu mu bilmiyorum ama görünüşe göre çalışıyor ve hatasız.
Bu konuyu takip edenler için bir güncelleme!
OP'nin PM aracılığıyla kodunu düzeltmesine yardım ediyorum, çünkü İngilizce'de zorluk çekiyor ve ikimiz de Portekizce konuşuyoruz. Testlerimizde " ArrayCopyRates() " işleviyle gerçekleşen başka bir "komik" ile karşılaştık. Bir EA'da " ArrayCopyRates() " ile bir MqlRates dizisi kullanırken, veri dizisi her zaman şeylerin mevcut durumunu bildiren sanal bir dizidir, bu nedenle veriler her zaman tazedir.
Ancak, bir Göstergede durum böyle görünmüyor. Dizi sanal bir kopya değil, bunun yerine " ArrayCopyRates() " çağrıldığı anda ayarlanmış statik bir kopyadır. Sembol, grafik sembolünden farklı olduğunda veriler güncellenmez. Grafikle aynı sembol olduğunda, dizi verileri "canlıdır" ve beklendiği gibi güncellenir, ancak başka bir sembole ait olduğunda statik bir kopyadır.
Bu nedenle, bir Göstergede çalışması için, taze verilere ihtiyaç duyulursa, OnCalculate() olayına yapılan her çağrıda " ArrayCopyRates() " işlevi çağrılmalıdır.
Herkese selam.
Bu (neredeyse) daha sonra yaptığım şeyin aynısı, ancak fark şu ki, ArrayCopyRates'ten önce bir ArrayFree çalıştırıyorum... ve bana yardım ettiğiniz doğrulamaları yapmıyorum.
İşte FMIC'in bana yardım ettiği son kod. Şimdi bir gösterge kodunda normal çalışıyor ..: