커뮤니티

옵션 수식으로 변경 부탁합니다.

프로필 이미지
코스모
2016-05-23 10:25:03
121
글번호 98333
답변완료
다음의 수식은 선물 분봉차트에서 일봉차트의 스토캐스틱을 계산하여 작성한 수식입니다. 옵션차트를 기본차트로 하고 이 수식을 참조차트로 변경하여 다음과 같이 구현 하고자 합니다. 1. 옵션차트(기본차트)와 선물차트(참조차트)를 동일한 주기의 분봉(5분)으로 열고, 2. 참조차트의 선물 일봉 스토캐스틱(10.6.6)이 cross up이면 풋옵션 매도, 3. 스토캐스틱(5.3.3)이 cross down이면 풋옵션 청산. 즉, 단순히 옵션차트에서 선물일봉차트를 참조차트로 적용하면 민감한 옵션에서 시간차를 피할 수 없기때문인데 가능할지 모르겠습니다. 만약 가능하지 않다면 다른 방법은 없을까요? 항상 도움을 주셔서 감사합니다. input : Period(10), Period1(6), Period2(6), sto1(5),sto2(3),sto3(3); var : cnt(0); var : shighVal(0), slowVal(0), sFK(0), sSK(0), sSD(0); var : sEp1(0), sEp2(0), sPreSK(0), sPreSD(0); var : highVal(0), lowVal(0), FK(0), SK(0), SD(0); var : Ep1(0), Ep2(0), PreSK(0), PreSD(0); #일봉 스토 5-3-3 shighVal = dayhigh(0); slowVal = daylow(0); for cnt = 0 to sto1-1 { if dayHigh(cnt) > shighVal then shighVal = dayhigh(cnt); if dayLow(cnt) < slowVal then slowVal = dayLow(cnt); } sfK = (C-slowVal)/(shighVal-slowVal)*100; sEp1 = 2/(sto2+1); sEp2 = 2/(sto3+1); if date != date[1] then { sPreSK = sSK[1]; sPreSD = sSD[1]; } sSK = sFK * sEP1 + sPreSK * (1-sEP1); sSD = sSK * sEP2 + sPreSD * (1-sEP2); #일봉 스토 10-6-6 highVal = dayhigh(0); lowVal = daylow(0); for cnt = 0 to Period-1 { if dayHigh(cnt) > highVal then highVal = dayhigh(cnt); if dayLow(cnt) < lowVal then lowVal = dayLow(cnt); } fK = (C-lowVal)/(highVal-lowVal)*100; Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); if date != date[1] then { PreSK = SK[1]; PreSD = SD[1]; Condition1 = false; Condition2 = false; } SK = FK * EP1 + PreSK * (1-EP1); SD = SK * EP2 + PreSD * (1-EP2); if Condition1 == false and sk > Sd and preSK < preSD and PreSK > 0 and PreSD > 0 Then{ Condition1 = true; sell("sP10"); } if MarketPosition == -1 and ssk < sSd and spreSK > spreSD and sPreSK > 0 and sPreSD > 0 Then exitshort("xP5");
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-23 14:01:36

