커뮤니티
알파계수 돌파 종목검색식 만들기
2013-04-26 13:31:06
352
글번호 62529
Input:Length(100);
Var:j(0),x1(0),x2(0);
Array:∑x1[2](0),∑xx1[2](0),∑x2[2](0),∑xx2[2](0);
If LastBarOnChart == 1 Then {
Print("알파돌파검색.txt","# 검색기준일 : %.0f-%.0f-%.0f",Int(Date/10000),int(Date/100)-int(Date/10000)*100,Date - int(Date/100)*100);
Print("알파돌파검색.txt","Input:inAlpha(0.5),inVol(10000),inPrc(1000);");
Print("알파돌파검색.txt","Var:j(0),value(0),n(%.0f);",Length);
Print("알파돌파검색.txt","Array:x1[%.0f](0),x2[%.0f](0),y[2](0),Alpha[2](0),∑x1[2](0),∑xx1[2](0),∑x2[2](0),∑xx2[2](0),∑y[2](0),∑xy[2](0);",Length+1,Length+1);
For j = 0 To Length {
x1 = (C[j] - C[j+1])*100/C[j+1];
Print("알파돌파검색.txt","x1[%.0f] = %.6f;",j,X1);
}
Print("알파돌파검색.txt","//=====================================");
For j = 0 To Length {
x2 = (data2(C[j]) - data2(C[j+1]))*100/data2(C[j+1]);
Print("알파돌파검색.txt","x2[%.0f] = %.6f;",j,X2);
}
Print("알파돌파검색.txt","//=====================================");
∑x1[0] = accumN((C[0] - C[1])*100/C[1],Length);
∑xx1[0] = accumN(((C[0] - C[1])*100/C[1])^2,Length);
∑x1[1] = accumN((C[1] - C[2])*100/C[2],Length);
∑xx1[1] = accumN(((C[1] - C[2])*100/C[2])^2,Length);
∑x2[0] = accumN((data2(C[0]) - data2(C[1]))*100/data2(C[1]),Length);
∑xx2[0] = accumN(((data2(C[0]) - data2(C[1]))*100/data2(C[1]))^2,Length);
∑x2[1] = accumN((data2(C[1]) - data2(C[2]))*100/data2(C[2]),Length);
∑xx2[1] = accumN(((data2(C[1]) - data2(C[2]))*100/data2(C[2]))^2,Length);
Print("알파돌파검색.txt","∑x1[0] = %.6f;",∑x1[0]);
Print("알파돌파검색.txt","∑x1[1] = %.6f;",∑x1[1]);
Print("알파돌파검색.txt","∑xx1[0] = %.6f;",∑xx1[0]);
Print("알파돌파검색.txt","∑xx1[1] = %.6f;",∑xx1[1]);
Print("알파돌파검색.txt","∑x2[0] = %.6f;",∑x2[0]);
Print("알파돌파검색.txt","∑x2[1] = %.6f;",∑x2[1]);
Print("알파돌파검색.txt","∑xx2[0] = %.6f;",∑xx2[0]);
Print("알파돌파검색.txt","∑xx2[1] = %.6f;",∑xx2[1]);
Print("알파돌파검색.txt","∑y[0] = 0;");
Print("알파돌파검색.txt","∑y[1] = 0;");
Print("알파돌파검색.txt","∑xy[0] = 0;");
Print("알파돌파검색.txt","∑xy[1] = 0;");
Print("알파돌파검색.txt","value = 0;");
Print("알파돌파검색.txt","If CodeCategoryEx()==11 || CodeCategoryEx()==12 then {");
Print("알파돌파검색.txt"," ∑y[0] = accumN((C[0] - C[1])*100/C[1],n);");
Print("알파돌파검색.txt"," ∑y[1] = accumN((C[1] - C[2])*100/C[2],n);");
Print("알파돌파검색.txt"," For j = 0 To n - 1 {");
Print("알파돌파검색.txt"," y[0] = (C[j] - C[j+1])*100/C[j+1];");
Print("알파돌파검색.txt"," y[1] = (C[j+1] - C[j+2])*100/C[j+2];");
Print("알파돌파검색.txt"," ∑xy[0] = ∑xy[0] + y[0]*iff(CodeCategoryEx()==12,X2[j],X1[j]);");
Print("알파돌파검색.txt"," ∑xy[1] = ∑xy[1] + y[1]*iff(CodeCategoryEx()==12,X2[j+1],X1[j+1]); }");
Print("알파돌파검색.txt"," If CodeCategoryEx()==11 Then {");
Print("알파돌파검색.txt"," Alpha[0] = ∑y[0]/n - (∑xy[0]/n - ((∑x1[0]/n) * (∑y[0]/n))) / ((∑xx1[0]/n) - ((∑x1[0]/n)^2)) * (∑x1[0]/n);");
Print("알파돌파검색.txt"," Alpha[1] = ∑y[1]/n - (∑xy[1]/n - ((∑x1[1]/n) * (∑y[1]/n))) / ((∑xx1[1]/n) - ((∑x1[1]/n)^2)) * (∑x1[1]/n); }");
Print("알파돌파검색.txt"," Else {");
Print("알파돌파검색.txt"," Alpha[0] = ∑y[0]/n - (∑xy[0]/n - ((∑x2[0]/n) * (∑y[0]/n))) / ((∑xx2[0]/n) - ((∑x2[0]/n)^2)) * (∑x2[0]/n);");
Print("알파돌파검색.txt"," Alpha[1] = ∑y[1]/n - (∑xy[1]/n - ((∑x2[1]/n) * (∑y[1]/n))) / ((∑xx2[1]/n) - ((∑x2[1]/n)^2)) * (∑x2[1]/n); }");
Print("알파돌파검색.txt"," If Alpha[0] >= inAlpha && Alpha[1] < inAlpha && ma(V,60) > inVol &&");
Print("알파돌파검색.txt"," ma(C,60) > inPrc && C < 20 * inPrc Then");
Print("알파돌파검색.txt"," value = AlPha[0];");
Print("알파돌파검색.txt","}");
Print("알파돌파검색.txt","Find(value);
위의 첫번째 수식을 yeslanguage에서 붙여넣기후 검증완료후에 지표식이 나왔는데
지표를 차트에 적용하니
"수식에서 참조할 첫번째 종목데이터가 없습니다"
나오고 차트에 지표가 안 나오네요
어떻게 해야 하나요?
알려주시면 감사하겠습니다
답변 1
예스스탁 예스스탁 답변
2013-04-29 13:12:32
안녕하세요
예스스탁입니다.
해당식 참조데이터가 필요로 합니다.
내용상으로 주종목이 kospi종목이면 KP종합지수를
코스탁 KQ종합지수를 차트에 추가하신 후에
해당 지표식을 적용하셔야 합니다.
참조데이터는 차트왼쪽 상단의 종목선택 버튼 중 오른쪽으로 누르시면
선택해서 추가하실 수 있습니다.
즐거운 하루되세요
> 돈크돈어 님이 쓴 글입니다.
> 제목 : 알파계수 돌파 종목검색식 만들기
>
Input:Length(100);
Var:j(0),x1(0),x2(0);
Array:∑x1[2](0),∑xx1[2](0),∑x2[2](0),∑xx2[2](0);
If LastBarOnChart == 1 Then {
Print("알파돌파검색.txt","# 검색기준일 : %.0f-%.0f-%.0f",Int(Date/10000),int(Date/100)-int(Date/10000)*100,Date - int(Date/100)*100);
Print("알파돌파검색.txt","Input:inAlpha(0.5),inVol(10000),inPrc(1000);");
Print("알파돌파검색.txt","Var:j(0),value(0),n(%.0f);",Length);
Print("알파돌파검색.txt","Array:x1[%.0f](0),x2[%.0f](0),y[2](0),Alpha[2](0),∑x1[2](0),∑xx1[2](0),∑x2[2](0),∑xx2[2](0),∑y[2](0),∑xy[2](0);",Length+1,Length+1);
For j = 0 To Length {
x1 = (C[j] - C[j+1])*100/C[j+1];
Print("알파돌파검색.txt","x1[%.0f] = %.6f;",j,X1);
}
Print("알파돌파검색.txt","//=====================================");
For j = 0 To Length {
x2 = (data2(C[j]) - data2(C[j+1]))*100/data2(C[j+1]);
Print("알파돌파검색.txt","x2[%.0f] = %.6f;",j,X2);
}
Print("알파돌파검색.txt","//=====================================");
∑x1[0] = accumN((C[0] - C[1])*100/C[1],Length);
∑xx1[0] = accumN(((C[0] - C[1])*100/C[1])^2,Length);
∑x1[1] = accumN((C[1] - C[2])*100/C[2],Length);
∑xx1[1] = accumN(((C[1] - C[2])*100/C[2])^2,Length);
∑x2[0] = accumN((data2(C[0]) - data2(C[1]))*100/data2(C[1]),Length);
∑xx2[0] = accumN(((data2(C[0]) - data2(C[1]))*100/data2(C[1]))^2,Length);
∑x2[1] = accumN((data2(C[1]) - data2(C[2]))*100/data2(C[2]),Length);
∑xx2[1] = accumN(((data2(C[1]) - data2(C[2]))*100/data2(C[2]))^2,Length);
Print("알파돌파검색.txt","∑x1[0] = %.6f;",∑x1[0]);
Print("알파돌파검색.txt","∑x1[1] = %.6f;",∑x1[1]);
Print("알파돌파검색.txt","∑xx1[0] = %.6f;",∑xx1[0]);
Print("알파돌파검색.txt","∑xx1[1] = %.6f;",∑xx1[1]);
Print("알파돌파검색.txt","∑x2[0] = %.6f;",∑x2[0]);
Print("알파돌파검색.txt","∑x2[1] = %.6f;",∑x2[1]);
Print("알파돌파검색.txt","∑xx2[0] = %.6f;",∑xx2[0]);
Print("알파돌파검색.txt","∑xx2[1] = %.6f;",∑xx2[1]);
Print("알파돌파검색.txt","∑y[0] = 0;");
Print("알파돌파검색.txt","∑y[1] = 0;");
Print("알파돌파검색.txt","∑xy[0] = 0;");
Print("알파돌파검색.txt","∑xy[1] = 0;");
Print("알파돌파검색.txt","value = 0;");
Print("알파돌파검색.txt","If CodeCategoryEx()==11 || CodeCategoryEx()==12 then {");
Print("알파돌파검색.txt"," ∑y[0] = accumN((C[0] - C[1])*100/C[1],n);");
Print("알파돌파검색.txt"," ∑y[1] = accumN((C[1] - C[2])*100/C[2],n);");
Print("알파돌파검색.txt"," For j = 0 To n - 1 {");
Print("알파돌파검색.txt"," y[0] = (C[j] - C[j+1])*100/C[j+1];");
Print("알파돌파검색.txt"," y[1] = (C[j+1] - C[j+2])*100/C[j+2];");
Print("알파돌파검색.txt"," ∑xy[0] = ∑xy[0] + y[0]*iff(CodeCategoryEx()==12,X2[j],X1[j]);");
Print("알파돌파검색.txt"," ∑xy[1] = ∑xy[1] + y[1]*iff(CodeCategoryEx()==12,X2[j+1],X1[j+1]); }");
Print("알파돌파검색.txt"," If CodeCategoryEx()==11 Then {");
Print("알파돌파검색.txt"," Alpha[0] = ∑y[0]/n - (∑xy[0]/n - ((∑x1[0]/n) * (∑y[0]/n))) / ((∑xx1[0]/n) - ((∑x1[0]/n)^2)) * (∑x1[0]/n);");
Print("알파돌파검색.txt"," Alpha[1] = ∑y[1]/n - (∑xy[1]/n - ((∑x1[1]/n) * (∑y[1]/n))) / ((∑xx1[1]/n) - ((∑x1[1]/n)^2)) * (∑x1[1]/n); }");
Print("알파돌파검색.txt"," Else {");
Print("알파돌파검색.txt"," Alpha[0] = ∑y[0]/n - (∑xy[0]/n - ((∑x2[0]/n) * (∑y[0]/n))) / ((∑xx2[0]/n) - ((∑x2[0]/n)^2)) * (∑x2[0]/n);");
Print("알파돌파검색.txt"," Alpha[1] = ∑y[1]/n - (∑xy[1]/n - ((∑x2[1]/n) * (∑y[1]/n))) / ((∑xx2[1]/n) - ((∑x2[1]/n)^2)) * (∑x2[1]/n); }");
Print("알파돌파검색.txt"," If Alpha[0] >= inAlpha && Alpha[1] < inAlpha && ma(V,60) > inVol &&");
Print("알파돌파검색.txt"," ma(C,60) > inPrc && C < 20 * inPrc Then");
Print("알파돌파검색.txt"," value = AlPha[0];");
Print("알파돌파검색.txt","}");
Print("알파돌파검색.txt","Find(value);
위의 첫번째 수식을 yeslanguage에서 붙여넣기후 검증완료후에 지표식이 나왔는데
지표를 차트에 적용하니
"수식에서 참조할 첫번째 종목데이터가 없습니다"
나오고 차트에 지표가 안 나오네요
어떻게 해야 하나요?
알려주시면 감사하겠습니다