코드 1:
// 입력 변수 선언
var: 볼밴하단(0), 볼밴상단(0), 밴드비율(0), 스토캐스틱_긴주기(0), 스토캐스틱_짧은주기(0), 스토캐스틱_긴주기_이평(0);
var: 최고점_화살표(0), 최저점_화살표(0), 거래량_스토캐스틱(0);
var: 스토_긴주기_Z(0), 스토_짧은주기_Z(0); // Z-Score 변환된 값
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간과 30 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
스토캐스틱_짧은주기 = (볼밴상단 - Lowest(볼밴상단, 30)) / (Highest(볼밴상단, 30) - Lowest(볼밴상단, 30)) * 100;
// 스토캐스틱 지표 계산 (저가 기준, 40 기간)
거래량_스토캐스틱 = (l - Lowest(l, 40)) / (Highest(l, 40) - Lowest(l, 40)) * 100;
// 스토캐스틱의 이동 평균 (기간 10)
스토캐스틱_긴주기_이평 = Ema(스토캐스틱_긴주기, 10);
// Z-Score 변환 (스토캐스틱 긴주기)
스토_긴주기_Z = (스토캐스틱_긴주기 - Average(스토캐스틱_긴주기, 300)) / Std(스토캐스틱_긴주기, 300);
// Z-Score 변환 (스토캐스틱 짧은주기)
스토_짧은주기_Z = (스토캐스틱_짧은주기 - Average(스토캐스틱_짧은주기, 30)) / Std(스토캐스틱_짧은주기, 30);
// 그래프 출력 (Z-Score 변환된 값)
//plot3(스토_긴주기_Z, "스토-긴주기-Z");
//plot4(스토_짧은주기_Z, "스토-짧은주기-Z");
// 텍스트 화살표 표시 조건: 볼밴 상단이 0에서 특정 패턴 발견
/*
var: 화살표1(0), 화살표2(0);
if countif(스토캐스틱_긴주기 == 0, 5) > 1 && Highest(c, 20)[1] < c then
{
화살표1 = Text_New_Self(sDate, stime, 0, "▲");
Text_SetStyle(화살표1, 2, 2);
Text_SetColor(화살표1, Green);
}
*/
if CrossUp (스토캐스틱_긴주기,0) then Find(1);
코드 2:
// 입력 변수 선언
var: 스토캐스틱_긴주기(0),볼밴상단(0); // 스토캐스틱 긴주기
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
// 검색용 조건: 스토캐스틱 긴주기가 0을 상향 돌파할 때
if CrossUp(스토캐스틱_긴주기, 0) then
Find(1);
코드1은 코드2에서 필요한 부분만 남기고 삭제한 버전 입니다.
하지만 검색을 실행시키면 코드1은 검색이 되나 코드2는 검색이 되지 않습니다.
코드2에서 그래프를 출력시키면 그래프는 분명 0선 이하에서 0선 이상으로 움직입니다.
하지만 코드2는 검색이 안되요.. 왜 그런가요?
답변 1
예스스탁
예스스탁 답변
2024-09-30 18:26:52
안녕하세요
예스스탁입니다.
올리신 코드2로 검색을 해보았지만
첨부된 그림과 같이 검색이 되고 있습니다.
수식 내용에도 별도로 문제 될 부분이 없습니다.
즐거운 하루되세요
> 올드송 님이 쓴 글입니다.
> 제목 : 검색이 왜 안될까요?
> 코드 1:
// 입력 변수 선언
var: 볼밴하단(0), 볼밴상단(0), 밴드비율(0), 스토캐스틱_긴주기(0), 스토캐스틱_짧은주기(0), 스토캐스틱_긴주기_이평(0);
var: 최고점_화살표(0), 최저점_화살표(0), 거래량_스토캐스틱(0);
var: 스토_긴주기_Z(0), 스토_짧은주기_Z(0); // Z-Score 변환된 값
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간과 30 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
스토캐스틱_짧은주기 = (볼밴상단 - Lowest(볼밴상단, 30)) / (Highest(볼밴상단, 30) - Lowest(볼밴상단, 30)) * 100;
// 스토캐스틱 지표 계산 (저가 기준, 40 기간)
거래량_스토캐스틱 = (l - Lowest(l, 40)) / (Highest(l, 40) - Lowest(l, 40)) * 100;
// 스토캐스틱의 이동 평균 (기간 10)
스토캐스틱_긴주기_이평 = Ema(스토캐스틱_긴주기, 10);
// Z-Score 변환 (스토캐스틱 긴주기)
스토_긴주기_Z = (스토캐스틱_긴주기 - Average(스토캐스틱_긴주기, 300)) / Std(스토캐스틱_긴주기, 300);
// Z-Score 변환 (스토캐스틱 짧은주기)
스토_짧은주기_Z = (스토캐스틱_짧은주기 - Average(스토캐스틱_짧은주기, 30)) / Std(스토캐스틱_짧은주기, 30);
// 그래프 출력 (Z-Score 변환된 값)
//plot3(스토_긴주기_Z, "스토-긴주기-Z");
//plot4(스토_짧은주기_Z, "스토-짧은주기-Z");
// 텍스트 화살표 표시 조건: 볼밴 상단이 0에서 특정 패턴 발견
/*
var: 화살표1(0), 화살표2(0);
if countif(스토캐스틱_긴주기 == 0, 5) > 1 && Highest(c, 20)[1] < c then
{
화살표1 = Text_New_Self(sDate, stime, 0, "▲");
Text_SetStyle(화살표1, 2, 2);
Text_SetColor(화살표1, Green);
}
*/
if CrossUp (스토캐스틱_긴주기,0) then Find(1);
코드 2:
// 입력 변수 선언
var: 스토캐스틱_긴주기(0),볼밴상단(0); // 스토캐스틱 긴주기
// 볼린저 밴드 상단 계산 (기간 20, 표준편차 1)
볼밴상단 = BollBandUp(20, 1);
// 볼린저 밴드 상단의 스토캐스틱 변환 (300 기간)
스토캐스틱_긴주기 = (볼밴상단 - Lowest(볼밴상단, 300)) / (Highest(볼밴상단, 300) - Lowest(볼밴상단, 300)) * 100;
// 검색용 조건: 스토캐스틱 긴주기가 0을 상향 돌파할 때
if CrossUp(스토캐스틱_긴주기, 0) then
Find(1);
코드1은 코드2에서 필요한 부분만 남기고 삭제한 버전 입니다.
하지만 검색을 실행시키면 코드1은 검색이 되나 코드2는 검색이 되지 않습니다.
코드2에서 그래프를 출력시키면 그래프는 분명 0선 이하에서 0선 이상으로 움직입니다.
하지만 코드2는 검색이 안되요.. 왜 그런가요?