커뮤니티

N일전 조건만족 횟수

프로필 이미지
마수거리
2009-03-25 01:58:56
838
글번호 21178
답변완료
1. data2 는 60분봉이고 본챠트 1초 챠트 입니다. 2. 조건1은 openD(0) > CloseD(1) 입니다. 3. 조건2는 openD(0) > CloseD(0) 입니다. 4. 오늘부터 N일까지 조건1을 만족하는 일수를 messagelog로 표시하고 싶습니다. 5. 오늘부터 N일까지 조건1과 조건2을 만족하는 일수를 messagelog로 표시하고 싶습니다. 수식을 아래와 같이 수식을 많들어 봤는데 debug 제대로 나오지 않습니다. ############################################################################ input : N(90); Var : 날짜count(0), 조건만족횟수(0), 양봉갯수(0); Condition1 = Data2(OpenD(0)) > Data2(CloseD(1)); Condition2 = Data2(CloseD(0)) > Data2(OpenD(0)); Cleardebug(); For 날짜count = 0 To N { If Data2(Date[날짜count]) <= Data2(Date[0]) And Condition1 Then { 조건만족횟수 = 조건만족횟수 + 1; MessageLog("조건만족횟수=%0.f", 조건만족횟수); If Data2(Date[날짜count]) <= Data2(Date[0]) And Condition1 And Condition2 Then { 양봉갯수 = 양봉갯수 + 1; MessageLog("양봉갯수=%0.f", 양봉갯수); } } } If OpenD(0) > CloseD(1) Then { buy("매수"); } SetStopEndofday(145000);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-03-25 18:04:46

안녕하세요 예스스탁입니다. CloseD류의 함수들은 차트를 분석하여 당일시고저종을 값을 계산하므로 사용자함수로 되어 있고 내부적으로 배열이 사용되어 for문에서 사용하실 수 없습니다. 분석함수들은 for문안에 직접하여 그 매개변수값을 변경하시면 정확한 값을 리턴받지 못합니다. 참조종목을 일봉으로 설정하시고 식을 적용하시기 바랍니다. input : N(90); var : 조건만족횟수(0,data2),양봉갯수(0,data2); 조건만족횟수 = data2(CountIF(O>C[1],N)); 양봉갯수 = data2(CountIF(O>C[1] and C > O,N)); plot1(조건만족횟수); plot2(양봉갯수); ClearDebug; MessageLog("조건만족횟수=%0.f", 조건만족횟수); MessageLog("양봉갯수=%0.f", 양봉갯수); 참조종목의 주기를 변경이 어려우시면 일봉데이터를 data3으로 적용하신 후 아래의 식을 적용하시면 됩니다. input : N(90); var : 조건만족횟수(0,data3),양봉갯수(0,data3); 조건만족횟수 = data3(CountIF(O>C[1],N)); 양봉갯수 = data3(CountIF(O>C[1] and C > O,N)); plot1(조건만족횟수); plot2(양봉갯수); ClearDebug; MessageLog("조건만족횟수=%0.f", 조건만족횟수); MessageLog("양봉갯수=%0.f", 양봉갯수); 즐거운 하루되세요 > 마수거리 님이 쓴 글입니다. > 제목 : N일전 조건만족 횟수 > 1. data2 는 60분봉이고 본챠트 1초 챠트 입니다. 2. 조건1은 openD(0) > CloseD(1) 입니다. 3. 조건2는 openD(0) > CloseD(0) 입니다. 4. 오늘부터 N일까지 조건1을 만족하는 일수를 messagelog로 표시하고 싶습니다. 5. 오늘부터 N일까지 조건1과 조건2을 만족하는 일수를 messagelog로 표시하고 싶습니다. 수식을 아래와 같이 수식을 많들어 봤는데 debug 제대로 나오지 않습니다. ############################################################################ input : N(90); Var : 날짜count(0), 조건만족횟수(0), 양봉갯수(0); Condition1 = Data2(OpenD(0)) > Data2(CloseD(1)); Condition2 = Data2(CloseD(0)) > Data2(OpenD(0)); Cleardebug(); For 날짜count = 0 To N { If Data2(Date[날짜count]) <= Data2(Date[0]) And Condition1 Then { 조건만족횟수 = 조건만족횟수 + 1; MessageLog("조건만족횟수=%0.f", 조건만족횟수); If Data2(Date[날짜count]) <= Data2(Date[0]) And Condition1 And Condition2 Then { 양봉갯수 = 양봉갯수 + 1; MessageLog("양봉갯수=%0.f", 양봉갯수); } } } If OpenD(0) > CloseD(1) Then { buy("매수"); } SetStopEndofday(145000);