로그 항목의 의미 - 페이지 5

 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

이미 생산적인 토론을 방해하는 이유


개발자들은 우리를 놀라게 하고 싶지 않습니다. 아마도 우리는 그들에게 흥미로운 것을 찾을 수 있을 것입니다... :)
 
Несколько смущает тот факт, что на 37 постов этой ветки приходится только один от разработчиков...

이미 생산적인 토론을 방해하는 이유


다음 이유:
1. 우리가 인정하는(또는 인정하지 않는) 사람들에게 문제가 있다고 말하면 우리는 그것을 처리할 것입니다.
2. Quark(그리고 Composter는 Expert Advisor에서 오류를 재현했기 때문에), 우리는 귀하의 코드를 보았고 오류가 그 안에 있으며 이런 식으로 처리됩니다.

그리고 당신은 관심이 없다는 것이 밝혀졌습니다. 꺼져, 애들아...

내 주장을 반복하겠습니다.
1. 포지션을 열고 닫는 명령은 때때로 오류를 반환합니다.
2. 이러한 오류의 코드는 실제 생활과 아무 관련이 없습니다(예: 가격이 정확함에도 불구하고 "잘못된 가격").
3. 동일한 매개변수로 시도를 반복하여 시스템이 명령을 수락하도록 할 수 있습니다. 그러나 매뉴얼 어디에도 동일한 주문이 각 단계에서 오류 제어와 함께 주기에서 열리고(닫아야) 후속 수동 검증을 위해 파일로 출력되어야 한다고 말하지 않습니다.
4. 오류 코드가 반환되지 않는 경우가 있습니다. 즉, 프로그램이 작업이 성공한 것처럼 동작합니다. 그리고 그녀는 실패했습니다.

5. 가장 중요한 것. 데모 서버(내 경우에는 Alpari)와 상호 작용할 때 문제가 발생하기 때문에 지금 해결 방법을 찾은 데모에서 실제 상황으로 전환하여 동일한 상황에 다시 처하게 될 가능성이 큽니다. 그런 다음 새 디버깅에 대한 비용을 지불해야 합니다. 당신의 돈으로.

6. 이것은 한 전문가의 국부적인 문제가 아닙니다. 나는 내 전문가에게 첨부 한 오류를 잡는 시스템이 없기 때문에 모든 사람 또는 적어도 많은 전문가가 단순히 이것을 잡을 수 없다고 주장합니다. 주문이 항상 같은 방식으로 열리고 닫히지 않기 때문에 최적화는 실제 생활로 이전될 수 없습니다. 사람들은 시간과 돈을 잃을 것입니다.

7. 나는 이것이 전문가의 문제라고 생각하지 않는다. 내가 틀렸다면 그녀가 어디에 있는지 지적하십시오. Expert Advisor의 논리를 변경할 수 있습니다. 논리에 관한 것이 아닙니다.

여기.
 
Quark, 터미널이 alpari에 연결된 테스트 머신에서 Expert Advisor를 시작했습니다. 11개의 다른 5분에 그것을 걸었습니다. 끝날 때까지 기다릴 준비가되었습니다. 설명된 상황이 발생하는 즉시 디버그 버튼을 누릅니다. 따라서 응답의 부족이 주의의 부족을 의미하는 것은 아닙니다. 반복해서 읽습니다. 포럼의 모든 메시지와 모든 메시지가 분석됩니다. 그리고 우리는 "귀하의 메시지를 읽고 고려했습니다"라고 어리석게 답하는 이메일 로봇이 아닙니다. 실례합니다.
 
거래 컨텍스트의 경우 - EA의 코드를 보면 먼저 nMagic * 10초 동안 기다렸다가 독점 10초를 보장한 다음 글로벌 세마포어를 설정합니다(다른 EA가 일시 중단됨을 보장). 그리고 나서야 거래가 이루어집니다.

Rosh, 여기 오늘의 로그가 있습니다. OrderSend 및 OrderClose 후 루프 내에서 10000ms 지연이 있습니다. 이것은 타이밍과 컨텍스트(어쨌든 발생하지 말았어야 함)로 인한 충돌에서 의심을 제거하는 것 같습니다.

매도 포지션 청산 시도, 티켓: 1827283
2005년 9월 9일 오전 10시 13분 20초 이 티켓이 여전히 있는 주문, 다시 시도
2005년 9월 9일 오전 10시 13분 48초 이 티켓으로 더 이상 주문 없음

두 번째 시도 :(

2005년 9월 9일 오전 0시 14분 54초 구매 시도, 시도 0
입찰: 1.24490000, 손절매: 0.00700000, 이익실현: 0.00000000 실패, 오류 6
2005년 9월 9일 0:15:4 오전 구매 시도, 시도 1
입찰: 1.24470000, 손절매: 0.00700000, 이익실현: 0.00000000 성공

두 번째 시도 :(

2005년 9월 9일 13:0:22 구매 시도, 시도 0
입찰: 1.23900000, 손절매: 0.00600000, 이익실현: 0.00000000 실패, 오류 6
2005년 9월 9일 13:0:48 구매 시도, 시도 1
입찰: 1.23900000, 손절매: 0.00600000, 이익실현: 0.00000000 성공

두 번째 시도 :(

일시 중지가 도움이 되지 않았습니다.
오류 6(세계에서 가장 유익한 정보)은 구매할 때만 나타났지만 닫을 때 오류가 없었다는 사실에 주목합니다. 맞아요 로그에 핑오류가 있었는데 전문가가 몰라서...
 
Quark, 터미널이 alpari에 연결된 테스트 머신에서 Expert Advisor를 시작했습니다. 11개의 다른 5분에 그것을 걸었습니다. 끝날 때까지 기다릴 준비가되었습니다. 설명된 상황이 발생하는 즉시 디버그 버튼을 누릅니다. 따라서 응답의 부족은 주의의 부족을 의미하지 않습니다. 반복합니다. 포럼의 모든 메시지와 모든 메시지가 분석됩니다. 그리고 우리는 "귀하의 메시지를 읽고 고려했습니다"라고 어리석게 답하는 이메일 로봇이 아닙니다. 실례합니다.


사람이 하나님께 이야기하면 정상이라고 합니다. 하지만 신이 답하기 시작하면 이건 이미 문제다 :) 하지만 그래도 난 행복해 :)

기본적으로 Expert Advisor는 5분에 거래되지 않음을 상기시킵니다. 시계가 꿰매어 졌으므로 변경해야합니다.
게다가 5분 만에 잡기가 얼마나 쉬운지 모릅니다. 또한 :) 설명한대로 테스트하면 오류를 없애도록 설계되었으므로 사이클을 금지해야합니다. 물론 로그에 기록이 남겠지만, 버튼을 누르기에는 너무 늦었을 수 있습니다.

