MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1012

 
Alexey Viktorov :

Bu mesajdaki "Tüm terminallerde paylaşılan klasörler var" sözlerine dikkat edin.


Nasıl yapıldığına dair bilgi arayın ve gidin... Buna klasör bağlama denir.

Yani bu yapılabilir. Bir kütüphane yazın ve farklı terminallerden bu kütüphaneye açık erişim sağlayın ve veri alışverişi yapabilecekler veya bir robotu 2 terminale bağlayabilecekler. Anlayana kadar bağlantı hakkında biraz okudum. Bununla ilgili daha fazla soru sorabileceğim başlıklar var mı?

 
Seric29 :

Yani bu yapılabilir. Bir kütüphane yazın ve farklı terminallerden bu kütüphaneye açık erişim sağlayın ve veri alışverişi yapabilecekler veya bir robotu 2 terminale bağlayabilecekler. Anlayana kadar bağlantı hakkında biraz okudum. Bununla ilgili daha fazla soru sorabileceğim başlıklar var mı?

Konuyu forumda görmedim ama birkaç talimata baktıktan sonra bunun daha anlaşılır olduğunu düşünüyorum. Denedim, işe yaradı ama henüz uygulamaya gerek görmüyorum. Tüm terminallerden geçmişi tek bir klasörde birleştirmenin güzel olacağını düşünmeme rağmen.

 
Alexey Viktorov :

Konuyu forumda görmedim ama birkaç talimata baktıktan sonra bunun daha anlaşılır olduğunu düşünüyorum. Denedim, işe yaradı ama henüz uygulamaya gerek görmüyorum. Tüm terminallerden geçmişi tek bir klasörde birleştirmenin güzel olacağını düşünmeme rağmen.

Tavsiye için teşekkürler. Sabit bir bağlantı kullandım



, bunun için aynı birimde kurulacak terminallere ihtiyacınız var

, Aptalca bir birim ekledim, sonra ex4 ve mq4 dosyalarını bağladım, sonunda her şey her iki tarafta da çalışıyor, şimdi paylaşılan kütüphaneler yazıp kullanabilirsiniz. Ne kadar güvenilir bilmiyorum ama robotu grafiğe attım. Kodu derlerken dosyalar 2 taraftan değişiyor ancak bir yandan hesaplamalar güncelleniyor, robotu çevrimiçi çalışmaya bırakırsanız, o zaman programın aynı ve eklenmiş ve derlenmiş olmasına ihtiyacınız var, nasıl çalışacak bilinmiyor, belki birinin kontrol etme fırsatı vardır, henüz kontrol edemiyorum.

 
Seric29 :

Tavsiye için teşekkürler. Sabit bir bağlantı kullandım



, bunun için aynı birimde kurulacak terminallere ihtiyacınız var

, Aptalca bir birim ekledim, sonra ex4 ve mq4 dosyalarını bağladım, sonunda her şey her iki tarafta da çalışıyor, şimdi paylaşılan kütüphaneler yazıp kullanabilirsiniz. Ne kadar güvenilir bilmiyorum ama robotu grafiğe attım. Kodu derlerken dosyalar 2 taraftan değişiyor ancak bir yandan hesaplamalar güncelleniyor, robotu çevrimiçi çalışmaya bırakırsanız, o zaman programın aynı ve eklenmiş ve derlenmiş olmasına ihtiyacınız var, nasıl çalışacak bilinmiyor, belki birinin kontrol etme fırsatı vardır, henüz kontrol edemiyorum.

Peki derleyicide sihirli bir klasör var mı yoksa uygun değil mi?


 
Seric29 :

Tavsiye için teşekkürler. Sabit bir bağlantı kullandım

Ve neden belirli dosyalara bağlantı vermek gerekliydi? Klasörlere sembolik bağlantılar yapmak daha iyi değil mi ve bu klasörün tüm dosyaları bu bağlantıların yapıldığı terminallerde mevcut olacak.

Dikkat çekici bir şekilde şöyle:

Resimde 00.png solda klasörün kendisi ve sağda bir terminalden bir bağlantı var

Resimde 11.png ayrıca başka bir terminalden bir bağlantıdır.

Ve resimde 22.png içerik, solda klasörün kendisi ve sağda bağlantının içeriği.

Dosyalar:
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko :

Peki derleyicide sihirli bir klasör var mı yoksa uygun değil mi?


Bu yüzden bunu yapmanın mümkün olup olmadığını ve güvenilir bir şekilde çalışıp çalışmayacağını da soruyorum. Hayır cevabı verildi. Belli bir program önerdiler, tabii ki onunla oynadım ama hiçbir şey olmadı. Sonra komut satırı ile tavsiye verdiler, 3 saat oynadım, bir şey çıktı gibi geldi ama önce nasıl güvenilir bir şekilde güncellenmedi bilmiyorum, hem dosya tarihi, hem içerik, sonra sadece içerik değişmeye başladı ve tarih değişmedi, biraz garip. Yönteminiz hakkında nereden okuyabilirim? Ne kadar güvenilir, robotlar online olarak birbirleriyle etkileşime geçebilecekler mi?

 
Alexey Viktorov :

