커뮤니티
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);
다음글
이전글