> var : idx(0), ma1(0), ma2(0);
idx = Index;
ma1 = Ema(C, 5);
ma2 = Ema(C, 20);
// 1번
if 4 <= idx && idx < 9 Then {
if CountIF(C < ma1, idx - 3)[1] == idx - 4 && C[1] < ma1 && ma1 <= C
Then Find(1);
}
// 2번
if 19 <= idx && idx < 29 Then {
if CountIF(ma1 < ma2, idx - 18) == idx - 18 && CountIF(C < ma1, 5)[1] == 5 && C[1] < ma1 && ma1 <= C
Then Find(2);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
새 수식 파일에 1번 수식만 입력해서 검색했을 때,
(2023-11-15 종가 기준)
종목명 검색결과값
컨텍 1
비아이매트릭스 1
로 1번 수식의 검색결과 종목인 컨텍, 비아이매트릭스가 검색되고
새 수식 파일에 2번 수식만 입력해서 검색했을 때,
(2023-11-15 종가 기준)
종목명 검색결과값
아이엠티 2
퓨릿 2
레뷰코퍼레이션 2
신성에스티 2
로 2번 수식의 검색결과 종목인 아이엠티, 퓨릿, 레뷰코퍼레이션, 신성에스티가 검색됩니다.
하지만 위의 수식 처럼 새 수식 파일에 1번과 2번 수식을 모두 적용 했을 때,
컨텍, 비아이매트릭스, 아이엠티, 퓨릿, 레뷰코퍼레이션, 신성에스티, 총 6종목의 검색결과를 기대했지만 기존의 2번 수식의 결과만 출력됐습니다.
이 문제를 해결하기 위해 수식을 몇번씩 고쳐보니 2번 수식의 'CountIF(C < ma1, 5)[1] == 5'를 지우니 1번 수식의 검색결과인 컨텍, 비아이매트릭스와 2번 수식의 결과 4종목, 총 6종목이 검색되더군요. 'CountIF(C < ma1, 5)[1] == 5'를 지우면 1번 수식의 검색결과가 나타나지만 2번 수식에 영향이 가는 상황입니다. 또한 'CountIF(C < ma1, 5)[1] == 5'를 'CountIF(C < ma1, 3)[1] == 3' 이와 같이 값을 5미만으로 수정해도 6종목이 검색되지만 왜 5이상은 안되는 걸까요? 2번 수식을 변경했는데 왜 1번 수식의 검색결과에 영향을 미치는 건가요? 문제점과 해결방법을 알려주세요.
답변 1
예스스탁
예스스탁 답변
2023-11-16 15:08:42
안녕하세요
예스스탁입니다.
작성하신 수식에 idx는 봉번호입니다.
첫봉을 0으로 시작해 1씩 증가합니다.
plot1(index);
차트에 위식을 지표식으로 적용해 보시기 바랍니다.
1번식은 봉번호 4~8사이일때만 찾는식이고
2번식은 봉번호 19~28사이일때만 찾는식입니다.
종목검색은 현재시점기준 조건만족한 것을 찾게 됩니다.
2개식이 같이 있으면 현재 봉번호가 19~28일때만 찾는 내용이므로
4~8번째봉은 이미 과거이므로 리스트 되지 못합니다.
지정한 봉수안에서 지정한 조건이 만족한 종목을 찾는 내용이시면
아래와 같이 조건만족하면 true값을 주어
이후에 해당 변수가 true인 종목을 찾게 식을 구성하시면 됩니다.
var : idx(0), ma1(0), ma2(0);
idx = Index;
ma1 = Ema(C, 5);
ma2 = Ema(C, 20);
if 4 <= idx && idx < 9 Then
{
if CountIF(C < ma1, idx - 3)[1] == idx - 4 && C[1] < ma1 && ma1 <= C Then
Condition1 = true;
}
if 19 <= idx && idx < 29 Then
{
if CountIF(ma1 < ma2, idx - 18) == idx - 18 && CountIF(C < ma1, 5)[1] == 5 && C[1] < ma1 && ma1 <= C Then
Condition1 = true;
}
if Condition1 == true Then
Find(1);
즐거운 하루되세요
> sanddar2 님이 쓴 글입니다.
> 제목 : 고생하십니다. 문의 드립니다......
> > var : idx(0), ma1(0), ma2(0);
idx = Index;
ma1 = Ema(C, 5);
ma2 = Ema(C, 20);
// 1번
if 4 <= idx && idx < 9 Then {
if CountIF(C < ma1, idx - 3)[1] == idx - 4 && C[1] < ma1 && ma1 <= C
Then Find(1);
}
// 2번
if 19 <= idx && idx < 29 Then {
if CountIF(ma1 < ma2, idx - 18) == idx - 18 && CountIF(C < ma1, 5)[1] == 5 && C[1] < ma1 && ma1 <= C
Then Find(2);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
새 수식 파일에 1번 수식만 입력해서 검색했을 때,
(2023-11-15 종가 기준)
종목명 검색결과값
컨텍 1
비아이매트릭스 1
로 1번 수식의 검색결과 종목인 컨텍, 비아이매트릭스가 검색되고
새 수식 파일에 2번 수식만 입력해서 검색했을 때,
(2023-11-15 종가 기준)
종목명 검색결과값
아이엠티 2
퓨릿 2
레뷰코퍼레이션 2
신성에스티 2
로 2번 수식의 검색결과 종목인 아이엠티, 퓨릿, 레뷰코퍼레이션, 신성에스티가 검색됩니다.
하지만 위의 수식 처럼 새 수식 파일에 1번과 2번 수식을 모두 적용 했을 때,
컨텍, 비아이매트릭스, 아이엠티, 퓨릿, 레뷰코퍼레이션, 신성에스티, 총 6종목의 검색결과를 기대했지만 기존의 2번 수식의 결과만 출력됐습니다.
이 문제를 해결하기 위해 수식을 몇번씩 고쳐보니 2번 수식의 'CountIF(C < ma1, 5)[1] == 5'를 지우니 1번 수식의 검색결과인 컨텍, 비아이매트릭스와 2번 수식의 결과 4종목, 총 6종목이 검색되더군요. 'CountIF(C < ma1, 5)[1] == 5'를 지우면 1번 수식의 검색결과가 나타나지만 2번 수식에 영향이 가는 상황입니다. 또한 'CountIF(C < ma1, 5)[1] == 5'를 'CountIF(C < ma1, 3)[1] == 3' 이와 같이 값을 5미만으로 수정해도 6종목이 검색되지만 왜 5이상은 안되는 걸까요? 2번 수식을 변경했는데 왜 1번 수식의 검색결과에 영향을 미치는 건가요? 문제점과 해결방법을 알려주세요.