실수 번호 6 - 페이지 7

 

사람은 이렇게 살아야 하고, 네가 하는 것은 철의 힘을 시험하는 것이다.


EA의 새 버전에 대한 게시물을 참조하세요. 이제 전문가당 1초가 주어집니다. 더 나아지지 않았습니다.
그런 다음 요청이 줄을 서겠다고 약속했습니다.
 
물론 두 번째 옵션은 맞지만 반환 대신에 Sleep()초를 30초에 넣고 콧수염을 길러야 합니다.


다음은 Rosh가 제안한 옵션입니다. 오류가 남아 있습니다.

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);
}

// ------



 
그런 순간
 if(주문 유형() == OP_BUY)
	OrderClose(OrderTicket(), OrderLots(), 입찰, nSlip, 아쿠아);
그렇지 않으면(주문 유형() == OP_SELL)
	OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);


구매 주문을 마감한 경우 OrderType()은 무엇과 같습니까(첫 번째 조건이 충족됨)
두 번째 조건에서 수표를 버리십시오. 즉, 저는 항상 다음과 같이 씁니다.

 if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua);
if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);
 
글쎄, 항상 그렇듯이 Rosh는 옳은 것 같습니다. Sleep(0)을 설정했는데 두 명의 Expert Advisor가 이미 오류를 제공하고 있습니다. Set Sleep(100), 4개의 Expert Advisors 작동, 다섯 번째가 추가되면 오류가 나타납니다(5개의 창, 5개의 통화, 각각에 대해 1개의 Expert Advisor).

Set Sleep(200) - 5명의 Expert Advisor가 잘 어울립니다.

지금까지는 오류 138 과 139에 대해서만 이야기했습니다.

아직 개발자의 조언을 기다리고 있습니다.

Rosh, 당신에게 특별한 감사를 전합니다. 비록 당신이 슬립에 접근하는 방식이 마음에 들지 않지만.
 
그런 순간
 if(주문 유형() == OP_BUY)
	OrderClose(OrderTicket(), OrderLots(), 입찰, nSlip, 아쿠아);
그렇지 않으면(주문 유형() == OP_SELL)
	OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed);


구매 주문을 마감한 경우 OrderType()은 무엇과 같습니까(첫 번째 조건이 충족됨)
두 번째 조건에서 수표를 버리십시오. 즉, 저는 항상 다음과 같이 씁니다.

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



맞는 것 같아요. 이 후에 일시 중지되었지만 누가 알겠습니까? 멀티 태스킹.

시험을 마친. 마음은 더 나아졌지만 실수는 남아 있습니다 :)
 


Rosh, 당신에게 특별한 감사를 전합니다. 비록 당신이 슬립에 접근하는 방식이 마음에 들지 않지만.


글쎄요... 인생도 내가 본 것 중 최고가 아닙니다. 그런 순간이 있습니다 - 일단 죽습니다. 나도 좋아하지 않지만 개발자는 버전을 변경하지 않습니다. :)
 


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


글쎄요... 인생도 내가 본 것 중 최고가 아닙니다. 그런 순간이 있습니다 - 일단 죽습니다. 나도 좋아하지 않지만 개발자는 버전을 변경하지 않습니다. :)


예, API는 업로드되지 않습니다. :)
그러나 항상 해결 방법을 찾을 수 있습니다. :)) Sleep() 사용 , 예를 들어 :))

일반적으로 이것은 심오한 언급입니다. 개발자들에게 더 자주 연락해야 합니다. 그들은 때때로 대답한다고 말합니다 :))))
 
얘들아, 얘기 좀 해도 돼? =))))
그런 다음 여기에 4 페이지 토론이 있으며 나는 침묵합니다 (양조하는 날 =)) ...


오류에 관하여:
오류 번호 6 - 거래 서버와 연결되지 않음 - 잘못된 연결 때문일 수 있습니다. Data Over Voice 전용 회선이 있습니다. 예를 들어 "data over voice"가 있는데 수화기를 들면 속도가 급격히 떨어집니다. 그리고 이 순간에 이 오류가 있습니다.

