5/27일 옵션 데이터 예시
call ATM(data2) = 당일시가 3.38
call ATM+1(data3) = 당일시가 1.31
call ATM+2(data4) = 당일시가 0.31
put ATM(data7) = 당일시가 0.21
put ATM+1(data8) = 당일시가 0.89
put ATM+2(data9) = 당일시가 2.47
1. 당일 시가 콜옵션 1보다 큰 가격 중에서 가장 작은 가격(종목)을 나타나게 해주세요 예시) data3(o)=1.31
2. 당일 시가 풋옵션 1보다 작은 가격 중에서 가장 큰 가격(종목)을 나타나게 해주세요 예시) data8(o)=0.89
3. 당일 시가 콜옵션 1보다 작은 가격 중에서 가장 큰 가격(종목)을 나타나게 해주세요 예시) data4(o)=0.31
4. 당일 시가 풋옵션 1보다 큰 가격 중에서 가장 작은 가격(종목)을 나타나게 해주세요 예시) data9(o)=2.47
5. 2번,3번 종목 합을 나타나게 해주세요. 예시) data8(o)+data4(o)=1.20(0.89+0.31)
6. 1,2 가격의 차이를 나타나게 해주세요 예시)data3(o)-data8(o)=0.42(1.31-0.89)
7. 3,4 가격의 차이를 나타나게 해주세요 예시)data4(o)-data9(o)=-2.16(0.31-2.47)
아래 수식에서 5번 가격이 잘못 나와서 확인 후 수정 부탁 드리겠습니다.
오늘도 행복한 하루 보내세요.
=====================================================================
Input : CB(1),PB(1);
var : cnt(0),cnt2(0),Cmin1(0),CN1(0),Pmin1(0),PN1(0),Cmin2(0),CN2(0),Pmin2(0),PN2(0);
Array : O1[10](0),O2[10](0),DO1[10](0),DO2[10](0);
Array : Diff[10](0),sumDiff[10](0);
O1[1] = Data2(O);
O1[2] = Data3(O);
O1[3] = Data4(O);
O1[4] = Data5(O);
O1[5] = Data6(O);
O1[6] = Data12(O);
O1[7] = Data14(O);
O1[8] = Data16(O);
DO1[1] = Data2(OpenD(0));
DO1[2] = Data3(OpenD(0));
DO1[3] = Data4(OpenD(0));
DO1[4] = Data5(OpenD(0));
DO1[5] = Data6(OpenD(0));
DO1[6] = Data12(OpenD(0));
DO1[7] = Data14(OpenD(0));
DO1[8] = Data16(OpenD(0));
O2[1] = Data7(O);
O2[2] = Data8(O);
O2[3] = Data9(O);
O2[4] = Data10(O);
O2[5] = Data11(O);
O2[6] = Data13(O);
O2[7] = Data15(O);
O2[8] = Data17(O);
DO2[1] = Data7(OpenD(0));
DO2[2] = Data8(OpenD(0));
DO2[3] = Data9(OpenD(0));
DO2[4] = Data10(OpenD(0));
DO2[5] = Data11(OpenD(0));
DO2[6] = Data13(OpenD(0));
DO2[7] = Data15(OpenD(0));
DO2[8] = Data17(OpenD(0));
Diff[1] = DO1[1]-DO2[1];
Diff[2] = DO1[2]-DO2[2];
Diff[3] = DO1[3]-DO2[3];
Diff[4] = DO1[4]-DO2[4];
Diff[5] = DO1[5]-DO2[5];
Diff[6] = DO1[6]-DO2[6];
Diff[7] = DO1[7]-DO2[7];
Diff[8] = DO1[8]-DO2[8];
SumDiff[1] = (DO1[1]+DO2[1]);
SumDiff[2] = (DO1[2]+DO2[2]);
SumDiff[3] = (DO1[3]+DO2[3]);
SumDiff[4] = (DO1[4]+DO2[4]);
SumDiff[5] = (DO1[5]+DO2[5]);
SumDiff[6] = (DO1[6]+DO2[6]);
SumDiff[7] = (DO1[7]+DO2[7]);
SumDiff[8] = (DO1[8]+DO2[8]);
Cmin1 = 0;
CN1 = 0;
Pmin1 = 0;
PN1 = 0;
Cmin2 = 0;
CN2 = 0;
Pmin2 = 0;
PN2 = 0;
For cnt = 1 to 8
{
if DO1[cnt] > CB and (Cmin1 == 0 or (Cmin1 > CB and DO1[cnt] < Cmin1)) Then
{
Cmin1 = DO1[cnt];
CN1 = cnt;
}
if DO2[cnt] < CB and (Pmin1 == 0 or (Pmin1 < CB and DO2[cnt] > Pmin1)) Then
{
Pmin1 = DO2[cnt];
PN1 = cnt;
}
if DO1[cnt] < PB and (Cmin2 == 0 or (Cmin2 < PB and DO1[cnt] > Cmin2)) Then
{
Cmin2 = DO1[cnt];
CN2 = cnt;
}
if DO2[cnt] > PB and (Pmin2 == 0 or (Pmin2 > PB and DO2[cnt] < Pmin2)) Then
{
Pmin2 = DO2[cnt];
PN2 = cnt;
}
}
if (CN1 != 0) and (PN1 != 0) and (CN2 != 0) and (PN2 != 0) Then
{
Plot1((MAX(O1[CN1],O2[PN1])),"옵션1",Red);
Plot2((MAX(O1[CN2],O2[PN2])),"옵션2",Blue);
Plot3((MAX(O1[CN2],O2[PN1])),"최소옵션",black);
PlotBaseLine1((O1[CN2]+O2[PN1]),"최소옵션합",Magenta);
PlotBaseLine2((DO1[CN1]-DO2[PN1]),"콜강세합",Green);
PlotBaseLine3((DO1[CN2]-DO2[PN2]),"풋강세합",LYellow);
}
답변 1
예스스탁
예스스탁 답변
2024-06-21 14:07:33
안녕하세요
예스스탁입니다.
Input : CB(1),PB(1);
var : cnt(0);
Array : O1[10](0),DO1[10](0),O2[10](0),DO2[10](0);
O1[1] = Data2(O);
O1[2] = Data3(O);
O1[3] = Data4(O);
O1[4] = Data5(O);
O1[5] = Data6(O);
O1[6] = Data12(O);
O1[7] = Data14(O);
O1[8] = Data16(O);
DO1[1] = Data2(OpenD(0));
DO1[2] = Data3(OpenD(0));
DO1[3] = Data4(OpenD(0));
DO1[4] = Data5(OpenD(0));
DO1[5] = Data6(OpenD(0));
DO1[6] = Data12(OpenD(0));
DO1[7] = Data14(OpenD(0));
DO1[8] = Data16(OpenD(0));
O2[1] = Data7(O);
O2[2] = Data8(O);
O2[3] = Data9(O);
O2[4] = Data10(O);
O2[5] = Data11(O);
O2[6] = Data13(O);
O2[7] = Data15(O);
O2[8] = Data17(O);
DO2[1] = Data7(OpenD(0));
DO2[2] = Data8(OpenD(0));
DO2[3] = Data9(OpenD(0));
DO2[4] = Data10(OpenD(0));
DO2[5] = Data11(OpenD(0));
DO2[6] = Data13(OpenD(0));
DO2[7] = Data15(OpenD(0));
DO2[8] = Data17(OpenD(0));
var1 = 0;
Var2 = 0;
Var3 = 0;
Var4 = 0;
For cnt = 1 to 3
{
if DO1[cnt] > CB and (var1 == 0 or (var1 > 0 and DO1[cnt] < var1)) Then
var1 = DO1[cnt];
if DO2[cnt] < PB and (var2 == 0 or (var2 > 0 and DO2[cnt] > var2)) Then
var2 = DO2[cnt];
if DO1[cnt] < CB and (var3 == 0 or (var3 > 0 and DO1[cnt] > var3)) Then
var3 = DO1[cnt];
if DO2[cnt] > PB and (var4 == 0 or (var4 > 0 and DO2[cnt] < var4)) Then
var4 = DO2[cnt];
}
if var1 > 0 Then
Plot1(var1);
if var2 > 0 Then
Plot2(var2);
if var3 > 0 Then
Plot3(var3);
if var4 > 0 Then
Plot4(var4);
if Var2 > 0 and Var3 > 0 Then
plot5(Var2-Var3);
if Var1 > 0 and Var2 > 0 Then
plot6(Var1-Var2);
if Var3 > 0 and Var4 > 0 Then
plot7(Var3-Var4);
즐거운 하루되세요
> 천장지구 님이 쓴 글입니다.
> 제목 : 아래 수식 수정 부탁 드립니다.
> 5/27일 옵션 데이터 예시
call ATM(data2) = 당일시가 3.38
call ATM+1(data3) = 당일시가 1.31
call ATM+2(data4) = 당일시가 0.31
put ATM(data7) = 당일시가 0.21
put ATM+1(data8) = 당일시가 0.89
put ATM+2(data9) = 당일시가 2.47
1. 당일 시가 콜옵션 1보다 큰 가격 중에서 가장 작은 가격(종목)을 나타나게 해주세요 예시) data3(o)=1.31
2. 당일 시가 풋옵션 1보다 작은 가격 중에서 가장 큰 가격(종목)을 나타나게 해주세요 예시) data8(o)=0.89
3. 당일 시가 콜옵션 1보다 작은 가격 중에서 가장 큰 가격(종목)을 나타나게 해주세요 예시) data4(o)=0.31
4. 당일 시가 풋옵션 1보다 큰 가격 중에서 가장 작은 가격(종목)을 나타나게 해주세요 예시) data9(o)=2.47
5. 2번,3번 종목 합을 나타나게 해주세요. 예시) data8(o)+data4(o)=1.20(0.89+0.31)
6. 1,2 가격의 차이를 나타나게 해주세요 예시)data3(o)-data8(o)=0.42(1.31-0.89)
7. 3,4 가격의 차이를 나타나게 해주세요 예시)data4(o)-data9(o)=-2.16(0.31-2.47)
아래 수식에서 5번 가격이 잘못 나와서 확인 후 수정 부탁 드리겠습니다.
오늘도 행복한 하루 보내세요.
=====================================================================
Input : CB(1),PB(1);
var : cnt(0),cnt2(0),Cmin1(0),CN1(0),Pmin1(0),PN1(0),Cmin2(0),CN2(0),Pmin2(0),PN2(0);
Array : O1[10](0),O2[10](0),DO1[10](0),DO2[10](0);
Array : Diff[10](0),sumDiff[10](0);
O1[1] = Data2(O);
O1[2] = Data3(O);
O1[3] = Data4(O);
O1[4] = Data5(O);
O1[5] = Data6(O);
O1[6] = Data12(O);
O1[7] = Data14(O);
O1[8] = Data16(O);
DO1[1] = Data2(OpenD(0));
DO1[2] = Data3(OpenD(0));
DO1[3] = Data4(OpenD(0));
DO1[4] = Data5(OpenD(0));
DO1[5] = Data6(OpenD(0));
DO1[6] = Data12(OpenD(0));
DO1[7] = Data14(OpenD(0));
DO1[8] = Data16(OpenD(0));
O2[1] = Data7(O);
O2[2] = Data8(O);
O2[3] = Data9(O);
O2[4] = Data10(O);
O2[5] = Data11(O);
O2[6] = Data13(O);
O2[7] = Data15(O);
O2[8] = Data17(O);
DO2[1] = Data7(OpenD(0));
DO2[2] = Data8(OpenD(0));
DO2[3] = Data9(OpenD(0));
DO2[4] = Data10(OpenD(0));
DO2[5] = Data11(OpenD(0));
DO2[6] = Data13(OpenD(0));
DO2[7] = Data15(OpenD(0));
DO2[8] = Data17(OpenD(0));
Diff[1] = DO1[1]-DO2[1];
Diff[2] = DO1[2]-DO2[2];
Diff[3] = DO1[3]-DO2[3];
Diff[4] = DO1[4]-DO2[4];
Diff[5] = DO1[5]-DO2[5];
Diff[6] = DO1[6]-DO2[6];
Diff[7] = DO1[7]-DO2[7];
Diff[8] = DO1[8]-DO2[8];
SumDiff[1] = (DO1[1]+DO2[1]);
SumDiff[2] = (DO1[2]+DO2[2]);
SumDiff[3] = (DO1[3]+DO2[3]);
SumDiff[4] = (DO1[4]+DO2[4]);
SumDiff[5] = (DO1[5]+DO2[5]);
SumDiff[6] = (DO1[6]+DO2[6]);
SumDiff[7] = (DO1[7]+DO2[7]);
SumDiff[8] = (DO1[8]+DO2[8]);
Cmin1 = 0;
CN1 = 0;
Pmin1 = 0;
PN1 = 0;
Cmin2 = 0;
CN2 = 0;
Pmin2 = 0;
PN2 = 0;
For cnt = 1 to 8
{
if DO1[cnt] > CB and (Cmin1 == 0 or (Cmin1 > CB and DO1[cnt] < Cmin1)) Then
{
Cmin1 = DO1[cnt];
CN1 = cnt;
}
if DO2[cnt] < CB and (Pmin1 == 0 or (Pmin1 < CB and DO2[cnt] > Pmin1)) Then
{
Pmin1 = DO2[cnt];
PN1 = cnt;
}
if DO1[cnt] < PB and (Cmin2 == 0 or (Cmin2 < PB and DO1[cnt] > Cmin2)) Then
{
Cmin2 = DO1[cnt];
CN2 = cnt;
}
if DO2[cnt] > PB and (Pmin2 == 0 or (Pmin2 > PB and DO2[cnt] < Pmin2)) Then
{
Pmin2 = DO2[cnt];
PN2 = cnt;
}
}
if (CN1 != 0) and (PN1 != 0) and (CN2 != 0) and (PN2 != 0) Then
{
Plot1((MAX(O1[CN1],O2[PN1])),"옵션1",Red);
Plot2((MAX(O1[CN2],O2[PN2])),"옵션2",Blue);
Plot3((MAX(O1[CN2],O2[PN1])),"최소옵션",black);
PlotBaseLine1((O1[CN2]+O2[PN1]),"최소옵션합",Magenta);
PlotBaseLine2((DO1[CN1]-DO2[PN1]),"콜강세합",Green);
PlotBaseLine3((DO1[CN2]-DO2[PN2]),"풋강세합",LYellow);
}