예스스탁
예스스탁 답변
2021-11-12 16:56:37
안녕하세요
예스스탁입니다.
그래프 모양은 속성에서 지정하셔야 합니다.
수식안에서 처리가 되지 않습니다.
input : P(22),n(2);
input : x(255),x1(155),x2(55);
input : y(255),y1(155),y2(55);
var : ii(0),i1(0),i2(0),tempmin(0),tempIndex(0),min1(0),min2(0),min3(0),minAvg(0);
var : color1(0),color2(0),color3(0);
Array : mav[21](0),diff[21](0),diffsum[21](0);
Array : MinValue[21](0),MinIndex[21](0);
#for루프 사용을 위해 이평은 모두 배열변수에 저장
mav[1] = ma(C,P);
mav[2] = ma(C,P+n*1);
mav[3] = ma(C,P+n*2);
mav[4] = ma(C,P+n*3);
mav[5] = ma(C,P+n*4);
mav[6] = ma(C,P+n*5);
mav[7] = ma(C,P+n*6);
mav[8] = ma(C,P+n*7);
mav[9] = ma(C,P+n*8);
mav[10] = ma(C,P+n*9);
mav[11] = ma(C,P+n*10);
mav[12] = ma(C,P+n*11);
mav[13] = ma(C,P+n*12);
mav[14] = ma(C,P+n*13);
mav[15] = ma(C,P+n*14);
mav[16] = ma(C,P+n*15);
mav[17] = ma(C,P+n*16);
mav[18] = ma(C,P+n*17);
mav[19] = ma(C,P+n*18);
mav[20] = ma(C,P+n*19);
if mav[20] > 0 Then
{
#1번
#20번째 이평은 다음이평이 없으므로 1~19까지만 다음이평과 차이의 절대값 저장
For ii = 1 to 19
{
diff[ii] = abs(mav[ii]-mav[ii+1]);
}
#2번
#4개씩 합산하므로 차이값16~19까지만 최종 16번방에 저장
For ii = 1 to 16
{
diffsum[ii] = diff[ii]+diff[ii+1]+diff[ii+2]+diff[ii+3];
}
#3번
For i1 = 1 to 3 //작은순으로 3개
{
#초기값 아주 큰값
tempmin = 999999999;
#1~16번방 값중 가장 작은값 찾음
For i2 = 1 to 16
{
if diffsum[i2] < tempmin then
{
tempmin = diffsum[i2];
tempIndex = i2;
}
}
#i1번째 최저값
MinValue[i1] = tempmin;
#i1번째 최저값의 diffsum 방번호
MinIndex[i1] = tempIndex;
#최저값으로 찾아진 값은 큰값을 주어 다음순위에서 제외되게 함
diffsum[tempIndex] = 999999999;
}
#4번 5번
min1 = (mav[MinIndex[1]]+mav[MinIndex[1]+1]+mav[MinIndex[1]+2]+mav[MinIndex[1]+3])/4;
min2 = (mav[MinIndex[2]]+mav[MinIndex[2]+1]+mav[MinIndex[2]+2]+mav[MinIndex[2]+3])/4;
min3 = (mav[MinIndex[3]]+mav[MinIndex[3]+1]+mav[MinIndex[3]+2]+mav[MinIndex[3]+3])/4;
value1 = abs(c-min1);
Value2 = abs(c-min2);
Value3 = abs(c-min3);
if min1 > C Then
{
if value1 == NthMinList(1,value1,Value2,Value3) Then
color1 = RGB(x,x,x);
if value1 == NthMinList(2,value1,Value2,Value3) Then
color1 = RGB(x1,x1,x1);
if value1 == NthMinList(3,value1,Value2,Value3) Then
color1 = RGB(x2,x2,x2);
}
else
{
if value1 == NthMinList(1,value1,Value2,Value3) Then
color1 = RGB(y,y,y);
if value1 == NthMinList(2,value1,Value2,Value3) Then
color1 = RGB(y1,y1,y1);
if value1 == NthMinList(3,value1,Value2,Value3) Then
color1 = RGB(y2,y2,y2);
}
Plot1(min1,"min1",color1);
if min2 > C Then
{
if value2 == NthMinList(1,value1,Value2,Value3) Then
color2 = RGB(x,x,x);
if value2 == NthMinList(2,value1,Value2,Value3) Then
color2 = RGB(x1,x1,x1);
if value2 == NthMinList(3,value1,Value2,Value3) Then
color2 = RGB(x2,x2,x2);
}
else
{
if value2 == NthMinList(1,value1,Value2,Value3) Then
color2 = RGB(y,y,y);
if value2 == NthMinList(2,value1,Value2,Value3) Then
color2 = RGB(y1,y1,y1);
if value2 == NthMinList(3,value1,Value2,Value3) Then
color2 = RGB(y2,y2,y2);
}
Plot2(min2,"min2",color2);
if min3 > C Then
{
if value3 == NthMinList(1,value1,Value2,Value3) Then
color3 = RGB(x,x,x);
if value3 == NthMinList(2,value1,Value2,Value3) Then
color3 = RGB(x1,x1,x1);
if value3 == NthMinList(3,value1,Value2,Value3) Then
color3 = RGB(x2,x2,x2);
}
else
{
if value3 == NthMinList(1,value1,Value2,Value3) Then
color3 = RGB(y,y,y);
if value3 == NthMinList(2,value1,Value2,Value3) Then
color3 = RGB(y1,y1,y1);
if value3 == NthMinList(3,value1,Value2,Value3) Then
color3 = RGB(y2,y2,y2);
}
Plot3(min3,"min3",color3);
#최저값3개의 평균
minAvg = (min1+min2+min3)/3;
plot4(minAvg);
}
즐거운 하루되세요
> 부똘이 님이 쓴 글입니다.
> 제목 : 수식 문의
> 친절한 답변 감사드립니다.
수식을 짜시는 입장에서 최대한 써보려고 노력했으나
문과충인지라 한계가 있음을 이해해 주시기 바랍니다.
감사합니다.
-----------------------------
아래는 그물망 이평의 간격을 n값으로 조절해 주는 그물망지표 수식 입니다.
아래의 지표를 기반으로 다음과 같은 수식을 구하는데 도움을 얻고자 합니다.
항상 친절한 답변 미리 감사드립니다.
-------------------------------------------
1번. 각 이평선간의 간격을 구해둡니다.
ㄱ= abs(var1-var2)
ㄴ= abs(var2-var3)
ㄷ= abs(var3-var4)
ㄹ= abs(var4-var5)
.
.
.
끝= abs((varX-1)-varX)
2번. (연달아 놓여진 n개의 ㄱ~끝의 간격의 합)을 구해둡니다.
ex : 20개 이평인 경우 연달아 놓여진 4개의 이평선 간격의 합
a = (ㄱ+ㄴ+ㄷ+ㄹ)
b = (ㄴ+ㄷ+ㄹ+ㅁ)
c = (ㄷ+ㄹ+ㅁ+ㅂ)
.
.
.
.
z
3번. 2번에서 구해진 a~z중 그 값이 가장 작은 놈 3개를 찾습니다.
4번. 3번에서 찾은 세개의 값에 해당하는 이평선을 찾습니다.
ex : a,b,c가 가장 작다고 했을 때
a = var1,2,3,4,5
b = var2,3,4,5,6
c = var3,4,5,6,7
이 찾아 질 것입니다.
5번. 4번에서 찾은 이평선들의 중간값을 찾습니다.
ex :
a = var1,2,3,4,5 중 (가장 큰 값 + 가장 작은 값 / 2)
b =
c =
6번. 5번에서 구해진 3개의 값을 점으로 찍습니다.
7번.그 점이 현재가와 가장 가까이 있으면서
현재가 위에 있으면 rgb(x,x,x)로
아래에 있으면 rgb(y,y,y)로 점을 찍습니다.
그 점이 현재가와 두번째로 가까이 있으면서
현재가 위에 있으면 rgb(x1,x1,x1)로
아래에 있으면 rgb(y1,y1,y1)로 점을 찍습니다.
그 점이 현재가와 가장 멀리 있으면서
현재가 위에 있으면 rgb(x2,x2,x2)로
아래에 있으면 rgb(y2,y2,y2)로 점을 찍습니다.
8번. 각각 세개의 점에 대한 이동평균선을 구합니다.
------------- 아 래 ----------------
input : P(22),n(2);
var1 = ma(C,P);
var2 = ma(C,P+n*1);
var3 = ma(C,P+n*2);
var4 = ma(C,P+n*3);
var5 = ma(C,P+n*4);
var6 = ma(C,P+n*5);
var7 = ma(C,P+n*6);
var8 = ma(C,P+n*7);
var9 = ma(C,P+n*8);
var10 = ma(C,P+n*9);
var11 = ma(C,P+n*10);
var12 = ma(C,P+n*11);
var13 = ma(C,P+n*12);
var14 = ma(C,P+n*13);
var15 = ma(C,P+n*14);
var16 = ma(C,P+n*15);
var17 = ma(C,P+n*16);
var18 = ma(C,P+n*17);
var19 = ma(C,P+n*18);
var20 = ma(C,P+n*19);
Plot1(var1,"이평1",IFf(var1>Var20,RED,BLUE));
Plot2(var2,"이평2",IFf(var2>Var20,RED,BLUE));
Plot3(var3,"이평3",IFf(var3>Var20,RED,BLUE));
Plot4(var4,"이평4",IFf(var4>Var20,RED,BLUE));
Plot5(var5,"이평5",IFf(var5>Var20,RED,BLUE));
Plot6(var6,"이평6",IFf(var6>Var20,RED,BLUE));
Plot7(var7,"이평7",IFf(var7>Var20,RED,BLUE));
Plot8(var8,"이평8",IFf(var8>Var20,RED,BLUE));
Plot9(var9,"이평9",IFf(var9>Var20,RED,BLUE));
Plot10(var10,"이평10",IFf(var10>Var20,RED,BLUE));
Plot11(var11,"이평11",IFf(var11>Var20,RED,BLUE));
Plot12(var12,"이평12",IFf(var12>Var20,RED,BLUE));
Plot13(var13,"이평13",IFf(var13>Var20,RED,BLUE));
Plot14(var14,"이평14",IFf(var14>Var20,RED,BLUE));
Plot15(var15,"이평15",IFf(var15>Var20,RED,BLUE));
Plot16(var16,"이평16",IFf(var16>Var20,RED,BLUE));
Plot17(var17,"이평17",IFf(var17>Var20,RED,BLUE));
Plot18(var18,"이평18",IFf(var18>Var20,RED,BLUE));
Plot19(var19,"이평19",IFf(var19>Var20,RED,BLUE));
Plot20(var20,"이평20");