이 "버그"를 다시 찾은 것 같아요! :) 그에 대해 썼는지 기억이 안나는데... 모든 것은 다음과 같았습니다.
if(CurTime()-OrderOpenTime()<900) return(0);
어떤 이유로 옵티마이저는 카운터를 "0"(또는 무엇이든)으로 재설정하지 않습니다. 그리고 아마도 그는 시간을 전 세계적으로 고려하고 테스트하지 않았을 것입니다. 일반적으로 무엇이, 어떻게 제대로 이루어지지 않았는지 모르겠지만, 잡을 때까지 신경을 많이 썼다. :) 같은 문제가 있는 사람이 있으면 고려하십시오!
전략을 테스트할 때 어떤 식으로든 발생해서는 안 되는 위치에서 항목이 발생합니다. 내 인생에서 사흘을 던졌다. 그리고 무엇을 위해? 막대 위에 숫자가 보이시나요? 첫 번째 숫자는 칠면조 값입니다(빨간색 선). 모든 것이 정확합니다. 1.3014. 그리고 여기에 두 번째 숫자가 있습니다. 프로그램에 반환되는 낮은 막대의 값입니다. 차트는 저점이 터키 라인 아래에 매달려 있음을 보여줍니다. 그리고 이 막대의 최저값은 1.3012입니다. 그리고 프로그램에는 1.3015 값이 지정됩니다. 여기서 왜 드로우다운이 발생하는지 이제 명확해졌습니다.
//+----------------------------------------------- --------------------+
정수 나;
//+----------------------------------------------- --------------------+
정수 초기화() { 반환(0); }
int deinit() { 반환(0); }
정수 시작()
{
나는 ++;
CreateArrow(DoubleToStr(i,0),Time[0],High[0],108,Aqua);
나는 ++;
CreateArrow(DoubleToStr(i,0),Time[0],Low[0],108,Yellow);
리턴(0);
}
void CreateArrow(문자열 이름, 날짜 시간 시간1, 두 배 가격1, int code_arrow, int clr)
{
ObjectCreate(이름,OBJ_ARROW,0,시간1,가격1);
ObjectSet(이름,OBJPROP_ARROWCODE,코드_화살표);
ObjectSet(이름,OBJPROP_COLOR,clr);
}
로그의 상황에 맞는 메뉴에서 열기를 선택합니다. 해당 로그 파일을 열고 출력 여부를 확인하십시오. 데이터는 테스터의 속도를 늦추지 않기 위해 타이머에 의해 비동기적으로 로그 탭에 출력되므로 탭에서 데이터가 손실될 수 있습니다(로그가 아닌, 즉 로그 자체가 아님).
그들이 말했다 :) 곧 모든 것이 무너지기 시작할 것입니다. 거기에 로그 파일은 이미 약 2Gb입니다.
그에 대해 썼는지 기억이 안나는데...
모든 것은 다음과 같았습니다.
어떤 이유로 옵티마이저는 카운터를 "0"(또는 무엇이든)으로 재설정하지 않습니다. 그리고 아마도 그는 시간을 전 세계적으로 고려하고 테스트하지 않았을 것입니다. 일반적으로 무엇이, 어떻게 제대로 이루어지지 않았는지 모르겠지만, 잡을 때까지 신경을 많이 썼다. :) 같은 문제가 있는 사람이 있으면 고려하십시오!
프로그램은 다음과 같습니다.
다음은 테스터에서 실행한 결과입니다.
링크 던져
링크 던져
http://forum.alpari-idc.ru/viewtopic.php?p=220941#220941
새롭게 떠오르는 바의 최고점과 최저점은 무엇입니까?
힌트: 시가=고가=저가=종가, 거래량=1
그건 그렇고, 첫 번째 아쿠아 화살표가 두 번째 옐로우 바로 아래에 있는 이유입니다.
새롭게 떠오르는 바의 최고점과 최저점은 무엇입니까?
힌트: 시가=고가=저가=종가, 거래량=1
그건 그렇고, 첫 번째 아쿠아 화살표가 두 번째 옐로우 바로 아래에 있는 이유입니다.
설명 감사합니다.