예스스탁
예스스탁 답변
2022-09-26 15:53:19
안녕하세요
예스스탁입니다.
식을 수정했습니다.
작성하신 수식이 첫봉 종가기준입니다.
if data1(Bdate != Bdate[1]) then 조건 제거하시면 봉마다 새로 계산합니다.
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);
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));
#콜종가
CC[2] = Data2(c);
CC[3] = Data4(c);
CC[4] = Data5(c);
CC[5] = Data6(c);
CC[6] = Data7(c);
#풋행사가
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));
#풋가격
PP[2] = Data3(c);
PP[3] = Data8(c);
PP[4] = Data9(c);
PP[5] = Data10(c);
PP[6] = Data11(c);
var1 = 0;
Var2 = 0;
Var3 = 0;
For cnt = 2 to 6
{
if CS[cnt] == ATM Then
var1 = CC[cnt];
if CS[cnt] == ATM+2.5 Then
Var2 = CC[cnt];
if CS[cnt] == ATM-2.5 Then
Var3 = CC[cnt];
if PS[cnt] == ATM Then
value1 = PP[cnt];
if PS[cnt] == ATM+2.5 Then
Value2 = PP[cnt];
if PS[cnt] == ATM-2.5 Then
Value3 = PP[cnt];
}
}
if var1 > 0 Then
Plot1(var1);
if Var2 > 0 Then
Plot2(Var2);
if Var3 > 0 Then
Plot3(Var3);
if value1 > 0 then
plot4(value1);
if value2 > 0 then
plot5(value2);
if value3 > 0 then
plot6(value3);
즐거운 하루되세요
> yosong 님이 쓴 글입니다.
> 제목 : 수식수정부탁드립니다.
>
안녕하세요 수식수정부탁드립니다.
data12-코스피200
data1-코스피200연결선물
data2,4,5,6,7 콜
data3,8,9,10,11 풋
이렇게 설정되어있을때 등가에 맞는 콜,풋 값을 구하고 있습니다. 다른 글을 보고 수정해 보았는데 값이 빠질때도 많고 잘 안맞는거 같아 도움요청드립니다. 그럼 수고하세요~
var : ATM(0),sum10(0),cnt(0),sum20(0),cnt2(0),sum11(0),sum12(0),sum21(0),sum22(0),VV1(0);
Array : VV[6](0),CC[6](0), VV2[6](0),CC2[6](0);
if (data1(Bdate != Bdate[1])) then
{
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV[2]= iff(StrToNum(RightStr(Data2(SymbolCode),1)) == 5,StrToNum(RightStr(Data2(SymbolCode),3)),StrToNum(RightStr(Data2(SymbolCode),3))+0.5);
CC[2] = Data2(c);
VV[3] = iff(StrToNum(RightStr(Data4(SymbolCode),1)) == 5,StrToNum(RightStr(Data4(SymbolCode),3)),StrToNum(RightStr(Data4(SymbolCode),3))+0.5);
CC[3] = Data4(c);
VV[4] = iff(StrToNum(RightStr(Data5(SymbolCode),1)) == 5,StrToNum(RightStr(Data5(SymbolCode),3)),StrToNum(RightStr(Data5(SymbolCode),3))+0.5);
CC[4] = Data5(c);
VV[5] = iff(StrToNum(RightStr(Data6(SymbolCode),1)) == 5,StrToNum(RightStr(Data6(SymbolCode),3)),StrToNum(RightStr(Data6(SymbolCode),3))+0.5);
CC[5] = Data6(c);
VV[6] = iff(StrToNum(RightStr(Data7(SymbolCode),1)) == 5,StrToNum(RightStr(Data7(SymbolCode),3)),StrToNum(RightStr(Data7(SymbolCode),3))+0.5);
CC[6] = Data7(c);
sum10 = 0;
sum11 = 0;
sum12 = 0;
For cnt = 2 to 6
{
if VV[cnt] == ATM Then
{ sum10 = CC[cnt];}
if VV[cnt] == ATM+2.5 Then
{ sum11 = CC[cnt];}
if VV[cnt] == ATM-2.5 Then
{ sum12 = CC[cnt];}
}
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV2[2] = iff(StrToNum(RightStr(Data3(SymbolCode),1)) == 5,StrToNum(RightStr(Data3(SymbolCode),3)),StrToNum(RightStr(Data3(SymbolCode),3))+0.5);
CC2[2] = Data3(c);
VV2[3] = iff(StrToNum(RightStr(Data8(SymbolCode),1)) == 5,StrToNum(RightStr(Data8(SymbolCode),3)),StrToNum(RightStr(Data8(SymbolCode),3))+0.5);
CC2[3] = Data8(c);
VV2[4] = iff(StrToNum(RightStr(Data9(SymbolCode),1)) == 5,StrToNum(RightStr(Data9(SymbolCode),3)),StrToNum(RightStr(Data9(SymbolCode),3))+0.5);
CC2[4] = Data9(c);
VV2[5] = iff(StrToNum(RightStr(Data10(SymbolCode),1)) == 5,StrToNum(RightStr(Data10(SymbolCode),3)),StrToNum(RightStr(Data10(SymbolCode),3))+0.5);
CC2[5] = Data10(c);
VV2[6] = iff(StrToNum(RightStr(Data11(SymbolCode),1)) == 5,StrToNum(RightStr(Data11(SymbolCode),3)),StrToNum(RightStr(Data11(SymbolCode),3))+0.5);
CC2[6] = Data11(c);
sum20 = 0;
sum21 = 0;
sum22 = 0;
For cnt2 = 2 to 6
{
if VV2[cnt2] == ATM Then
{ sum20 = CC2[cnt2];}
if VV2[cnt2] == ATM+2.5 Then
{ sum21 =CC2[cnt2];}
if VV2[cnt2] == ATM-2.5 Then
{sum22 = CC2[cnt2];}
}
}
yosong
2022-09-26 17:50:33
안녕하세요. 답변주신 내용은 잘 보았습니다.
그런데 등가가 변경될때 지표가 너무 왔다갔다해서 처음 수식처럼 첫봉기준으로 한번만 등가를 구하고 나머지는 구해진 등가로 값을 받아오고 싶은데 첫봉에 구해진 콜,풋 값만
유지가 되거나 값이 나오지 않아 다시 한번 도움 요청드립니다. 그럼 수고하세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식수정부탁드립니다.
> 안녕하세요
예스스탁입니다.
식을 수정했습니다.
작성하신 수식이 첫봉 종가기준입니다.
if data1(Bdate != Bdate[1]) then 조건 제거하시면 봉마다 새로 계산합니다.
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);
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));
#콜종가
CC[2] = Data2(c);
CC[3] = Data4(c);
CC[4] = Data5(c);
CC[5] = Data6(c);
CC[6] = Data7(c);
#풋행사가
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));
#풋가격
PP[2] = Data3(c);
PP[3] = Data8(c);
PP[4] = Data9(c);
PP[5] = Data10(c);
PP[6] = Data11(c);
var1 = 0;
Var2 = 0;
Var3 = 0;
For cnt = 2 to 6
{
if CS[cnt] == ATM Then
var1 = CC[cnt];
if CS[cnt] == ATM+2.5 Then
Var2 = CC[cnt];
if CS[cnt] == ATM-2.5 Then
Var3 = CC[cnt];
if PS[cnt] == ATM Then
value1 = PP[cnt];
if PS[cnt] == ATM+2.5 Then
Value2 = PP[cnt];
if PS[cnt] == ATM-2.5 Then
Value3 = PP[cnt];
}
}
if var1 > 0 Then
Plot1(var1);
if Var2 > 0 Then
Plot2(Var2);
if Var3 > 0 Then
Plot3(Var3);
if value1 > 0 then
plot4(value1);
if value2 > 0 then
plot5(value2);
if value3 > 0 then
plot6(value3);
즐거운 하루되세요
> yosong 님이 쓴 글입니다.
> 제목 : 수식수정부탁드립니다.
>
안녕하세요 수식수정부탁드립니다.
data12-코스피200
data1-코스피200연결선물
data2,4,5,6,7 콜
data3,8,9,10,11 풋
이렇게 설정되어있을때 등가에 맞는 콜,풋 값을 구하고 있습니다. 다른 글을 보고 수정해 보았는데 값이 빠질때도 많고 잘 안맞는거 같아 도움요청드립니다. 그럼 수고하세요~
var : ATM(0),sum10(0),cnt(0),sum20(0),cnt2(0),sum11(0),sum12(0),sum21(0),sum22(0),VV1(0);
Array : VV[6](0),CC[6](0), VV2[6](0),CC2[6](0);
if (data1(Bdate != Bdate[1])) then
{
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV[2]= iff(StrToNum(RightStr(Data2(SymbolCode),1)) == 5,StrToNum(RightStr(Data2(SymbolCode),3)),StrToNum(RightStr(Data2(SymbolCode),3))+0.5);
CC[2] = Data2(c);
VV[3] = iff(StrToNum(RightStr(Data4(SymbolCode),1)) == 5,StrToNum(RightStr(Data4(SymbolCode),3)),StrToNum(RightStr(Data4(SymbolCode),3))+0.5);
CC[3] = Data4(c);
VV[4] = iff(StrToNum(RightStr(Data5(SymbolCode),1)) == 5,StrToNum(RightStr(Data5(SymbolCode),3)),StrToNum(RightStr(Data5(SymbolCode),3))+0.5);
CC[4] = Data5(c);
VV[5] = iff(StrToNum(RightStr(Data6(SymbolCode),1)) == 5,StrToNum(RightStr(Data6(SymbolCode),3)),StrToNum(RightStr(Data6(SymbolCode),3))+0.5);
CC[5] = Data6(c);
VV[6] = iff(StrToNum(RightStr(Data7(SymbolCode),1)) == 5,StrToNum(RightStr(Data7(SymbolCode),3)),StrToNum(RightStr(Data7(SymbolCode),3))+0.5);
CC[6] = Data7(c);
sum10 = 0;
sum11 = 0;
sum12 = 0;
For cnt = 2 to 6
{
if VV[cnt] == ATM Then
{ sum10 = CC[cnt];}
if VV[cnt] == ATM+2.5 Then
{ sum11 = CC[cnt];}
if VV[cnt] == ATM-2.5 Then
{ sum12 = CC[cnt];}
}
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV2[2] = iff(StrToNum(RightStr(Data3(SymbolCode),1)) == 5,StrToNum(RightStr(Data3(SymbolCode),3)),StrToNum(RightStr(Data3(SymbolCode),3))+0.5);
CC2[2] = Data3(c);
VV2[3] = iff(StrToNum(RightStr(Data8(SymbolCode),1)) == 5,StrToNum(RightStr(Data8(SymbolCode),3)),StrToNum(RightStr(Data8(SymbolCode),3))+0.5);
CC2[3] = Data8(c);
VV2[4] = iff(StrToNum(RightStr(Data9(SymbolCode),1)) == 5,StrToNum(RightStr(Data9(SymbolCode),3)),StrToNum(RightStr(Data9(SymbolCode),3))+0.5);
CC2[4] = Data9(c);
VV2[5] = iff(StrToNum(RightStr(Data10(SymbolCode),1)) == 5,StrToNum(RightStr(Data10(SymbolCode),3)),StrToNum(RightStr(Data10(SymbolCode),3))+0.5);
CC2[5] = Data10(c);
VV2[6] = iff(StrToNum(RightStr(Data11(SymbolCode),1)) == 5,StrToNum(RightStr(Data11(SymbolCode),3)),StrToNum(RightStr(Data11(SymbolCode),3))+0.5);
CC2[6] = Data11(c);
sum20 = 0;
sum21 = 0;
sum22 = 0;
For cnt2 = 2 to 6
{
if VV2[cnt2] == ATM Then
{ sum20 = CC2[cnt2];}
if VV2[cnt2] == ATM+2.5 Then
{ sum21 =CC2[cnt2];}
if VV2[cnt2] == ATM-2.5 Then
{sum22 = CC2[cnt2];}
}
}
예스스탁
예스스탁 답변
2022-09-27 08:39:24
안녕하세요
예스스탁입니다.
콜풋종목은 첫봉기준으로 구하고
이후에는 해당 콜풋의 종가를 그리게 수정했습니다.
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]);
즐거운 하루되세요
> yosong 님이 쓴 글입니다.
> 제목 : Re : Re : 수식수정부탁드립니다.
> 안녕하세요. 답변주신 내용은 잘 보았습니다.
그런데 등가가 변경될때 지표가 너무 왔다갔다해서 처음 수식처럼 첫봉기준으로 한번만 등가를 구하고 나머지는 구해진 등가로 값을 받아오고 싶은데 첫봉에 구해진 콜,풋 값만
유지가 되거나 값이 나오지 않아 다시 한번 도움 요청드립니다. 그럼 수고하세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식수정부탁드립니다.
> 안녕하세요
예스스탁입니다.
식을 수정했습니다.
작성하신 수식이 첫봉 종가기준입니다.
if data1(Bdate != Bdate[1]) then 조건 제거하시면 봉마다 새로 계산합니다.
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);
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));
#콜종가
CC[2] = Data2(c);
CC[3] = Data4(c);
CC[4] = Data5(c);
CC[5] = Data6(c);
CC[6] = Data7(c);
#풋행사가
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));
#풋가격
PP[2] = Data3(c);
PP[3] = Data8(c);
PP[4] = Data9(c);
PP[5] = Data10(c);
PP[6] = Data11(c);
var1 = 0;
Var2 = 0;
Var3 = 0;
For cnt = 2 to 6
{
if CS[cnt] == ATM Then
var1 = CC[cnt];
if CS[cnt] == ATM+2.5 Then
Var2 = CC[cnt];
if CS[cnt] == ATM-2.5 Then
Var3 = CC[cnt];
if PS[cnt] == ATM Then
value1 = PP[cnt];
if PS[cnt] == ATM+2.5 Then
Value2 = PP[cnt];
if PS[cnt] == ATM-2.5 Then
Value3 = PP[cnt];
}
}
if var1 > 0 Then
Plot1(var1);
if Var2 > 0 Then
Plot2(Var2);
if Var3 > 0 Then
Plot3(Var3);
if value1 > 0 then
plot4(value1);
if value2 > 0 then
plot5(value2);
if value3 > 0 then
plot6(value3);
즐거운 하루되세요
> yosong 님이 쓴 글입니다.
> 제목 : 수식수정부탁드립니다.
>
안녕하세요 수식수정부탁드립니다.
data12-코스피200
data1-코스피200연결선물
data2,4,5,6,7 콜
data3,8,9,10,11 풋
이렇게 설정되어있을때 등가에 맞는 콜,풋 값을 구하고 있습니다. 다른 글을 보고 수정해 보았는데 값이 빠질때도 많고 잘 안맞는거 같아 도움요청드립니다. 그럼 수고하세요~
var : ATM(0),sum10(0),cnt(0),sum20(0),cnt2(0),sum11(0),sum12(0),sum21(0),sum22(0),VV1(0);
Array : VV[6](0),CC[6](0), VV2[6](0),CC2[6](0);
if (data1(Bdate != Bdate[1])) then
{
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV[2]= iff(StrToNum(RightStr(Data2(SymbolCode),1)) == 5,StrToNum(RightStr(Data2(SymbolCode),3)),StrToNum(RightStr(Data2(SymbolCode),3))+0.5);
CC[2] = Data2(c);
VV[3] = iff(StrToNum(RightStr(Data4(SymbolCode),1)) == 5,StrToNum(RightStr(Data4(SymbolCode),3)),StrToNum(RightStr(Data4(SymbolCode),3))+0.5);
CC[3] = Data4(c);
VV[4] = iff(StrToNum(RightStr(Data5(SymbolCode),1)) == 5,StrToNum(RightStr(Data5(SymbolCode),3)),StrToNum(RightStr(Data5(SymbolCode),3))+0.5);
CC[4] = Data5(c);
VV[5] = iff(StrToNum(RightStr(Data6(SymbolCode),1)) == 5,StrToNum(RightStr(Data6(SymbolCode),3)),StrToNum(RightStr(Data6(SymbolCode),3))+0.5);
CC[5] = Data6(c);
VV[6] = iff(StrToNum(RightStr(Data7(SymbolCode),1)) == 5,StrToNum(RightStr(Data7(SymbolCode),3)),StrToNum(RightStr(Data7(SymbolCode),3))+0.5);
CC[6] = Data7(c);
sum10 = 0;
sum11 = 0;
sum12 = 0;
For cnt = 2 to 6
{
if VV[cnt] == ATM Then
{ sum10 = CC[cnt];}
if VV[cnt] == ATM+2.5 Then
{ sum11 = CC[cnt];}
if VV[cnt] == ATM-2.5 Then
{ sum12 = CC[cnt];}
}
ATM = data12(Floor(data12(c)/2.5)*2.5);
VV2[2] = iff(StrToNum(RightStr(Data3(SymbolCode),1)) == 5,StrToNum(RightStr(Data3(SymbolCode),3)),StrToNum(RightStr(Data3(SymbolCode),3))+0.5);
CC2[2] = Data3(c);
VV2[3] = iff(StrToNum(RightStr(Data8(SymbolCode),1)) == 5,StrToNum(RightStr(Data8(SymbolCode),3)),StrToNum(RightStr(Data8(SymbolCode),3))+0.5);
CC2[3] = Data8(c);
VV2[4] = iff(StrToNum(RightStr(Data9(SymbolCode),1)) == 5,StrToNum(RightStr(Data9(SymbolCode),3)),StrToNum(RightStr(Data9(SymbolCode),3))+0.5);
CC2[4] = Data9(c);
VV2[5] = iff(StrToNum(RightStr(Data10(SymbolCode),1)) == 5,StrToNum(RightStr(Data10(SymbolCode),3)),StrToNum(RightStr(Data10(SymbolCode),3))+0.5);
CC2[5] = Data10(c);
VV2[6] = iff(StrToNum(RightStr(Data11(SymbolCode),1)) == 5,StrToNum(RightStr(Data11(SymbolCode),3)),StrToNum(RightStr(Data11(SymbolCode),3))+0.5);
CC2[6] = Data11(c);
sum20 = 0;
sum21 = 0;
sum22 = 0;
For cnt2 = 2 to 6
{
if VV2[cnt2] == ATM Then
{ sum20 = CC2[cnt2];}
if VV2[cnt2] == ATM+2.5 Then
{ sum21 =CC2[cnt2];}
if VV2[cnt2] == ATM-2.5 Then
{sum22 = CC2[cnt2];}
}
}