커뮤니티

부탁드립니다

프로필 이미지
파생돌이
2022-10-06 23:42:21
1133
글번호 162797
답변완료
수고하십니다 아래수식은 모든 콜,풋종가에 그려지던데, 현재의등가콜,풋에만 그려지다가, 등가가 변경될때 마다 변경된등가의 콜,풋종가 가 아닌 ,콜4틱위에,풋4틱아래에 그려지는 수식으로 변경 부탁드립니다 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0); #콜종가 CC[2] = Data2(c); CC[3] = Data4(c); CC[4] = Data5(c); CC[5] = Data6(c); CC[6] = Data7(c); #풋가격 PP[2] = Data3(c); PP[3] = Data8(c); PP[4] = Data9(c); PP[5] = Data10(c); PP[6] = Data11(c); if data1(Bdate != Bdate[1]) then { 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; #콜행사가 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; } } if var1 > 0 Then Plot1(CC[var1]); if Var2 > 0 Then Plot2(CC[Var2]); if Var3 > 0 Then Plot3(CC[Var3]); if value1 > 0 then plot4(PP[value1]); if value2 > 0 then plot5(PP[value2]); if value3 > 0 then plot6(PP[value3]);
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-10-07 15:11:45

안녕하세요 예스스탁입니다. 문의하신 내용을 정확히 이해하지 못했습니다. 현재 수식은 첫봉의 ATM을 기준으로 종목을 선정해서 장끝까지 해당종목의 종가를 그리는 지표입니다. 중간에 ATM이 변경이 되면 기존 종가에 +-4틱 더해서 그리게 변경해 드립니다. 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[var1]*4)); if Var3 > 0 Then Plot3(CC[Var3]+IFf(count == 0,0,CT[var1]*4)); if value1 > 0 then plot4(PP[value1]-IFf(count == 0,0,CT[var1]*4)); if value2 > 0 then plot5(PP[value2]-IFf(count == 0,0,CT[var1]*4)); if value3 > 0 then plot6(PP[value3]-IFf(count == 0,0,CT[var1]*4)); 즐거운 하루되세요 > 파생돌이 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 수고하십니다 아래수식은 모든 콜,풋종가에 그려지던데, 현재의등가콜,풋에만 그려지다가, 등가가 변경될때 마다 변경된등가의 콜,풋종가 가 아닌 ,콜4틱위에,풋4틱아래에 그려지는 수식으로 변경 부탁드립니다 var : V1(0,Data1),V2(0,Data1),ATM(0,Data1); var : cnt(0,Data1); var : Ci(0,Data1),Pi(0,Data1); Array : CS[7](0),CC[7](0),PS[7](0),PP[7](0); #콜종가 CC[2] = Data2(c); CC[3] = Data4(c); CC[4] = Data5(c); CC[5] = Data6(c); CC[6] = Data7(c); #풋가격 PP[2] = Data3(c); PP[3] = Data8(c); PP[4] = Data9(c); PP[5] = Data10(c); PP[6] = Data11(c); if data1(Bdate != Bdate[1]) then { 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; #콜행사가 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; } } if var1 > 0 Then Plot1(CC[var1]); if Var2 > 0 Then Plot2(CC[Var2]); if Var3 > 0 Then Plot3(CC[Var3]); if value1 > 0 then plot4(PP[value1]); if value2 > 0 then plot5(PP[value2]); if value3 > 0 then plot6(PP[value3]);