İki MT4 terminali arasında veri alışverişi?

 

Merhaba!


Aşağıdaki stratejiyi uygulamak istiyorum: "Farklı DC'lerden alınan alıntılardaki farkı çatallar":

strateji çok basittir, iki DC'de bir enstrümana karşıt oranları koyabilmeniz ve teklifler doğru yönde ayrılana kadar beklemeniz, ardından her iki oranı da kapatabilir ve toplamda kar elde edebilirsiniz (değeri tekliflerin farklılığı, iki DC için toplam komisyondan daha büyük olmalıdır).


Strateji uzun süredir yeni değil, ancak uygulamasını henüz görmedim. İşte uygulamak istiyorum.


Asıl sorun, her an her iki DC'nin teklif değerini bilmeniz gerektiği ve danışmanın yalnızca bir terminalle (bir DC ile) çalışması gerçeğinde yatmaktadır.

Onlar. MT4 terminallerinin her birinde bir danışman başlatılır ve bu danışman yalnızca kendi fiyat tekliflerini bilir ve "komşunun" alıntıları onun tarafından bilinmez!!!

Her iki danışmanın da birbirlerinin alıntılarını bildiğinden emin olmak gerekir, yani. birbirleriyle veri alışverişinde bulunabilirler.


Bu konuyu bilenleri burada paylaşmak istiyorum. Belki birileri zaten benzer bir strateji uygulamıştır, ben de geri bildirim almak istiyorum.


Veri alışverişi için 2 yol buldum:


1) en banal: bir dosyaya veri yazmak ve bu dosyayı başka bir danışman tarafından okumak. Temel olarak, yapmak çok kolaydır. Tek sorun, EA'nın yalnızca "dizininden" dosya yazabilmesi ve okuyabilmesidir. Ama her şey dll yardımı ile çözülür.

