커뮤니티

부탁드립니다

프로필 이미지
파생돌이
2022-10-14 17:15:11
1000
글번호 162992
답변완료
수고하십니다 79161번 재질문입니다 차트에적용해보니 참조테이터는 나타나는데 위에있는 기본차트에 KP200선물연결(DATA1) 차트 종가에도 같은 선긋기 가 나타나지 않내요
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-10-17 11:27:57

안녕하세요 예스스탁입니다. 수식은 차트에 적용되면 적용된 하나의 영역에 모든 plot이 됩니다. data1과 다른 데이타가 각각 별도 영역으로 적용된 상태이면 하나의 식에서 각각 영역에 표시가 되게 지정할 수가 없습니다. data1에 모든 데이타가 겹쳐 표시를 한상태가 아니라면 data1에 그릴 지표와 나머지 데이타에 표시할 지표를 각각 분리해서 작성 후 적용하셔야 합니다. 수식내용을 분리해 드립니다. 1 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); #콜종가 CC[2] = Data2(c); CC[3] = Data4(c); CC[4] = Data5(c); CC[5] = Data6(c); CC[6] = Data7(c); #콜틱 CT[2] = Data2(PriceScale); CT[3] = Data4(PriceScale); CT[4] = Data5(PriceScale); CT[5] = Data6(PriceScale); CT[6] = Data7(PriceScale); #풋가격 PP[2] = Data3(c); PP[3] = Data8(c); PP[4] = Data9(c); PP[5] = Data10(c); PP[6] = Data11(c); #풋틱 PT[2] = Data3(PriceScale); PT[3] = Data8(PriceScale); PT[4] = Data9(PriceScale); PT[5] = Data10(PriceScale); PT[6] = Data11(PriceScale); V1 = Data12(c); V2 = data12(Floor(c/2.5)*2.5); if V1-V2 > 2.5/2 Then ATM = V2+2.5; else ATM = V2; if data1(Bdate != Bdate[1]) then { #콜행사가 CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[4]= data5(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[5]= data6(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[6]= data7(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); #풋행사가 PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[4]= data9(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[5]= data10(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[6]= data11(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; For cnt = 2 to 6 { if CS[cnt] == ATM Then var1 = cnt; if CS[cnt] == ATM+2.5 Then Var2 = cnt; if CS[cnt] == ATM-2.5 Then Var3 = cnt; if PS[cnt] == ATM Then value1 = cnt; if PS[cnt] == ATM+2.5 Then Value2 = cnt; if PS[cnt] == ATM-2.5 Then Value3 = cnt; } } Else { if ATM != ATM[1] Then count = count+1; } if var1 > 0 Then Plot1(CC[var1]+IFf(count == 0,0,CT[var1]*4)); if Var2 > 0 Then Plot2(CC[Var2]+IFf(count == 0,0,CT[Var2]*4)); if Var3 > 0 Then Plot3(CC[Var3]+IFf(count == 0,0,CT[Var3]*4)); if value1 > 0 then plot4(PP[value1]-IFf(count == 0,0,CT[value1]*4)); if value2 > 0 then plot5(PP[value2]-IFf(count == 0,0,CT[value2]*4)); if value3 > 0 then plot6(PP[value3]-IFf(count == 0,0,CT[value3]*4)); var : c3(0,Data1),c6(0,Data1),c4(0,data1),c1(0,data1); var : x1(0,Data1),x2(0,Data1),x3(0,data1); var : i1(0,Data1),i2(0,Data1),i3(0,data1); var : y1(0,Data1),y2(0,Data1),y3(0,data1); var : cond1(False,Data1),cond2(False,Data1),cond3(False,Data1); c1 = CC[var1]+IFf(count == 0,0,CT[var1]*4); c3 = CC[var3]+IFf(count == 0,0,CT[var3]*4); c4 = PP[value1]-IFf(count == 0,0,CT[value1]*4); c6 = PP[value3]-IFf(count == 0,0,CT[value3]*4); if c3 > 0 and c6 > 0 Then { If c3 < c6 - 0.15 And c3 > c6 Then { X1 = (C3+C6)/2; Y1 = Data1(c); I1 = Index; } Else If c6 < c3 - 0.15 And c6 > c3 Then { X1 = (C3+C6)/2; I1 = Index; } Else If c3 <= c6 + 0.15 And c3 >= c6 - 0.15 Then { X1 = (C3+C6)/2; I1 = Index; } Else If c6 <= c3 + 0.15 And c6 >= c3 - 0.15 Then { X1 = (C3+C6)/2; I1 = Index; } if i1 > 0 and Index <= i1+4 Then { plot7(x1); } } if c3 > 0 and c4 > 0 Then { If c3 < c4 - 0.15 And c3 > c4 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c4 < c3 - 0.15 And c4 > c3 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c3 <= c4 + 0.15 And c3 >= c4 - 0.15 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c4 <= c3 + 0.15 And c4 >= c3 - 0.15 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } if i2 > 0 and Index <= i2+4 Then { plot9(x2); } } if c1 > 0 and c6 > 0 Then { If c1 < c6 - 0.15 And c1 > c6 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c6 < c1 - 0.15 And c6 > c1 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c1 <= c6 + 0.15 And c1 >= c6 - 0.15 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c6 <= c1 + 0.15 And c6 >= c1 - 0.15 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } if i3 > 0 and Index <= i3+4 Then { plot11(x3); } } 2 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1),count(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0),CT[7](0),PT[7](0); #콜종가 CC[2] = Data2(c); CC[3] = Data4(c); CC[4] = Data5(c); CC[5] = Data6(c); CC[6] = Data7(c); #콜틱 CT[2] = Data2(PriceScale); CT[3] = Data4(PriceScale); CT[4] = Data5(PriceScale); CT[5] = Data6(PriceScale); CT[6] = Data7(PriceScale); #풋가격 PP[2] = Data3(c); PP[3] = Data8(c); PP[4] = Data9(c); PP[5] = Data10(c); PP[6] = Data11(c); #풋틱 PT[2] = Data3(PriceScale); PT[3] = Data8(PriceScale); PT[4] = Data9(PriceScale); PT[5] = Data10(PriceScale); PT[6] = Data11(PriceScale); V1 = Data12(c); V2 = data12(Floor(c/2.5)*2.5); if V1-V2 > 2.5/2 Then ATM = V2+2.5; else ATM = V2; if data1(Bdate != Bdate[1]) then { #콜행사가 CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[4]= data5(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[5]= data6(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); CS[6]= data7(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); #풋행사가 PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[4]= data9(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[5]= data10(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); PS[6]= data11(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5)); var1 = 0; Var2 = 0; Var3 = 0; For cnt = 2 to 6 { if CS[cnt] == ATM Then var1 = cnt; if CS[cnt] == ATM+2.5 Then Var2 = cnt; if CS[cnt] == ATM-2.5 Then Var3 = cnt; if PS[cnt] == ATM Then value1 = cnt; if PS[cnt] == ATM+2.5 Then Value2 = cnt; if PS[cnt] == ATM-2.5 Then Value3 = cnt; } } Else { if ATM != ATM[1] Then count = count+1; } var : c3(0,Data1),c6(0,Data1),c4(0,data1),c1(0,data1); var : x1(0,Data1),x2(0,Data1),x3(0,data1); var : i1(0,Data1),i2(0,Data1),i3(0,data1); var : y1(0,Data1),y2(0,Data1),y3(0,data1); var : cond1(False,Data1),cond2(False,Data1),cond3(False,Data1); c1 = CC[var1]+IFf(count == 0,0,CT[var1]*4); c3 = CC[var3]+IFf(count == 0,0,CT[var3]*4); c4 = PP[value1]-IFf(count == 0,0,CT[value1]*4); c6 = PP[value3]-IFf(count == 0,0,CT[value3]*4); if c3 > 0 and c6 > 0 Then { If c3 < c6 - 0.15 And c3 > c6 Then { X1 = (C3+C6)/2; Y1 = Data1(c); I1 = Index; } Else If c6 < c3 - 0.15 And c6 > c3 Then { X1 = (C3+C6)/2; I1 = Index; } Else If c3 <= c6 + 0.15 And c3 >= c6 - 0.15 Then { X1 = (C3+C6)/2; I1 = Index; } Else If c6 <= c3 + 0.15 And c6 >= c3 - 0.15 Then { X1 = (C3+C6)/2; I1 = Index; } if i1 > 0 and Index <= i1+4 Then { plot8(y1); } } if c3 > 0 and c4 > 0 Then { If c3 < c4 - 0.15 And c3 > c4 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c4 < c3 - 0.15 And c4 > c3 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c3 <= c4 + 0.15 And c3 >= c4 - 0.15 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } Else If c4 <= c3 + 0.15 And c4 >= c3 - 0.15 Then { X2 = (C3+c4)/2; Y2 = Data1(c); I2 = Index; } if i2 > 0 and Index <= i2+4 Then { plot10(y2); } } if c1 > 0 and c6 > 0 Then { If c1 < c6 - 0.15 And c1 > c6 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c6 < c1 - 0.15 And c6 > c1 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c1 <= c6 + 0.15 And c1 >= c6 - 0.15 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } Else If c6 <= c1 + 0.15 And c6 >= c1 - 0.15 Then { X3 = (c1+c6)/2; Y3 = Data1(c); I3 = Index; } if i3 > 0 and Index <= i3+4 Then { plot12(y3); } } 즐거운 하루되세요 > 파생돌이 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 수고하십니다 79161번 재질문입니다 차트에적용해보니 참조테이터는 나타나는데 위에있는 기본차트에 KP200선물연결(DATA1) 차트 종가에도 같은 선긋기 가 나타나지 않내요