- Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6.
- 10pip boşluklu açık siparişler
- Sormak!
Cevap lütfen. Eğer öyleyse, o zaman sadece bir gecikme sağlayacağım, ama önce nedenini bilmek istiyorum.
Soruyu biraz farklı bir ifadeyle tekrarlıyorum: altı numaralı hata (alıntılar var, ancak ticaret sunucusu yok) - bunun nedeni sunucunun saatlik çubuğun başında aşırı yüklenmesi mi? Expert Advisor'da bir sorun aramalı mıyım, yoksa barın başlamasından 3 dakika sonra, sunucudaki yük daha az olduğunda, sadece fırsatlar mı açmalıyım?
Aynı seriden ikinci soru: Aynı anda birçok uzmanım olsa ve herkes barın başında bir şeyler yapıyorsa sorun olur mu? Yoksa hesaplamalar aynı hizaya mı gelecek? Örneğin, Uzman Danışmanın hesaplamak için zamanı yoksa, ancak yeni bir onay işareti geldiyse ne olacak - hesaplamayı eski fiyattan tamamlayacak mı? Ve bu yeni bir kene ise, hesaplamanın (eğitimde önerdiğiniz kodla çubuğun başlangıcını kontrol ediyorum) çubuğun başlangıcını yine de göstereceğini garanti ediyor musunuz?
Bunlar önemli sorular, detaylandırmak istiyorum.
Samimi olarak,
kuark
2. Uzmanlar, her biri kendi alanında paralel olarak çalışır. yeni bir onay işareti gelirse ve EA hala çalışıyorsa, onay işareti yok sayılır. Expert Advisor'ın çalıştığı tüm fiyat verileri orijinal kalır (Uzman Danışman aslında verilerin bir kopyası ile çalışır). En son, değiştirilen verileri almak için RefreshRates işlevi vardır.
Aslında soruyu sordum çünkü barın başında bir pozisyon açmaya çalışırken iki kez 6 hatası aldım:
bool bisBarEnd = yanlış; if(timePrev != Zaman[0]) bIsBarEnd = doğru; timePrev = Zaman[0]; if(!bisBarEnd) dönüş(0); ....
Soru devam ediyor - çubuğun başındaki HER ŞEY daha aktif olduğundan, sunucunun aşırı yüklenmesinden mi kaynaklanıyor? Yoksa başka bir şey yüzünden mi?
Alpari'den biri bu yazıyı okuyorsa hesap 116122'dir.
Bu, bu tür hatalar için uyarı veren tek Uzman Danışmanım. Demo Uzman Danışmanları olanların OrderSend -1 döndürmesi durumunda uyarı kurmalarını öneririm (ya bu durum her zaman oluyorsa). İşte satın almanın kodu, satmanın prensibi aynıdır:
int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 0, "Yorum", nMagic, 0, Aqua); if(nSonuç == -1) { int nError = GetLastError(); Uyarı(nHata); }
Ayrıca, her ihtimale karşı, mantığın olduğu kısım hariç (kesinlikle ilgisi yoktur) tüm Expert Advisor'ı sunuyorum. Bak lütfen. Yine de MT olduğunu düşünüyorum. EA, EURUSD saatlik grafiğine asılır ve alım satım yerine periyodik olarak hatalar üretir.
İlk başlatmanın (Uzman Danışman grafiğe yapıştığında veya kodu yeniden derlendiğinde) herhangi bir hata vermeden normal şekilde çalıştığını belirtmek isterim. Yani bir hata aldık, 5 saniye sonra editörde F5'e bastık, Expert Advisor başladı, işlem açıldı.
Genel olarak, yardım edin, lütfen!
double dStopLoss; int nHoursToHold; datetime timePrev = 0; bool bIsFirst = true; int nSlip = 5; double dTp = 0; double dLotSize = 0.1; int nNumOfExperts = 5; int nMagic = 0; ////////////////// int init () { timePrev = 0; if(Symbol() == "EURUSD" && Period() == 60) { dStopLoss = 110 * Point; nHoursToHold = 1; nMagic = 23; } return(0); } // ------ int deinit() { return(0); } // ------ int start() { if(Bars < 5) return(0); // The previous bar just closed bool bIsBarEnd = false; if(timePrev != Time[0]) bIsBarEnd = true; timePrev = Time[0]; if(!bIsBarEnd) return(0); // ------ int nSignal = GetSignal(); if(nSignal == OP_BUY) Buy(); else if(nSignal == OP_SELL) Sell(); for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == nMagic) { if(CurTime() - OrderOpenTime() > (nHoursToHold - 1) * 60 * 60) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed); } } } return(0); } // ------ void Sell() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_SELL, dLotSize, Bid, nSlip, Bid + dStopLoss, 0, "Comment", nMagic, 0, OrangeRed); if(nResult == -1) { int nError = GetLastError(); Alert(nError); } } // ------ void Buy() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 0, "Comment", nMagic, 0, Aqua); if(nResult == -1) { int nError = GetLastError(); Alert(nError); } } // ------ double GetLotSize() { double dLot = 0.1; return(dLot); } // ------ int GetSignal() { int nSignal = OP_BUY; return(nSignal); } // ------
Neyin kolları? Bu kollardan kaç tane var? Uzman sayısı, çizelge vb. konusunda herhangi bir kısıtlama var mı?
not Bu soru önceki yazımı iptal etmiyor :)
Yarım yıldır uzmanlarım var böyle bir hata sadece 5 kez verdi
Uyarılar pahasına - uygunsuz. Bir dosyaya sabun + yazma referansım var. Yakında kütüphaneleri ilgili işlevlerle bitireceğim - onları yayınlayacağım
Yarım yıldır uzmanlarım var böyle bir hata sadece 5 kez verdi
Uyarılar pahasına - uygunsuz. Sabun + bir dosyaya yazma referansım var. Yakında kütüphaneleri ilgili işlevlerle bitireceğim - onları yayınlayacağım
Aksine, uygun. Uyarı hiçbir şeye müdahale etmiyor, MT çalışmaya devam ediyor ama hemen görebilirsiniz... ee... bilgisayar başında oturuyorsanız... Evet, anlıyorum :)
"Benim" EA, vakaların %70'inde bu hatayı oluşturur. Yani, bu değil, 2, 6, 14 .., tek kelimeyle, sistemsiz. Fiyatları kontrol ettim, doğru görünüyor... MT kaynakları geliştiricilerde ve sunucular Alpari'de olduğundan, temelde bu onlar için. Yine de bir başkası bu şeyi çalıştırsa ve sorunun bilgisayarlarında tekrarlanabilir olduğunu onaylasa harika olurdu.
Neyin kolları? Bu kollardan kaç tane var? Uzman sayısı, çizelgeler vb. konusunda herhangi bir kısıtlama var mı?
tanıtıcılar sistem kaynaklarının temsilcileridir. açık pozisyonların bir listesini çizerken gdi kaynaklarının sızıntısı olan bir hatayı buldu ve etkisiz hale getirdi. 98'de, işlem başına tutamaç sayısının 2000'den çok daha az olduğu yerde, ticaret için bir soket açamama da dahil olmak üzere çok hızlı bir kaynak sıkıntısı hatası ortaya çıktı. uzun çalışmalarla bu hata 2000 yılında da kendini gösteriyor. bu aksaklığın neden sadece son yapılanmalarda ortaya çıktığı bir doğa gizemi.
çizelge sayısında bir sınır vardır - 99. Bu, uzman sayısında aynı sınır anlamına gelir
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz