Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Aslında, hiçbir şekilde. Harici bir program ile MT'deki bir program arasında hiçbir fark yoktur. Olasılıklar aynı, etkileşim aynı.
Hiçbir şey açıklamadı. Açıkça cevaplayın plz - MT'den * nasıl Sharpe üzerindeki panelden veri alıyorsunuz?
Bir zamanlayıcı anketi ile Bellek Eşleme yoluyla geri bildirim yaptım. Panel yalnızca farklı ayarları ve yavaş hesaplamaların sonuçlarını iletti
Cahillik güven verir. Ama bilgi acıları çoğaltır.
Tamam, o zaman Paneli Bellek Eşleme yoluyla bağlayarak ayrı yapacağım. Önceleri 2000'lerin sonlarında borular üzerinden yapıyordum ama pek hoşuma gitmemişti.
Doğrudan bağlamama rağmen, herhangi bir korku fark etmedim.
Terminale COM arayüzü - genel olarak bir krutoten olacaktır. Hızla modası geçmiş olmasına rağmen.
Sadece gerçek zamana uymuyor. :-(
COM arayüzü büyük ihtimalle olmayacak.
Ama neden modası geçmiş olduğunu öğrenebilir misin?
Ve ayrıca hızlı.
COM arayüzü büyük ihtimalle olmayacak.
Ama neden modası geçmiş olduğunu öğrenebilir misin?
Ve ayrıca hızlı.
kendi iletişim arayüzleri ile .net ile değiştirildi
kendi iletişim arayüzleri ile .net ile değiştirildi
ve COM'da bazı GUID'ler bir değere sahiptir
MS hala kullanılmayan GUID'leri bir dolar karşılığında 10 parçaya geri alıyor. Eski günlerden beri ortalıkta dolaşıyorsanız - çok para kazanabilirsiniz!
ve COM'da bazı GUID'ler bir değere sahiptir
MS hala kullanılmayan GUID'leri bir dolar karşılığında 10 parçaya geri alıyor. Eski günlerden beri ortalıkta dolaşıyorsanız - çok para kazanabilirsiniz!
Doldurdum :-) Veriyorum - MS'ye atabilirsin
066cd265-e2fe-468e-9492-4228e9759e38
8e1040ba-dc3e-4e2a-9208-e3ea8da9ad05
03dcd7cd-4b9b-4ff7-bff0-e0839a0f9d8b
d69f2c8c-de51-4557-8188-4ebb870da7da
a79a8cc6-f785-4268-bc4e-2deda0f1ecd0
f4f59f52-1da8-4f74-a71e-9aec1992674d
85608797-6015-456d-af64-ad7890120372
9289991a-e287-47fb-b595-6d719c1b7dbd
63d3b953-3229-4045-a82a-fc9e7795bb01
c75c4e0f-8320-42df-943c-9aada54b60eb
bir şey olursa, benimle iletişime geç - belki daha fazlasını bulurum
Meslektaşlar. Hangi geliştirme ortamının daha iyi, hangi kodun daha hızlı olduğu tartışmasının anlamsız olduğunu düşünüyorum. Bunların hepsi bir zevk meselesi ve çözülmesi gereken görevlere bağlı. Geliştirme ortamından bağımsız olarak, harici uygulama ile MT aracı arasında hala etkileşim sorunlarımız var. En basit örneği ele alalım. Yerel bir dll'de karmaşık matematiksel hesaplamalar için bir algoritma uyguladınız. MT aracından gerekli parametreler bu kütüphaneye aktarılarak hesaplama başlatıldı, araç hesaplamalar bitene kadar çalışmasına devam etti. harici uygulama hesaplamayı bitirdi ve burada basit bir soru ortaya çıkıyor: MT'deki enstrümana hesaplamanın tamamlandığı nasıl bildirilir? veri aktarımı sorun değil, sorun bildirimde. Ve yine, bu soru geliştirme ortamına bağlı değildir!
Birkaç seçenek görüyorum:
1. OnChartEvent yöntemini, örneğin PostMessage kullanarak harici bir programdan çağırma yeteneği
2. Renat'ın önerdiği gibi MT araçlarına yeni bir yöntem eklemek: OnExternal, olayın türünü veya genel olarak iletilen verileri belirtir, yani bu yöntemde verilerin kendisini döndürebilirsiniz.
3. Winsocket MT araçlarında uygulama. Bu, ikinci noktaya benzer, yalnızca MT'deki aracın verileri dinlemek için belirli bir bağlantı noktasına bağlanmasına izin verir.
Birinci ve ikinci noktalar bir makine düzeyinde etkileşime izin veriyorsa, üçüncü nokta MT araçları için ağ etkileşimi sağlayacaktır.
İşte bir örnek: https://www.mql5.com/ru/articles/2599
Ancak burada yine bir sorunla karşılaşıyorsunuz: Soketteki verilerin varlığını sürekli olarak kendiniz kontrol etmeniz gerekiyor.
Yani, geri arama sorunu her durumda kalır ve çözülmez.
Zamanlayıcı izleme bir çözüm değil, koltuk değneğidir. Evet, başka seçeneklerin yokluğunda, şimdi böyle karar veriyoruz.
Geliştiriciler bu sorunlara platform düzeyinde bir çözüm uygularsa, terminal API'sine erişim gerekmez. Sonuçta, ona iyi bir hayattan değil, MT ile oluşturulan uygulamalar arasında tam teşekküllü bir etkileşim olmadığı için sorulur. Ve tekrar ediyorum: bu sorun, harici uygulama için seçilen geliştirme ortamından bağımsız olarak mevcuttur.
Ağ kitaplıklarını kullanma olasılığı hakkında bilgi))) https://www.mql5.com/ru/forum/13388
Konu aslında çok eski. Geliştiricilerin kendileri bir kez net ile sorunsuz çalışma olasılığını açıkladılar .. o zamandan beri köprünün altından çok su aktı, ancak sorun çözülmeden kaldı ...
Veya Renat'ın kendisinden bir mesaj: https://www.mql5.com/ru/forum/3153/page2#comment_298866
https://www.mql5.com/en/forum/3153/page2#comment_298892
Meslektaşlar. Hangi geliştirme ortamının daha iyi, hangi kodun daha hızlı olduğu tartışmasının anlamsız olduğunu düşünüyorum. Bunların hepsi bir zevk meselesi ve çözülmesi gereken görevlere bağlı. Geliştirme ortamından bağımsız olarak, harici uygulama ile MT aracı arasında hala etkileşim sorunlarımız var. En basit örneği ele alalım. Yerel bir dll'de karmaşık matematiksel hesaplamalar için bir algoritma uyguladınız. MT aracından gerekli parametreler bu kütüphaneye aktarılarak hesaplama başlatıldı, araç hesaplamalar bitene kadar çalışmasına devam etti. harici uygulama hesaplamayı bitirdi ve burada basit bir soru ortaya çıkıyor: MT'deki enstrümana hesaplamanın tamamlandığı nasıl bildirilir? veri aktarımı sorun değil, sorun bildirimde. Ve yine, bu soru geliştirme ortamına bağlı değildir!
Birkaç seçenek görüyorum:
1. OnChartEvent yöntemini, örneğin PostMessage kullanarak harici bir programdan çağırma yeteneği
2. Renat'ın önerdiği gibi MT araçlarına yeni bir yöntem eklemek: OnExternal, olayın türünü veya genel olarak iletilen verileri belirtir, yani bu yöntemde verilerin kendisini döndürebilirsiniz.
3. Winsocket MT araçlarında uygulama. Bu, ikinci noktaya benzer, yalnızca MT'deki aracın verileri dinlemek için belirli bir bağlantı noktasına bağlanmasına izin verir.
Birinci ve ikinci noktalar bir makine düzeyinde etkileşime izin veriyorsa, üçüncü nokta MT araçları için ağ etkileşimi sağlayacaktır.
İşte bir örnek: https://www.mql5.com/ru/articles/2599
Ancak burada yine bir sorunla karşılaşıyorsunuz: Soketteki verilerin varlığını sürekli olarak kendiniz kontrol etmeniz gerekiyor.
Yani, geri arama sorunu her durumda kalır ve çözülmez.
Zamanlayıcı ile izleme bir çözüm değil, koltuk değneğidir. Evet, başka seçeneklerin yokluğunda, şimdi böyle karar veriyoruz.
Geliştiriciler bu sorunlara platform düzeyinde bir çözüm uygularsa, terminal API'sine erişim gerekmez. Sonuçta, ona iyi bir hayattan değil, MT ile oluşturulan uygulamalar arasında tam teşekküllü bir etkileşim olmadığı için sorulur. Ve tekrar ediyorum: bu sorun, harici uygulama için seçilen geliştirme ortamından bağımsız olarak mevcuttur.
İzleme ve anketler hakkında ekleyeceğim, ancak herkes bunu bilmiyor - DLL'yi her ankette çekmemek için, bayrakları "paylaşmak" için bir int[] olabilir. DLL içinde, bunlara tüm erişim __atomic__ gibidir.
Prensipte, bu işe yarar ve kaynaklar açısından oldukça ekonomiktir, ancak MQL açısından, artış/azalmanın da atomik olduğu ve optimize edicinin değerler hakkında varsayımlarda bulunmadığı gerçeğine güvenmeniz gerekir.
int flags[1]={0}; // когда DLL досчитает она инкрементит флаг
handle=InitDLL(flags); //
...
// опрос типично выглядит так:
while ( flags[0] ) // проверить один int это очень быстро
{
flags[0]--;
ReadDataFromDLL(handle);
}
Tamamen daha güzel olması için, atomik (uçucu?) nitelik ve buna karşılık gelen bir dizi ilkel yeterli olacaktır. Bence bu, sisteme yeni bir mekanizma eklemekten daha kolay ve mevcut DLL protokolünü değiştirmiyor.
İzleme ve anketler hakkında ekleyeceğim, ancak herkes bunu bilmiyor - DLL'yi her ankette çekmemek için, bayrakları "paylaşmak" için bir int[] olabilir. DLL içinde, bunlara tüm erişim __atomic__ gibidir.
Prensipte, bu işe yarar ve kaynaklar açısından oldukça ekonomiktir, ancak MQL açısından, artış/azalmanın da atomik olduğu ve optimize edicinin değerler hakkında varsayımlarda bulunmadığı gerçeğine güvenmeniz gerekir.
int flags[1]={0}; // когда DLL досчитает она инкрементит флаг
handle=InitDLL(flags); //
...
// опрос типично выглядит так:
while ( flags[0] ) // проверить один int это очень быстро
{
flags[0]--;
ReadDataFromDLL(handle);
}
Tamamen daha güzel olması için, atomik (uçucu?) nitelik ve buna karşılık gelen bir dizi ilkel yeterli olacaktır. Bence bu, sisteme yeni bir mekanizma eklemekten daha kolay ve mevcut DLL protokolünü değiştirmiyor.
Maxim ve bu çözüm neden daha iyi? Sonuçta, bayrağın durumunu sorgulamak için MQL'de periyodik olarak kontrol etmek de gereklidir. Nerede kazmadığınız ortaya çıkıyor, verileri toplama zamanının geldiğini anlamak için bir şeyin durumundaki değişikliği sürekli izlemeniz gerekiyor. Ve bu parça, dll'nin kendisinde saklanabilir ve orada kontrol edilebilir, ben de öyle yapıyorum. Örneğinizde, bayrağın durumunu döndürmek için örtük bir dll çağrısı var.