오류 №139 - 주문이 잠겨 있음 - 내 생각에는 단순한 결함이라고 생각합니다. 터미널이 이 위치로 작업을 수행하고 그 순간에 EA는 이 위치로 작업할 수 없습니다. 몰라, 나 자신에 대한 다른 설명을 찾지 못했습니다 (

오류 번호 138 - 인용 - 연결로 인한 것일 수도 있습니다. 오류 발생 시 채널 로드를 확인합니다.

이게 다 가사이긴 하지만 - 추측... 개발자들에게 오류에 대한 일반적인 설명과 오랜 시간 대응하는 지침을 요청했는데 언젠가는 될 거라고 하더군요;;



Sleep() 에 관하여 - 항상 사용하는 것은 - 어리석은 일입니다. 그러나 거래 사이에 일시 중지하는 것이 좋습니다. LastTradeTime을 사용하십시오. 나는 trade_lib&info_lib.mqh 라이브러리를 완성하고 있습니다. 이 모든 질문이 (부분적으로) 해결되었습니다. 오류가 훨씬 적어야 합니다.


여기까지가 제 생각의 전부입니다. 다른 것이 생각나면 말씀드리겠습니다. ;)
 

얘들아, 얘기 좀 해도 돼? =))))
그런 다음 여기에 4 페이지 토론이 있으며 나는 침묵합니다 (양조하는 날 =)) ...


네 제가 홍수를 냈어요... :)


오류에 관하여:
오류 번호 6 - 거래 서버와 연결되지 않음 - 잘못된 연결 때문일 수 있습니다. Data Over Voice 전용 회선이 있습니다. 예를 들어 "data over voice"가 있는데 수화기를 들면 속도가 급격히 떨어집니다. 그리고 이 순간에 이 오류가 있습니다.


나는 전용 라인, 좋은 품질이 있습니다. 다시 말하지만, 잘못된 링크는 여러 전문가가 동시에 무언가를 할 때마다 오류가 발생하는 이유를 설명하지 않습니다. 메가비트(이론상) 채널로!


오류 №139 - 주문이 잠겨 있음 - 내 생각에는 단순한 결함이라고 생각합니다. 터미널이 이 위치로 작업을 수행하고 그 순간에 EA는 이 위치로 작업할 수 없습니다. 몰라, 나 자신에 대한 다른 설명을 찾지 못했습니다 (


동의한다. 그가 무엇을 하는지 이해하는 것은 사소한 일입니다. Expert Advisor는 너무 단순해서 그런 곳이 없습니다. 물론, 내가 그것을 보지 못할 수도 있지만. (무스가 보이나요? 아니요. 저도 모릅니다. 그리고 그는 지금 있을 것입니다)


오류 번호 138 - 인용 - 연결로 인한 것일 수도 있습니다. 오류 발생 시 채널 로드를 확인합니다.


모르겠어. 모스크바에서 두 명의 Expert Advisors를 전용 회선에서 동시에 거래하는 것이 불가능하면 거래가 전혀 불가능합니다.

나는 인용 에 대해 생각하고 있었다. 예를 들어, 가격이 도망가지 않도록 설정해야 하는 최소 슬립은 얼마입니까? 5점? 십? 15를 넣으십시오 - 오류가 남아 있습니다.


이게 다 가사이긴 하지만 - 추측... 개발자들에게 오류에 대한 일반적인 설명과 오랜 시간 대응하는 지침을 요청했는데 언젠가는 될 거라고 하더군요;;


그리고 그들은 시장이 완벽하다고 말합니다! 하아!


Sleep()과 관련하여 - 항상 사용하는 것은 어리석은 일입니다. 그러나 거래 사이에 일시 중지하는 것이 좋습니다. LastTradeTime을 사용하십시오. 나는 trade_lib&info_lib.mqh 라이브러리를 완성하고 있습니다. 이 모든 질문이 (부분적으로) 해결되었습니다. 오류가 훨씬 적어야 합니다.


나는 이미 마이너스 1 이외의 값을 반환할 때까지 OrderSend를 루프로 보내 이러한 오류를 "이마에" 우회할 수 있다고 썼습니다. 그러나 질문은 근본적입니다. 어떻게 됩니까? 갑자기 5~6가지 유형의 오류가 발생합니다. 나는 오늘 우회로를 그릴 것이고 내일 그들은 예상하지 못한 곳에서 뛰어내릴 것이다. 데모를 거래하는 동안 이 문제를 해결하는 것이 좋습니다. 그러면 손실이 있을 것입니다.


여기까지가 제 생각의 전부입니다. 다른 것이 생각나면 말씀드리겠습니다. ;)


감사해요 :)
이 Expert Advisor를 직접 실행해 보십시오. 아마도 몇 가지 생각이 떠오를 것입니다... 또는 - 당신이 덤으로 거래하는 경우 - 전문가 고문에 유사한 경고를 넣어... 누가 알겠습니까... 그들이 모든 거래를 열지 않으면 어떻게 될까요?
 
저도 항상 이런 에러가 납니다. 그리고 나는 또한 Alpari에 앉는다. 다른 DC를 시도할까요? 아마도 MT의 잘못이 아닌가?