Ve neden belirli dosyalara bağlantı vermek gerekliydi? Klasörlere sembolik bağlantılar yapmak daha iyi değil mi ve bu klasörün tüm dosyaları bu bağlantıların yapıldığı terminallerde mevcut olacak.

Dikkat çekici bir şekilde şöyle:

Resimde 00.png solda klasörün kendisi ve sağda bir terminalden bir bağlantı var

Resimde 11.png ayrıca başka bir terminalden bir bağlantıdır.

Ve resimde 22.png içerik, solda klasörün kendisi ve sağda bağlantının içeriği.

Bunu gördüm, TotalComander üzerinden senkronizasyon ama anladığım kadarıyla bu şey sadece dosyaları (örneğin resimleri) aktarıyor ve bir metin dosyası olduğu ve değiştiği gerçeğinden bahsediyorsak, eklesem değişir mi? dosyaya bir şey mi? TotalComander üzerinden bağlantı ne kadar güvenilir, robotlar birbirleriyle çevrimiçi olarak etkileşime geçebilecek mi yoksa sadece kod yazmak için mi uygun olacak?

 
Seric29 :

Bunu gördüm, TotalComander üzerinden senkronizasyon ama anladığım kadarıyla bu şey sadece dosyaları (örneğin resimleri) aktarıyor ve bir metin dosyası olduğu ve değiştiği gerçeğinden bahsediyorsak, eklesem değişir mi? dosyaya bir şey mi? TotalComander üzerinden bağlantı ne kadar güvenilir, robotlar birbirleriyle çevrimiçi olarak etkileşime geçebilecek mi yoksa sadece kod yazmak için mi uygun olacak?

TotalComander yalnızca iki klasörün içeriğini göstermek içindir. Evet, bana vidalı iletkenden daha tanıdık geliyor. Ayrıca komut satırındaki tüm sembolik bağlantıları da yaptım. Yalnızca anahtar / H değil, / D ve bir dosya için değil, bir klasör içindi. Ve farklı yerlerden gelen bu bağlantının aynı dosyaya erişimi var.

Her ne kadar dosyanın bir terminal tarafından kullanıldığında kullanılabilir olup olmayacağını şimdi düşündüm de ... Segey Tarbolin'e kişisel olarak yazmak daha iyi. Anladığım kadarıyla, kullanıyor ve muhtemelen kesin olarak biliyor.

 
Alexey Viktorov :

TotalComander yalnızca iki klasörün içeriğini göstermek içindir. Evet, bana vidalı iletkenden daha tanıdık geliyor. Ayrıca komut satırındaki tüm sembolik bağlantıları da yaptım. Yalnızca anahtar / H değil, / D ve bir dosya için değil, bir klasör içindi. Ve farklı yerlerden gelen bu bağlantının aynı dosyaya erişimi var.

Her ne kadar dosyanın bir terminal tarafından kullanıldığında kullanılabilir olup olmayacağını şimdi düşündüm de ... Segey Tarbolin'e kişisel olarak yazmak daha iyi. Anladığım kadarıyla, kullanıyor ve muhtemelen kesin olarak biliyor.

Total Commander ile oynadım genel olarak anladığım kadarıyla sadece butona basıldığı anda senkronizasyon oluyor ve konsol üzerinden H tuşu kullanılarak dosyanın içeriği gerçek zamanlı değişiyor fakat butona bastığınızda orjinalde derle butonu robotun referansla yaptığı hesaplamalar değişmiyor linkteki derle butonuna basmanız gerekiyor ama robot aynı ise ve kod çalışmıyorsa bilmiyorum çevrimiçi çalışacak, kontrol etmenin bir yolu yokken, bitmemiş program ayarlarını yıkabilirim. Ancak dosyalar özelliği değiştirdiği için çalışması gerektiğini düşünüyorum. Genel olarak ya konsol üzerinden ya da adam yukarıda bir şey önerdi ama bilgileri normal bulmadım. Tavsiye ettiğin kişiye yazacağım.

 

Herkese merhaba, lütfen bana işlevi MQL4'ten MQL5'e nasıl doğru bir şekilde dönüştüreceğimi söyleyin:

//+------------------------------------------- --------------------+
// Son çubukta kapatılan Sell_Orders sayısı
int Anz_g_Sell_Order()
{
int sayı = 0;
for(int i=OrdersHistoryTotal()-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == doğru
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
{
say++;
}
}
dönüş(sayım);
}
//+------------------------------------------- ----------------------+

Yeniden yazdım ama nedense çalışmıyor, hata nerede? :

//+------------------------------------------- --------------------+
// Son çubukta kapatılan Sell_Orders sayısı
int Anzahl_g_Sell_Order()
{
int sayı = 0;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong bilet = HistoryDealGetTicket(i);
if(HistoryDealGetString(bilet,DEAL_SYMBOL) == _Symbol
&& HistoryDealGetInteger(bilet,DEAL_TYPE) == DEAL_TYPE_SELL
&& HistoryDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
say++;
}
}
}
dönüş(sayım);
}
//+------------------------------------------- ----------------------+

Neden: