커뮤니티

어제의 가격들과 오늘의 종가 비교하는 for, if문

프로필 이미지
터틀3세
2020-06-18 13:45:59
2079
글번호 139941
답변완료

첨부 이미지

주가의 움직임 영역을 아래처럼 6가지로 나누고, 1/2번, 2/3번, 4/5번, 5/6번 영역 사이의 경계를 Pivot Point라고 해서 뒤에 PP를 붙였습니다. State No 1.상승추세(Uptrend) ---------------------------- UptrendPP (종가가 이 위로 가면 그 종가는 상승추세에 기입) State No 2.진짜반등(RealRally) ---------------------------- RealRallyPP (종가가 이 위로 가면 그 종가는 진짜반등에 기입) State No 3.가짜반등(FakeRally) ---------------------------- (종가가 3번/4번 영역에 있으면 그 종가는 가짜반등/가짜조정에 기입) State No 4.가짜조정(FakeReact) ---------------------------- RealReactPP (종가가 이 아래로 가면 그 종가를 진짜조정에 기입) State No 5.진짜조정(RealReact) ---------------------------- DntrendPP (종가가 이 아래로 가면 그 종가를 하락추세에 기입) State No 6.하락추세(Dntrend) 제가 만들고자 하는 수식은 설정된 기간동안 매일 종가를 추적하여, 아래의 내용을 비교해서 오늘의 종가가 6개 영역중 어디에 해당되는지 판단하는 것입니다. - 어제의 종가가 어느 영역에 머물렀는가 - 오늘의 종가 vs 어제의 종가 크기 비교 - 오늘의 종가 vs 어제의 Pivot Point들과 비교 - 어제의 종가가 1번 영역(상승추세) 일때만 좀 봐주신다면 나머지 2/3/4/5/6번 영역일떄의 if문은 제가 작성해보도록 하겠습니다. 제가 우선 다른 프로그램에서 쓰는 수식 변형해서 만들어봤는데 F4 눌러서 검증은 마쳤습니다만, 오늘의 종가가 어느 영역에 있는지 결과값은 나오지 않는 상황입니다. ---------------------------------------------------------------------------------- var : i(0),stateno(0), uptrend(0),realrally(0),fakerally(0),fakereact(0),realreact(0),dntrend(0), UpTrendPP(0),NatRallyPP(0),NatReactPP(0),DnTrendPP(0); For i = index-1 downto 0 // 어제 종가가 어느 영역에 머물렀는지 기준으로 반복해야하므로 for문 사용 { if i==index-1 then // 시작날짜의 경우 전날에 대한 데이터가 없으므로 1번영역 라고 가정하고 모든 변수에 우선 첫날 종가입력 { StateNo[i]==1; UpTrend[i]== C[i]; RealRally[i]== C[i]; FakeRally[i]== C[i]; FakeReact[i]== C[i]; RealReact[i]== c[i]; DnTrend[i]==C[i]; UpTrendPP[i]==C[i]; RealRallyPP[i]==C[i]; RealReactPP[i]==C[i]; DnTrendPP[i]==C[i]; } else // 시작날짜가 아닌경우 전날의 종가가 어느 영역이었는지 기준으로 if문 반복 { if(StateNo[i+1]==1) then // 전날의 종가가 1번 영역이었다면 이걸 실행. 2/3/4/5/6번 영역이었을때의 조건문은 각각 있음. 여기선 예시로 1번 영역일때만 사용. { if(C[i]>=C[i+1]) then // 오늘의 종가가 어제 종가보다 크거나 같은가? { if(C[i]>UpTrend[i+1]) then // 그렇다면 오늘의 종가가 어제의 상승추세에 입력된 가격보다 큰가? { StateNo[i]==1; // 그렇다면 오늘의 종가는 1번 영역에 있다고 판단 UpTrend[i]==C[i]; // 오늘의 종가를 상승추세 영역에 기입 } 그 다음날은 또 어제의 종가가 어느 영역에 있는지 판단하는것부터 시작 반복...
지표
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2020-06-18 16:02:06