Hala iyi bir dezavantaj var: küçük bir döviz kuru. Bellekten yazma ve okuma hızıyla karşılaştırmayın (((.


2) Bunun yapılabileceğinden emin değilim (çünkü çok iyi bir programcı değilim), ama şimdi programcılara şunu sormak istiyorum:

hafızada bir yer ayırın ve oraya tırnak yazın, bu yerin adresi her iki danışman tarafından da bilinir, böylece bu yeri hem okuyabilir hem de yazabilir.

Tabi tüm bu teknoloji dll üzerinden oluyor.

3) başka bir GlobalAddAtom buldu, ancak onunla nasıl bir dll yazılır? onlar. Nasıl çalıştığını anlamıyorum?


Stratejiyle ilgilenen ve onu da uygulamak isteyen varsa, lütfen benimle iletişime geçin, en iyi uygulamalarımı paylaşmaktan mutluluk duyacağım!

 
Böyle bir strateji için üzücü bir son olabilir http://www.kroufr.ru/forum/index.php/topic,6265.0.html
 
Ve bir DLL aracılığıyla bu tür bir çalışmayı nasıl hayal ediyorsunuz?
 
geopoint :
Böyle bir strateji için üzücü bir son olabilir http://www.kroufr.ru/forum/index.php/topic,6265.0.html
tam anlamadım? Muhtemelen DC'nin öğrenirse onu fırlatıp atabileceği gerçeğiyle ilgili, değil mi?
 
D500_Rised :
Ve bir DLL aracılığıyla bu tür bir çalışmayı nasıl hayal ediyorsunuz?

Sadece standart MQL4 araçları değiş tokuş yapamayacak, sanırım öyle. Ama nasıl yapılacağını biliyorsanız, lütfen paylaşın!

Ve dll aracılığıyla, örneğin, sadece bir dizinden değil, herhangi bir dizinden dosyaları okuyabilen bir işlev bağlayabilirsiniz!

 

dll her terminalden aynı paylaşılan dosyaya erişmeye devam edecektir. Bana öyle geliyor ki, bu, böyle bir devrenin kararlı çalışmasının yetersizliğine yol açan bir takım hatalara neden olacak. BENİM NACİZANE FİKRİME GÖRE.

Multiterminale baktınız mı? Aynı anda farklı sunuculara bağlanmanın bir yolu var mı?

Aklıma şu fikir geldi: eğer multiterminal birden fazla hesapla çalışma yeteneğine sahipse, gerçek sunucu ve demo sunucusu ile aynı anda çalışmak muhtemelen mümkündür. Demo sunucu adresini başka bir DC'nin gerçek sunucu adresiyle değiştirirsek ne olur?

 
D500_Rised :

dll her terminalden aynı paylaşılan dosyaya erişmeye devam edecektir. Bana öyle geliyor ki, bu, böyle bir devrenin kararlı çalışmasının yetersizliğine yol açan bir takım hatalara neden olacak. BENİM NACİZANE FİKRİME GÖRE.

Multiterminale baktınız mı? Aynı anda farklı sunuculara bağlanmanın bir yolu var mı?

Aklıma şu fikir geldi: eğer multiterminal birden fazla hesapla çalışma yeteneğine sahipse, gerçek sunucu ve demo sunucusu ile aynı anda çalışmak muhtemelen mümkündür. Demo sunucu adresini başka bir DC'nin gerçek sunucu adresiyle değiştirirsek ne olur?

Bu yöntemi dosya üzerinden zaten yaptığım için hata yok. Sadece 2 dosya var, yani. Her EA'nın tırnak yazdığı kendi dosyası vardır ve EA'lar birbirlerinin dosyalarını okur. Ana şey doğru okumak ve yazmaktır (EA her zaman aynı dosyayı okur ve her zaman aynı dosyaya yazar). İşin istikrarının belleğe erişmekten daha kötü olacağına katılıyorum.


Multiterminalde böyle bir olasılık yoktur ve olsaydı bile orada Expert Advisor'ları çalıştıramazsınız. Böyle bir şemayı manuel olarak uygulamak istiyor musunuz ??? (istemiyorum)

 
D500_Rised :

Multiterminale baktınız mı? Aynı anda farklı sunuculara bağlanmanın bir yolu var mı?


Numara
 

Zamanda doğru sıralama olasılığından şüpheliyim: write_1---read_2, write_2---read_1.

Uzman Danışmanların aynı dosya üzerinde oluşmaması için süreç nasıl düzenleniyor, önceden okunan verileri yenilerinden ayırt edebiliyorlar mı (ek geçici tanımlama gereklidir)

Ve genel olarak, oyun muma değer mi? Tırnaklardaki farka ulaşılırsa, aynı anda birkaç şey bu oyuna karşıdır:

1-2 spread (2*2-4 pip)

2- Fişler

3- Düşük gerçek emir gerçekleştirme hızı (bayi tarafından emir işleme sırasında fiyat değişebilir ve pozitif farkı ortadan kaldırabilir) + yeniden teklifler

vb.

 
D500_Rised :

Zamanda doğru sıralama olasılığından şüpheliyim: write_1---read_2, write_2---read_1.

Uzman Danışmanların aynı dosya üzerinde oluşmaması için süreç nasıl düzenleniyor, önceden okunan verileri yenilerinden ayırt edebiliyorlar mı (ek geçici tanımlama gereklidir)

Ve genel olarak, oyun muma değer mi? Tırnaklardaki farka ulaşılırsa, aynı anda birkaç şey bu oyuna karşıdır:

1-2 spread (2*2-4 pip)

2- Fişler

3- Düşük gerçek emir gerçekleştirme hızı (bayi tarafından emir işleme sırasında fiyat değişebilir ve pozitif farkı ortadan kaldırabilir) + yeniden teklifler

vb.

Bir EA her zaman dosyaya yazdığından ve diğer EA her zaman bu dosyadan okuduğundan ve hangi sırayla gerçekleştiği önemli olmadığından sorun yok. Verilerin alaka düzeyini kontrol etmek için yerel saati kullandım, yani. alıntılar her 100 milisaniyede bir kaydedilir ve ardından alaka düzeyi yerel saatte kontrol edilir.


"Mumlara" gelince: Tam cevabı bilmiyorum, bu yüzden kontrol etmek istiyorum. Sen de bilmiyorsun, yani gözle anladın, nicel verilere daha çok ikna oldum. Toplam yayılma = 4 puan ve tutarsızlık 10 puan ise, o zaman kötü koşullarda bile, 6 karlı noktadan en az yarısını alabilirsiniz, ne düşünüyorsunuz?

 
D500_Rised :

Zamanda doğru sıralama olasılığından şüpheliyim: write_1---read_2, write_2---read_1.

Yönteminizi önerebilir misiniz, yoksa sadece bir yolu tartışıyoruz: bir dosya aracılığıyla, ancak daha gelişmişleri var: hafıza yoluyla, onlar hakkında bir şeyler söyleyebilir misiniz?
Neden: