[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 3. - 페이지 227

 
Neo333 :
안녕하세요, 그런 문제입니다. 고문이 보류 지정가 주문을 설정하면 가격이 이동하고 주문이 시장 주문이 됩니다. 모든 것이 작동하지만 일부 주문에는 절대적으로 이해할 수 없는 결함이 나타납니다. 모든 주문은 고정된 상수 "K"를 통해 이루어지며, 주문 사이의 거리는 항상 일정해야 합니다(Rn+1 = Rn + "K"). 그러나 그렇지 않았습니다. 주문이 열려 있고 가격이 표시되고 모든 것이 확인되지만 이전 주문에서 다음 주문까지의 거리는 "K"와 같지 않은 반면 산술 연산의 결과를 보면 가격, 즉 어리석게 빼서 결과를 보면 "K"와 같지만 논리적 비교 == 완고하게 거짓을 보여줍니다. 이것은 고문이 지속적으로 이 가격으로 주문을 여는 동시에 "생각"한다는 사실로 이어집니다. 거기에는 주문이 없습니다. 길다면 죄송합니다. 더 자세히 설명하고 싶었습니다. 솔직히 어떻게 해야할지 모르겠습니다 :(
음, == 로 비교한다면 NormalizeDouble 을 사용 하지만 일반적으로 MathAbs(Price1-Price2)<delta 가 더 좋습니다.
 
VladimirR :

감사합니다. 하지만 이것도 있다 2011.09.30 21:26:49 TestGenerator: unmatched data error (볼륨 제한 13634 at 2011.07.19 20:00 초과)

내가 이해하는 한 이 메시지는 전문가와 관련이 없지만 여전히 이것을 이해하는 방법을 알고 싶습니다.



기간별 기록의 불일치. https://www.mql5.com/ru/forum/108760
 
sergeev :

이 기능을 수정하는 데 도움을 주세요.



73
유진1 30.09.2011 16:19

나는 마지막 주문의 종가를 결정하는 함수를 작성하려고합니다 (지금 가장 가까운 시간에 따라)

나는 다음과 같이 씁니다.


하지만

하다

uble PriceCloseLastPos(문자열 smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int 티켓 날짜 시간 = 0;
int orderTicket=-1;
이중 닫기가격 = 0;
int ordTotal = OrdersTotal();
if (smb == "0") smb = Symbol();
for (int i = 0; i < ordTotal; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol() == smb || smb == "") {
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
if (cmd < OP_BUY || OrderType() == cmd) {
if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)) {
if (티켓 날짜 시간 < 주문 닫기 시간()) {
티켓 날짜 시간 = 주문 닫기 시간();
주문 티켓 = 주문 티켓();
닫기 가격 = 주문 닫기 가격();
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );
반환(닫기가격);
}

그러나 어떤 이유로 함수는 테스터에서 열린 첫 번째 주문의 데이터를 반환합니다.

사실 이게 제 중간 목표입니다. 그리고 부분 주문 마감의 마지막 가격을 알려주는 함수를 작성하고 싶었습니다(전체 로트 볼륨이 아님). 하지만 여기에 접근하는 방법조차 모르겠습니다...

 int ordTotal = OrdersTotal ();

대신, 당신은 필요

 int ordTotal = OrdersHistoryTotal ();

... 더 나아가 ...

 if (orderTicket > - 1 ) OrderSelect (orderTicket, SELECT_BY_TICKET, MODE_HISTORY );

모든 것이 자재와 조화를 이루는 것은 아니라는 점이 놀랍습니다. 티켓으로 주문을 선택할 때 매개변수는 무시됩니다. 저것들. MODE_HISTORY를 쓰는 것은 쓸모가 없습니다. 이 설정은 인덱스 선택에만 적용됩니다.

티켓으로 주문을 선택한 경우 마감된 주문 목록에서 선택되었는지 확인하려면 마감 시간을 확인해야 합니다. 0보다 커야 합니다. 닫힌 위치만 이 매개변수 >0을 갖습니다.

 
MT4 거래 터미널 에서 5분 동안 내역이 표시되지 않습니다. 해결할 수 있습니까?
 
rosman :
MT4 거래 터미널에서 5분 동안 내역이 표시되지 않습니다. 해결할 수 있습니까?
어리석은 질문에 대해 사과드립니다. 2010년 11월 이전의 이력은 표시되지 않는다는 뜻입니다 :)
 
rosman :
어리석은 질문에 대해 사과드립니다. 2010년 11월 이전의 이력은 표시되지 않는다는 뜻입니다 :)

그래서 존재하지 않습니다. 더 명확히 할 수 있습니다. MT4 설정에서 차트에 더 많은 막대를 만들어보십시오.

더 긴 이야기를 다운로드하거나 구매하여 해결했습니다.

 
Zhunko :

그래서 존재하지 않습니다. 더 명확히 할 수 있습니다. MT4 설정에서 차트에 더 많은 막대를 만들어보십시오.

더 긴 이야기를 다운로드하거나 구매하여 해결했습니다.

도구>설정>"차트" 탭> 창의 최대 막대 수는 65,000개였습니다 --> 늦어도 2010년 11월에만 100,000개 이상으로 변경되었습니다. 1999년 11월까지 이 상품 및 기간에 대한 견적 아카이브가 완전히 로드되었습니다.
 
그리고 역사상 최대 막대 수는 얼마입니까? 어쩌면 이야기가 잘렸을 수도 있습니다.
 
Zhunko :
그리고 역사상 최대 막대 수는 얼마입니까? 어쩌면 이야기가 잘렸을 수도 있습니다.
가치 10,000,000.
 
아카이브를 게시합니다. 제가 직접 살펴보겠습니다.