안녕하세요 예스스탁입니다. 수식은 차트에 적용하면 차트의 첫봉부터 마지막봉으로 오면서 계산합니다. 그러므로 for문 사용은 불필요합니다. if문으로만 구성하시면 됩니다. var : stateno(0), uptrend(0),realrally(0),fakerally(0),fakereact(0),realreact(0),dntrend(0), UpTrendPP(0),NatRallyPP(0),NatReactPP(0),DnTrendPP(0),RealRallyPP(0),RealReactPP(0); if index == 0 then //차트 첫봉이면 { # StateNo는 1 저장, 나머지변수는 종가를 모두 저장 StateNo = 1; UpTrend = C; RealRally = C; FakeRally = C; FakeReact = C; RealReact = c; DnTrend = C; UpTrendPP = C; RealRallyPP = C; RealReactPP = C; DnTrendPP = C; } else //두번째 봉부터 { if StateNo == 1 then #최근 StateNo이 1일때 { if C >= C[1] then #현재봉 종가가 전봉종가 이상이고 { if C > UpTrend then #현재봉 종가가 UpTrend에 저장된 값보다 크면 { StateNo = 1; #StateNo은 1 UpTrend = C; #UpTrend에 종가 저장 } } } if StateNo == 2 then #최근 StateNo이 2일때 { } if StateNo == 3 then #최근 StateNo이 3일때 { } if StateNo == 4 then #최근 StateNo이 4일때 { } if StateNo == 5 then #최근 StateNo이 5일때 { } if StateNo == 6 then #최근 StateNo이 6일때 { } } 즐거운 하루되세요 > 터틀3세 님이 쓴 글입니다. > 제목 : 어제의 가격들과 오늘의 종가 비교하는 for, if문 > 주가의 움직임 영역을 아래처럼 6가지로 나누고, 1/2번, 2/3번, 4/5번, 5/6번 영역 사이의 경계를 Pivot Point라고 해서 뒤에 PP를 붙였습니다. State No 1.상승추세(Uptrend) ---------------------------- UptrendPP (종가가 이 위로 가면 그 종가는 상승추세에 기입) State No 2.진짜반등(RealRally) ---------------------------- RealRallyPP (종가가 이 위로 가면 그 종가는 진짜반등에 기입) State No 3.가짜반등(FakeRally) ---------------------------- (종가가 3번/4번 영역에 있으면 그 종가는 가짜반등/가짜조정에 기입) State No 4.가짜조정(FakeReact) ---------------------------- RealReactPP (종가가 이 아래로 가면 그 종가를 진짜조정에 기입) State No 5.진짜조정(RealReact) ---------------------------- DntrendPP (종가가 이 아래로 가면 그 종가를 하락추세에 기입) State No 6.하락추세(Dntrend) 제가 만들고자 하는 수식은 설정된 기간동안 매일 종가를 추적하여, 아래의 내용을 비교해서 오늘의 종가가 6개 영역중 어디에 해당되는지 판단하는 것입니다. - 어제의 종가가 어느 영역에 머물렀는가 - 오늘의 종가 vs 어제의 종가 크기 비교 - 오늘의 종가 vs 어제의 Pivot Point들과 비교 - 어제의 종가가 1번 영역(상승추세) 일때만 좀 봐주신다면 나머지 2/3/4/5/6번 영역일떄의 if문은 제가 작성해보도록 하겠습니다. 제가 우선 다른 프로그램에서 쓰는 수식 변형해서 만들어봤는데 F4 눌러서 검증은 마쳤습니다만, 오늘의 종가가 어느 영역에 있는지 결과값은 나오지 않는 상황입니다. ---------------------------------------------------------------------------------- var : i(0),stateno(0), uptrend(0),realrally(0),fakerally(0),fakereact(0),realreact(0),dntrend(0), UpTrendPP(0),NatRallyPP(0),NatReactPP(0),DnTrendPP(0); For i = index-1 downto 0 // 어제 종가가 어느 영역에 머물렀는지 기준으로 반복해야하므로 for문 사용 { if i==index-1 then // 시작날짜의 경우 전날에 대한 데이터가 없으므로 1번영역 라고 가정하고 모든 변수에 우선 첫날 종가입력 { StateNo[i]==1; UpTrend[i]== C[i]; RealRally[i]== C[i]; FakeRally[i]== C[i]; FakeReact[i]== C[i]; RealReact[i]== c[i]; DnTrend[i]==C[i]; UpTrendPP[i]==C[i]; RealRallyPP[i]==C[i]; RealReactPP[i]==C[i]; DnTrendPP[i]==C[i]; } else // 시작날짜가 아닌경우 전날의 종가가 어느 영역이었는지 기준으로 if문 반복 { if(StateNo[i+1]==1) then // 전날의 종가가 1번 영역이었다면 이걸 실행. 2/3/4/5/6번 영역이었을때의 조건문은 각각 있음. 여기선 예시로 1번 영역일때만 사용. { if(C[i]>=C[i+1]) then // 오늘의 종가가 어제 종가보다 크거나 같은가? { if(C[i]>UpTrend[i+1]) then // 그렇다면 오늘의 종가가 어제의 상승추세에 입력된 가격보다 큰가? { StateNo[i]==1; // 그렇다면 오늘의 종가는 1번 영역에 있다고 판단 UpTrend[i]==C[i]; // 오늘의 종가를 상승추세 영역에 기입 } 그 다음날은 또 어제의 종가가 어느 영역에 있는지 판단하는것부터 시작 반복...
프로필 이미지

