예스스탁
예스스탁 답변
2025-01-15 09:34:04
안녕하세요
예스스탁입니다.
배열변수의 값이 한번 저장되면 다음 조건만족시 까지 값이 유지되므로
countif로는 방법이 없고 for문으로 처리하셔야 합니다.
조건만족시 index 저장하시고 현재봉기준 200봉 안의 값만 비교해서
지정횟수 이상인지 판단하시면 됩니다.
if h>l*1.08 Then 조건 만족할 때만 계산하시면
해당 if문 안에 위치하면 되고
아니면 밖으로 빼서 계산하시면 됩니다.
var : cnt(0),count(0);
Array : aa[50](0),ii[50](0);
if h>l*1.08 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1 = Index;
Var2 = var1[1];
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
ii[0] = ii[cnt-1];
}
aa[0] = h;
ii[0] = Index;
if aa[0] > aa[1]*1.05 Then Plot12(h,"aa comp",Green,Def,1);
}
count = 0;
for cnt = 0 to 4
{
if aa[cnt] > aa[cnt+1]*1.05 and
aa[cnt+1] > 0 and ii[cnt] >= Index-200 then
count = count+1;
}
if count >= 3 then
Plot13(h,"CountIf",Red,Def,1);
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 질문드리겠습니다
> 답변감사드립니다
전에 질문에서 countif로 질문을 드렸던 이유가 조건검색 환경에서
aa[0] > aa[1]*1.05 인 조건이 예를들어 "200봉 이내에서 3회이상 발생했을때 검색"을 하려고 했던건데요,
만약에 아래와 같은 방법으로 작성 (cnt 범위는 수정을 한다고 했을때)하게 되면
h>l*1.08 이 가장 최근봉 (현재 진행봉) 이어야만 검색이 가능한건가요?
조건검색은 차트상 가장 최근봉 기준으로 검색이돼서
현재 당장에 발생한 봉만이 아니라, 과거의 만족 시점들도 찾으려면 countif 를 써야하는데
아래식처럼 모든봉 기준이 아니라, 특정 조건+배열로 묶었을때의 상황에서는 어떻게 작성해야되는지 궁금합니다
조건이 차트상에서 0봉이 아니라 과거에 있었던 거라면 ( 예를 들어 가장 최근 조건만족봉이 차트상 현재봉에서 N 봉 전에 나왔었다면),
"200봉 이내에 3회이상 발생" 이라는 조건을 검색하려면 어떻게 작성하면 될까요
감사합니다
var : cnt(0),count(0);
Array : aa[50](0);
if h>l*1.08 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1 = Index;
Var2 = var1[1];
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = h;
if aa[0] > aa[1]*1.05 Then Plot12(h,"aa comp",Green,Def,1);
count = 0;
for cnt = 0 to 4
{
if aa[cnt] > aa[cnt+1]*1.05 then
count = count+1;
}
if count >= 3 then
Plot13(h,"CountIf",Red,Def,1);
}