마지막으로 같은 논리( OrderSend 및 OrderClose 대신 내 기능 호출)를 다른 Expert Advisors에 연결할 수 있습니다. 정확성을 위해. 잡는 것도 가능할 것 같아요.

행운을 빕니다,
쿼크
 
Quark, 터미널이 alpari에 연결된 테스트 머신에서 Expert Advisor를 시작했습니다. 11개의 다른 5분에 그것을 걸었습니다. 끝날 때까지 기다릴 준비가되었습니다. 설명된 상황이 발생하는 즉시 디버그 버튼을 누릅니다. 따라서 응답의 부족이 주의의 부족을 의미하는 것은 아닙니다. 반복해서 읽습니다. 포럼의 모든 메시지와 모든 메시지가 분석됩니다. 그리고 우리는 "귀하의 메시지를 읽고 고려했습니다"라고 어리석게 답하는 이메일 로봇이 아닙니다. 실례합니다.
코드도 보내드리겠습니다. 이 버그 외에도 작동하지 않는 istradeallowed도 있습니다...
 
코드도 보내드리겠습니다. 이 버그 외에도 작동하지 않는 istradeallowed도 있습니다...

보내다. 우리는 단지이 상황을 포착
 
나는 내가 보류 중인 주문 과 관련된 문제를 포착하기 시작하지 않았다고 앞서 언급했다. 그러나 간단한 문제 포수 :) 나는 하나가 있고 그는 하나를 잡았습니다(오류 6). 아래 코드를 제공합니다.

이 코드는 두 개의 보류 중인 주문 중 두 번째가 실행되는 것을 제외하고는 어떤 조건에도 의존하지 않는다는 점을 강조하고 싶습니다. 따라서 한 시간 후(집에 없었음) 이 코드가 다시 호출되었고 보류 중인 주문은 여전히 삭제되었습니다. 경고가 계속 걸려 있습니다.

즉, 이번에는 터미널을 다시 시작하지 않고 잠시 후 시스템이 작동하기 시작했습니다. 다른 경우(대기 중이 아닌 주문 포함)도 작업 상태에서 터미널의 임시 종료와 관련이 있다는 점을 배제하지 않습니다. 전문가의 논리는 작동하지 않으면 이 코드가 작동하지 않을 수 있다는 것입니다. 더 이상 다음 소절에서 호출됩니다.

이는 작업 수행 요청을 주기로 반복하면 두 번째, 세 번째 등으로 성공할 수 있다는 사실과 일치합니다. 시도.

	if(nNumOfOpenedOrders > 0)
	{
		for(nCnt = OrdersTotal() - 1, nCnt >= 0, nCnt--)
		{
			OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES);
			if(OrderMagicNumber() == nMagic && 
				(OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP))
			{
				bool bResult = OrderDelete(OrderTicket());
				if(b결과 == 거짓)
				{
					정수 nError = GetLastError();
					Alert("SimpleBreak " + Symbol() + " 오류: " + nError);
				}
			}	
		}	
	}
 
쿼크, 기적이 일어났다 =)
귀하의 전문가 가 포지션을 열었습니다 =)))

8명 모두 오랫동안 시계에 매달려 있었고 아무도 거래하지 않고 있습니다. 그리고 15:00 Alpari 시간에 포지션이 열렸습니다. 이건 괜찮아?)
 
쿼크, 기적이 일어났다 =)
귀하의 전문가가 포지션을 열었습니다 =)))

8명 모두 오랫동안 시계에 매달려 있었고 아무도 거래하지 않고 있습니다. 그리고 15:00 Alpari 시간에 포지션이 열렸습니다. 이건 괜찮아?)


그리고 열어보니 역시 15시 :)
이전 위치는 23.08 USDCAD에서 성공적으로 열렸습니다.

실제로 이것은 좋은 Expert Advisor이며 대부분 충돌하지 않습니다. 다른 사람처럼. 로그로 판단하면 요점은 거래 논리가 아니라 사실 자체에 있으므로 Expert Advisor를 다시 작성할 수 있습니다. 예를 들어 매시간 위치가 반전되도록 - 더 많은 트랜잭션이 있을 것입니다 :) 그리고 실패도 있습니다. .
이 Expert Advisor는 개발자에게 보여주기 위한 예시일 뿐입니다. 그리고 그들은 모두 때때로 실패합니다. 예, 그리고 당신도 내가 이해하는 것처럼 우리 코드에는 없습니다...