안녕하세요 예스스탁입니다. 참조데이터에서 일봉값을 계산하게 변경했습니다. input : Period(10), Period1(6), Period2(6),sto1(5),sto2(3),sto3(3); var : cnt(0,data2),cond1(false,data2),cond2(false,data2); var : shighVal(0,data2), slowVal(0,data2), sFK(0,data2), sSK(0,data2), sSD(0,data2); var : sEp1(0,data2), sEp2(0,data2), sPreSK(0,data2), sPreSD(0,data2); var : highVal(0,data2), lowVal(0,data2), FK(0,data2), SK(0,data2), SD(0,data2); var : Ep1(0,data2), Ep2(0,data2), PreSK(0,data2), PreSD(0,data2); Array : HH[100](0,data2),LL[100](0,data2),CC[100](0,data2); if data2(date != date[1]) Then{ HH[0] = data2(H); LL[0] = data2(L); for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } sPreSK = sSK[1]; sPreSD = sSD[1]; PreSK = SK[1]; PreSD = SD[1]; Cond1 = false; Cond2 = false; } if HH[sto1-1] > 0 then{ #일봉 스토 5-3-3 shighVal = HH[0]; slowVal = LL[0]; for cnt = 0 to sto1-1 { if HH[cnt] > shighVal then shighVal = HH[cnt]; if LL[cnt] < slowVal then slowVal = LL[cnt]; } sfK = data2((C-slowVal)/(shighVal-slowVal)*100); sEp1 = 2/(sto2+1); sEp2 = 2/(sto3+1); sSK = sFK * sEP1 + sPreSK * (1-sEP1); sSD = sSK * sEP2 + sPreSD * (1-sEP2); } if HH[Period-1] > 0 then{ #일봉 스토 10-6-6 highVal = HH[0]; lowVal = LL[0]; for cnt = 0 to Period-1 { if HH[cnt] > highVal then highVal = HH[cnt]; if LL[cnt] < lowVal then lowVal = LL[cnt]; } fK = data2((C-lowVal)/(highVal-lowVal)*100); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); SK = FK * EP1 + PreSK * (1-EP1); SD = SK * EP2 + PreSD * (1-EP2); } if Cond1 == false and sk > Sd and preSK < preSD and PreSK > 0 and PreSD > 0 Then{ Cond1 = true; sell("sP10"); } if MarketPosition == -1 and ssk < sSd and spreSK > spreSD and sPreSK > 0 and sPreSD > 0 Then exitshort("xP5"); 즐거운 하루되세요 > 코스모 님이 쓴 글입니다. > 제목 : 옵션 수식으로 변경 부탁합니다. > 다음의 수식은 선물 분봉차트에서 일봉차트의 스토캐스틱을 계산하여 작성한 수식입니다. 옵션차트를 기본차트로 하고 이 수식을 참조차트로 변경하여 다음과 같이 구현 하고자 합니다. 1. 옵션차트(기본차트)와 선물차트(참조차트)를 동일한 주기의 분봉(5분)으로 열고, 2. 참조차트의 선물 일봉 스토캐스틱(10.6.6)이 cross up이면 풋옵션 매도, 3. 스토캐스틱(5.3.3)이 cross down이면 풋옵션 청산. 즉, 단순히 옵션차트에서 선물일봉차트를 참조차트로 적용하면 민감한 옵션에서 시간차를 피할 수 없기때문인데 가능할지 모르겠습니다. 만약 가능하지 않다면 다른 방법은 없을까요? 항상 도움을 주셔서 감사합니다. input : Period(10), Period1(6), Period2(6), sto1(5),sto2(3),sto3(3); var : cnt(0); var : shighVal(0), slowVal(0), sFK(0), sSK(0), sSD(0); var : sEp1(0), sEp2(0), sPreSK(0), sPreSD(0); var : highVal(0), lowVal(0), FK(0), SK(0), SD(0); var : Ep1(0), Ep2(0), PreSK(0), PreSD(0); #일봉 스토 5-3-3 shighVal = dayhigh(0); slowVal = daylow(0); for cnt = 0 to sto1-1 { if dayHigh(cnt) > shighVal then shighVal = dayhigh(cnt); if dayLow(cnt) < slowVal then slowVal = dayLow(cnt); } sfK = (C-slowVal)/(shighVal-slowVal)*100; sEp1 = 2/(sto2+1); sEp2 = 2/(sto3+1); if date != date[1] then { sPreSK = sSK[1]; sPreSD = sSD[1]; } sSK = sFK * sEP1 + sPreSK * (1-sEP1); sSD = sSK * sEP2 + sPreSD * (1-sEP2); #일봉 스토 10-6-6 highVal = dayhigh(0); lowVal = daylow(0); for cnt = 0 to Period-1 { if dayHigh(cnt) > highVal then highVal = dayhigh(cnt); if dayLow(cnt) < lowVal then lowVal = dayLow(cnt); } fK = (C-lowVal)/(highVal-lowVal)*100; Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); if date != date[1] then { PreSK = SK[1]; PreSD = SD[1]; Condition1 = false; Condition2 = false; } SK = FK * EP1 + PreSK * (1-EP1); SD = SK * EP2 + PreSD * (1-EP2); if Condition1 == false and sk > Sd and preSK < preSD and PreSK > 0 and PreSD > 0 Then{ Condition1 = true; sell("sP10"); } if MarketPosition == -1 and ssk < sSd and spreSK > spreSD and sPreSK > 0 and sPreSD > 0 Then exitshort("xP5");