커뮤니티
옵션 수식으로 변경 부탁합니다.
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");
다음글
이전글