6 numaralı hata - sayfa 7

 

İnsan böyle yaşamalı ve yaptığınız şey, demirin gücünün bir testidir.


EA'nın yeni sürümü hakkındaki gönderiye bakın. Demire artık uzman başına bir saniye veriliyor. Daha iyi olmadı.
Ardından taleplerin sıralanacağına dair söz verildi.
 
Tabii ki, ikinci seçenek doğru, ancak geri dönmek yerine, 30 ve bıyık için Sleep () saniye koymanız gerekiyor.


İşte Rosh tarafından önerilen seçenek. Hatalar kalır.

double dStopLoss;
int nHoursToHold;

datetime timePrev = 0;

int nSlip = 5;

double dLotSize = 0.1;

int nMagic = 0;

//////////////////
int init ()
{
	timePrev = 0;

	dStopLoss = 110 * Point;
	nHoursToHold = 1;
	
	if(Symbol() == "EURUSD")
		nMagic = 1;
	else if(Symbol() == "EURJPY")
		nMagic = 2;
	else if(Symbol() == "USDCHF")
		nMagic = 3;
	else if(Symbol() == "GBPUSD")
		nMagic = 4;
	else if(Symbol() == "GBPJPY")
		nMagic = 5;
	else if(Symbol() == "GBPCHF")
		nMagic = 6;
	else if(Symbol() == "USDJPY")
		nMagic = 7;
	else if(Symbol() == "AUDUSD")
		nMagic = 8;
	else if(Symbol() == "EURGBP")
		nMagic = 9;
	else if(Symbol() == "USDCAD")
		nMagic = 10;
	else if(Symbol() == "EURCHF")
		nMagic = 11;
	else if(Symbol() == "EURAUD")
		nMagic = 12;
		
//	timePrev += nMagic;	// Open nMagic seconds after the new bar

	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 = OrdersTotal() - 1; nCnt >= 0; 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);
					
				Sleep(10);
			}
		}
	}

	return(0);
}
// ------

void Sell()
{
	if(AccountFreeMargin() < 500)
		return;

	dLotSize = GetLotSize();

	int nResult = OrderSend(Symbol(), OP_SELL, dLotSize, Bid, nSlip, Bid + dStopLoss, 
		0, "Friday", nMagic, 0, OrangeRed);

	if(nResult == -1)
	{
		int nError = GetLastError();
		Alert(Symbol() + ", " + nError);
	}

Sleep(10);
}
// ------
void Buy()
{
	if(AccountFreeMargin() < 500)
		return;

	dLotSize = GetLotSize();

	int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 
		0, "Friday", nMagic, 0, Aqua);

	if(nResult == -1)
	{
		int nError = GetLastError();
		Alert(Symbol() + ", " + nError);
	}

Sleep(10);
}
// ------

double GetLotSize()
{
	double dLot = 0.1;
	
	return(dLot);
}

// ------

int GetSignal()
{
	int nSignal;
	if(MathMod(Hour(), 2) == 0)
		nSignal = OP_BUY;
	else
		nSignal = OP_SELL;
		
	return(nSignal);
}

// ------



 
Böyle bir an
 if(OrderType() == OP_BUY)
	OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
else if(OrderType() == OP_SELL)
	OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);


Bir satın alma emrini kapatırsak OrderType() neye eşit olur (ilk koşul karşılandı)
İkinci durumda çeki atmaya çalışın, yani her zaman şöyle yazarım:

 if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
if(OrderType() == OP_SEL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);
 
Her zamanki gibi Rosh haklı görünüyor. Uyku (0) ayarladım, iki Uzman Danışman zaten hata veriyor. Uyku Ayarla(100), dört Uzman Danışman çalışır, beşincisi eklendiğinde hatalar görünür (beş pencere, beş para birimi, her biri için bir Uzman Danışman).

Set Sleep(200) - Beş Uzman Danışman anlaşıyorlar (neredeyse bazen hala hata veriyorlar. Bu yöntemle hatasız 5 Uzman Danışman yapamadım).

Şimdiye kadar sadece 138 ve 139 hatalarından bahsediyoruz.

Hala geliştiricilerden tavsiye bekliyorum.

Rosh, sana özellikle teşekkür ederim, her ne kadar kayma ile yaklaşımın hoşuma gitmese de.
 
Böyle bir an
 if(OrderType() == OP_BUY)
	OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
else if(OrderType() == OP_SELL)
	OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);


Bir satın alma emrini kapatırsak OrderType() neye eşit olur (ilk koşul karşılandı)
İkinci durumda çeki atmaya çalışın, yani her zaman şöyle yazarım:

 if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
if(OrderType() == OP_SEL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);



Bence evet. Bundan sonra duraklamama rağmen, ama kim bilir, çoklu görev.

Sınanmış. Kalbim daha iyi, ama hatalar devam ediyor :)
 


Rosh, sana özellikle teşekkür ederim, her ne kadar kayma ile yaklaşımın hoşuma gitmese de.


Şey... hayat da gördüğüm en iyi şey değil. Böyle bir an vardır - bir kez ölürsünüz. Ben de beğenmedim ama Developer versiyonu değiştirmiyor. :)
 


Rosh, тебе отдельное спасибо, хотя твой подход со слипом мне не нравится.


Şey... hayat da gördüğüm en iyi şey değil. Böyle bir an vardır - bir kez ölürsünüz. Ben de beğenmedim ama Developer versiyonu değiştirmiyor. :)


Evet ve API yüklenmiyor :)
Ancak her zaman bir geçici çözüm bulabilirsiniz :)) Sleep() kullanarak , örneğin :))