터틀3세

2020-06-19 12:10:51

감사합니다. 한가지 더 궁금한게 있는데 전날의 종가와 오늘의 종가를 비교할 때 (오늘의 종가) >= (전날의 종가) * (ATR 10일 중 높은거 3개, 낮은거 3개 제외한 중간 4개값 나누기 4한거) 어맇게 수정하고싶은데 배열함수도 써야할거같아서 좀 어렵습니다. 도움 요청드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 어제의 가격들과 오늘의 종가 비교하는 for, if문 > 안녕하세요 예스스탁입니다. 수식은 차트에 적용하면 차트의 첫봉부터 마지막봉으로 오면서 계산합니다. 그러므로 for문 사용은 불필요합니다. if문으로만 구성하시면 됩니다. var : stateno(0), uptrend(0),realrally(0),fakerally(0),fakereact(0),realreact(0),dntrend(0), UpTrendPP(0),NatRallyPP(0),NatReactPP(0),DnTrendPP(0),RealRallyPP(0),RealReactPP(0); if index == 0 then //차트 첫봉이면 { # StateNo는 1 저장, 나머지변수는 종가를 모두 저장 StateNo = 1; UpTrend = C; RealRally = C; FakeRally = C; FakeReact = C; RealReact = c; DnTrend = C; UpTrendPP = C; RealRallyPP = C; RealReactPP = C; DnTrendPP = C; } else //두번째 봉부터 { if StateNo == 1 then #최근 StateNo이 1일때 { if C >= C[1] then #현재봉 종가가 전봉종가 이상이고 { if C > UpTrend then #현재봉 종가가 UpTrend에 저장된 값보다 크면 { StateNo = 1; #StateNo은 1 UpTrend = C; #UpTrend에 종가 저장 } } } if StateNo == 2 then #최근 StateNo이 2일때 { } if StateNo == 3 then #최근 StateNo이 3일때 { } if StateNo == 4 then #최근 StateNo이 4일때 { } if StateNo == 5 then #최근 StateNo이 5일때 { } if StateNo == 6 then #최근 StateNo이 6일때 { } } 즐거운 하루되세요 > 터틀3세 님이 쓴 글입니다. > 제목 : 어제의 가격들과 오늘의 종가 비교하는 for, if문 > 주가의 움직임 영역을 아래처럼 6가지로 나누고, 1/2번, 2/3번, 4/5번, 5/6번 영역 사이의 경계를 Pivot Point라고 해서 뒤에 PP를 붙였습니다. State No 1.상승추세(Uptrend) ---------------------------- UptrendPP (종가가 이 위로 가면 그 종가는 상승추세에 기입) State No 2.진짜반등(RealRally) ---------------------------- RealRallyPP (종가가 이 위로 가면 그 종가는 진짜반등에 기입) State No 3.가짜반등(FakeRally) ---------------------------- (종가가 3번/4번 영역에 있으면 그 종가는 가짜반등/가짜조정에 기입) State No 4.가짜조정(FakeReact) ---------------------------- RealReactPP (종가가 이 아래로 가면 그 종가를 진짜조정에 기입) State No 5.진짜조정(RealReact) ---------------------------- DntrendPP (종가가 이 아래로 가면 그 종가를 하락추세에 기입) State No 6.하락추세(Dntrend) 제가 만들고자 하는 수식은 설정된 기간동안 매일 종가를 추적하여, 아래의 내용을 비교해서 오늘의 종가가 6개 영역중 어디에 해당되는지 판단하는 것입니다. - 어제의 종가가 어느 영역에 머물렀는가 - 오늘의 종가 vs 어제의 종가 크기 비교 - 오늘의 종가 vs 어제의 Pivot Point들과 비교 - 어제의 종가가 1번 영역(상승추세) 일때만 좀 봐주신다면 나머지 2/3/4/5/6번 영역일떄의 if문은 제가 작성해보도록 하겠습니다. 제가 우선 다른 프로그램에서 쓰는 수식 변형해서 만들어봤는데 F4 눌러서 검증은 마쳤습니다만, 오늘의 종가가 어느 영역에 있는지 결과값은 나오지 않는 상황입니다. ---------------------------------------------------------------------------------- var : i(0),stateno(0), uptrend(0),realrally(0),fakerally(0),fakereact(0),realreact(0),dntrend(0), UpTrendPP(0),NatRallyPP(0),NatReactPP(0),DnTrendPP(0); For i = index-1 downto 0 // 어제 종가가 어느 영역에 머물렀는지 기준으로 반복해야하므로 for문 사용 { if i==index-1 then // 시작날짜의 경우 전날에 대한 데이터가 없으므로 1번영역 라고 가정하고 모든 변수에 우선 첫날 종가입력 { StateNo[i]==1; UpTrend[i]== C[i]; RealRally[i]== C[i]; FakeRally[i]== C[i]; FakeReact[i]== C[i]; RealReact[i]== c[i]; DnTrend[i]==C[i]; UpTrendPP[i]==C[i]; RealRallyPP[i]==C[i]; RealReactPP[i]==C[i]; DnTrendPP[i]==C[i]; } else // 시작날짜가 아닌경우 전날의 종가가 어느 영역이었는지 기준으로 if문 반복 { if(StateNo[i+1]==1) then // 전날의 종가가 1번 영역이었다면 이걸 실행. 2/3/4/5/6번 영역이었을때의 조건문은 각각 있음. 여기선 예시로 1번 영역일때만 사용. { if(C[i]>=C[i+1]) then // 오늘의 종가가 어제 종가보다 크거나 같은가? { if(C[i]>UpTrend[i+1]) then // 그렇다면 오늘의 종가가 어제의 상승추세에 입력된 가격보다 큰가? { StateNo[i]==1; // 그렇다면 오늘의 종가는 1번 영역에 있다고 판단 UpTrend[i]==C[i]; // 오늘의 종가를 상승추세 영역에 기입 } 그 다음날은 또 어제의 종가가 어느 영역에 있는지 판단하는것부터 시작 반복...