커뮤니티

아래 수식 수정 부탁 드립니다.

프로필 이미지
천장지구
2024-06-20 12:23:22
834
글번호 180818
답변완료
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); }