Genel olarak, bu derin bir açıklamadır. Geliştiricilerle daha sık iletişim kurmamız gerekiyor. Bazen cevap verdiklerini söylüyorlar :))))
 
Çocuklar, sizinle konuşabilir miyim? =)))
Ve sonra 4 sayfada böyle bir tartışmanız var ve ben sessizim (yemek pişirme günü içti =)) ...


Hatalarla ilgili:
Hata No. 6 - ticaret sunucusuyla bağlantı yok - kötü bir bağlantıdan kaynaklanıyor olabilir. Data Over Voice özel hattım var - "ses üzerinden veri" gibi ve ahizeyi kaldırdığınızda hız keskin bir şekilde düşüyor. Ve böylece bu anlarda bu hata var.

Hata 139 - sipariş kilitlendi - Bence bu sadece bir aksaklık: terminalin bu konumla bir şeyler yapması gibi ve o anda EA onunla çalışamıyor. Bilmiyorum kendime başka bir açıklama bulamadım (

Hata No. 138 - yeniden alıntı - ayrıca bir bağlantıdan kaynaklanıyor olabilir. Hatalar sırasında kanal yüküne bakın.

Bunların hepsi şarkı sözleri - tahminler olsa da ... Geliştiricilerden uzun süre yanıt vermek için normal bir hata açıklaması ve talimat vermelerini istedim - bir gün olacağını söylediler;)



Uyku ile ilgili () - her zaman kullanmak - aptalca. Ancak işlemler arasında duraklamak daha iyidir - LastTradeTime'ı kullanın. trade_lib&info_lib.mqh kitaplığını bitiriyorum (yeniden yapıyorum) - Viac'ta yayınlayacağım, size bağlantıyı vereceğim. Orada tüm bu sorular çözüldü (kısmen). Hatalar çok daha az olmalıdır.


Şimdilik düşüncelerim bu kadar, aklıma başka bir şey gelirse - söylerim ;)
 

Çocuklar, sizinle konuşabilir miyim? =)))
Ve sonra 4 sayfada böyle bir tartışmanız var ve ben sessizim (yemek pişirme günü içti =)) ...


Evet sel yaptım... :)


Hatalarla ilgili:
Hata No. 6 - ticaret sunucusuyla bağlantı yok - kötü bir bağlantıdan kaynaklanıyor olabilir. Data Over Voice özel hattım var - "ses üzerinden veri" gibi ve ahizeyi kaldırdığınızda hız keskin bir şekilde düşüyor. Ve böylece bu anlarda bu hata var.


Özel bir hattım var, kaliteli. Yine, kötü bir bağlantı, birkaç uzman aynı anda bir şey yaptığında, hatanın neden HER ZAMAN oluştuğunu açıklamaz. Bir megabit (teoride) kanalla!


Hata 139 - sipariş kilitlendi - Bence bu sadece bir aksaklık: terminalin bu konumla bir şeyler yapması gibi ve o anda EA onunla çalışamıyor. Bilmiyorum kendime başka bir açıklama bulamadım (


Kabul ediyorum. NEREDE bir şey yaptığını anlamak önemsiz kalır. Expert Advisor o kadar basittir ki, böyle bir yer yoktur. Tabii ki, benim görmeme ihtimalim de var. (Geyiğini görüyor musun? Hayır. Ben de görmüyorum. O ŞİMDİ OLACAKTIR)


Hata No. 138 - yeniden alıntı - ayrıca bir bağlantıdan kaynaklanıyor olabilir. Hatalar sırasında kanal yüküne bakın.


bilmiyorum. Moskova'da aynı anda özel bir hatta iki Uzman Danışman ticareti yapmak mümkün değilse, ticaret yapmak da imkansızdır.

Ben alıntılar hakkında düşünüyordum . Örneğin, fiyatın kaçmaması için ayarlanması gereken minimum slip nedir. 5 puan? on? 15 koyun - hata devam ediyor.


Bunların hepsi şarkı sözleri - tahminler olsa da ... Geliştiricilerden uzun süre yanıt vermek için normal bir hata açıklaması ve talimat vermelerini istedim - bir gün olacağını söylediler;)


Ve pazarın mükemmel olduğunu söylüyorlar! Ha!


Uyku ile ilgili () - her zaman kullanmak - aptalca. Ancak işlemler arasında duraklamak daha iyidir - LastTradeTime'ı kullanın. trade_lib&info_lib.mqh kitaplığını bitiriyorum (yeniden yapıyorum) - Viac'ta yayınlayacağım, size bağlantıyı vereceğim. Orada tüm bu sorular çözüldü (kısmen). Hatalar çok daha az olmalıdır.


Bu hataların "alında" atlanabileceğini zaten yazdım - eksi 1 dışında bir değer döndürene kadar OrderSend'i bir döngüde göndererek. Ancak soru temeldir - ne olur? Maviden 5-6 farklı türde hata alıyorum. Bugün dolambaçlı bir yol çizeceğim, yarın hiç ummadıkları yerden atlayacaklar. Bir demo üzerinde işlem yaparken, bu sorunu çözmek daha iyidir. Sonra kayıplar olacak.


Şimdilik düşüncelerim bu kadar, aklıma başka bir şey gelirse - söylerim ;)


Teşekkürler :)
Bu Uzman Danışmanı kendiniz çalıştırmayı deneyin. Belki bazı düşünceler ortaya çıkar... Veya - bir deme üzerinde işlem yapıyorsanız - Uzman Danışmanlarınıza benzer uyarılar koyun... kim bilir... ya tüm işlemleri açmazlarsa?
 
Ben de sürekli böyle hatalar alıyorum. Ben de Alpari'de oturuyorum. Belki başka bir DC deneyin? Belki de bu MT'nin hatası değildir?