커뮤니티
에러
2014-10-14 23:38:13
174
글번호 79407
전에 아래의 문의와 수식을 받았는데요. 잘 쓰고 있다가 금월이 되니 목요일이 휴일인 관계로
수요일이 만기가 되고 새로운 월물이 금요일이 되어 버렸습니다.
그런 연유로 그런것 같은데요. 아직도 전월이 계속되는 지표로 나오네요. 이것을 수정할 방법이 없는지요? 만기일이 휴일이 되면 앞으로도 계속 이렇게 되나요?
그림 1
안녕하세요
예스스탁입니다.
평균부분이 다른방식이어서 수정했습니다.
아래식 적용하시면 됩니다.
1.주종목(data1)
var : dcnt(0,data1),V1(0,data1),H1(0,data1),L1(0,data1);
var : H2(0,data1),L2(0,data1),HLsum(0,data1),Csum(0,data1),HLmav(0,data1),Cmav(0,data1);
var : nday(0,data1),week(0,data1),cond1(false,data1);
nday = data1(date - int(date/100)*100);
week = data1(DayOfWeek(date));
if nday >= 8 and nday <= 14 and week == 4 then
Cond1 = True;
Else
Cond1 = false;
if data1((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data1(H);
L1 = data1(L);
H2 = H1[1];
L2 = L1[1];
}
if data1(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data1((highD(1)+LowD(1))/2);
Csum = Csum + data1(CloseD(1));
}
}
HLmav = (HLsum+data1((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data1(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data1(LowD(0));
if data1(H) > H1 Then
H1 = data1(H);
if data1(L) < L1 Then
L1 = data1(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
2. 참조데이터(data2)
var : dcnt(0,data2),V1(0,data2),H1(0,data2),L1(0,data2);
var : H2(0,data2),L2(0,data2),HLsum(0,data2),Csum(0,data2),HLmav(0,data2),Cmav(0,data2);
var : nday(0,data2),week(0,data2),cond1(false,data2);
nday = data2(date - int(date/100)*100);
week = data2(DayOfWeek(date));
if nday >= 8 and nday <= 14 and week == 4 then
Cond1 = True;
Else
Cond1 = false;
if data2((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data2(H);
L1 = data2(L);
H2 = H1[1];
L2 = L1[1];
}
if data2(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data2((highD(1)+LowD(1))/2);
Csum = Csum + data2(CloseD(1));
}
}
HLmav = (HLsum+data2((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data2(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data2(LowD(0));
if data2(H) > H1 Then
H1 = data2(H);
if data2(L) < L1 Then
L1 = data2(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
즐거운 하루되세요
> khkwon 님이 쓴 글입니다.
> 제목 : 옵션지표 재문의 36867에 대한 재문의
> . > 제목 : 옵션에서 특정값 구하기
> 안녕하세요? 옵션 분봉차트에서 다음값 구현이 가능한지요?
1. 당월물 시작일의 저가
2. 당월물 전체의 최고값과 최저값
3. 당월물 일봉 고/저가 평균값 아니면 종가기준 평균값
4. 전월 전체 최고값과 최저값.
또 보조차트 data2에 대한 1,2,3,4 값을 구하는 수식을 부탁합니다.
감사합니다.
윗 질문에 대한 답이 올라왔는데 원하는 답이 아닙니다, 구체적으로 설명을 드리면
참고로 당월물 콜풋 260기준으로 하면
1. 시작일 6/13일 저가는 콜 2.26 풋 2.6이 되고요.
2. 당월중 콜의 최고값은 6/13고가 3.9이고 최저값은 6/20저가 0.97 풋은 6/20고가 5.5, 7/4저
가 0.53
3. 당월 거래평균가를 알고 싶은데 평균값을 구하는 방식을 매일 (고가+저가)/2와 종가기준
으로 계산하는 방식 2가지로 부탁하고요.
4. 콜 260과 풋 260의 전월중 최고치와 최저치 즉 콜260은 5/22고가 7.85, 5/12저가 1.85
풋 260은 5/9고가 8.0, 6/11저가 1.76 이렇게 되는 거지요.
주차트를 콜로 띄우면 콜에 대한 1.2.3,4 보조차트를 풋으로 띄우면 풋에대한 1,2,3,4 각각 값이 나오겠지요. 이수식을 부탁합니다. 감사합니다.
답변 1
예스스탁 예스스탁 답변
2014-10-15 11:14:44
안녕하세요
예스스탁입니다.
수식에서 만기일은 봉의 날짜를 이용해 두번째 목요일로 계산을 합니다.
두번째 목요일이 휴일이면 만기일이 전일이 되는데 수식에서는 해당 부분이
인식이 되지 않아 다음날로 인식합니다.
데이터에 휴일을 알려주는 데이터가 없어 로직안에서 계산이 가능하지 않습니다.
아래와 같이 if문에 날짜를 나열해 지정해 주는 방법외에는 없습니다.
cond1의 if문 참고하시기 바랍니다.
순연될 날을 직전 지정해 주셔야 합니다.
1.
var : dcnt(0,data1),V1(0,data1),H1(0,data1),L1(0,data1);
var : H2(0,data1),L2(0,data1),HLsum(0,data1),Csum(0,data1),HLmav(0,data1),Cmav(0,data1);
var : nday(0,data1),week(0,data1),cond1(false,data1);
nday = data1(date - int(date/100)*100);
week = data1(DayOfWeek(date));
if (nday >= 8 and nday <= 14 and week == 4) or data1(sdate == 20141008) then
Cond1 = True;
Else
Cond1 = false;
if data1((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data1(H);
L1 = data1(L);
H2 = H1[1];
L2 = L1[1];
}
if data1(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data1((highD(1)+LowD(1))/2);
Csum = Csum + data1(CloseD(1));
}
}
HLmav = (HLsum+data1((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data1(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data1(LowD(0));
if data1(H) > H1 Then
H1 = data1(H);
if data1(L) < L1 Then
L1 = data1(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
2.
var : dcnt(0,data2),V1(0,data2),H1(0,data2),L1(0,data2);
var : H2(0,data2),L2(0,data2),HLsum(0,data2),Csum(0,data2),HLmav(0,data2),Cmav(0,data2);
var : nday(0,data2),week(0,data2),cond1(false,data2);
nday = data2(date - int(date/100)*100);
week = data2(DayOfWeek(date));
if nday >= 8 and nday <= 14 and week == 4 or data2(sdate == 20141008) then
Cond1 = True;
Else
Cond1 = false;
if data2((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data2(H);
L1 = data2(L);
H2 = H1[1];
L2 = L1[1];
}
if data2(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data2((highD(1)+LowD(1))/2);
Csum = Csum + data2(CloseD(1));
}
}
HLmav = (HLsum+data2((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data2(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data2(LowD(0));
if data2(H) > H1 Then
H1 = data2(H);
if data2(L) < L1 Then
L1 = data2(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
즐거운 하루되세요
> khkwon 님이 쓴 글입니다.
> 제목 : 에러
> 전에 아래의 문의와 수식을 받았는데요. 잘 쓰고 있다가 금월이 되니 목요일이 휴일인 관계로
수요일이 만기가 되고 새로운 월물이 금요일이 되어 버렸습니다.
그런 연유로 그런것 같은데요. 아직도 전월이 계속되는 지표로 나오네요. 이것을 수정할 방법이 없는지요? 만기일이 휴일이 되면 앞으로도 계속 이렇게 되나요?
그림 1
안녕하세요
예스스탁입니다.
평균부분이 다른방식이어서 수정했습니다.
아래식 적용하시면 됩니다.
1.주종목(data1)
var : dcnt(0,data1),V1(0,data1),H1(0,data1),L1(0,data1);
var : H2(0,data1),L2(0,data1),HLsum(0,data1),Csum(0,data1),HLmav(0,data1),Cmav(0,data1);
var : nday(0,data1),week(0,data1),cond1(false,data1);
nday = data1(date - int(date/100)*100);
week = data1(DayOfWeek(date));
if nday >= 8 and nday <= 14 and week == 4 then
Cond1 = True;
Else
Cond1 = false;
if data1((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data1(H);
L1 = data1(L);
H2 = H1[1];
L2 = L1[1];
}
if data1(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data1((highD(1)+LowD(1))/2);
Csum = Csum + data1(CloseD(1));
}
}
HLmav = (HLsum+data1((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data1(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data1(LowD(0));
if data1(H) > H1 Then
H1 = data1(H);
if data1(L) < L1 Then
L1 = data1(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
2. 참조데이터(data2)
var : dcnt(0,data2),V1(0,data2),H1(0,data2),L1(0,data2);
var : H2(0,data2),L2(0,data2),HLsum(0,data2),Csum(0,data2),HLmav(0,data2),Cmav(0,data2);
var : nday(0,data2),week(0,data2),cond1(false,data2);
nday = data2(date - int(date/100)*100);
week = data2(DayOfWeek(date));
if nday >= 8 and nday <= 14 and week == 4 then
Cond1 = True;
Else
Cond1 = false;
if data2((Cond1 == false and cond1[1] == true and date != date[1]) or index == 0) Then{
dcnt = 0;
HLsum = 0;
Csum = 0;
H1 = data2(H);
L1 = data2(L);
H2 = H1[1];
L2 = L1[1];
}
if data2(date != date[1]) Then{
dcnt = dcnt+1;
if dcnt >= 2 Then{
HLsum = HLsum + data2((highD(1)+LowD(1))/2);
Csum = Csum + data2(CloseD(1));
}
}
HLmav = (HLsum+data2((highD(0)+LowD(0))/2))/Dcnt;
Cmav = (Csum+data2(CloseD(0)))/Dcnt;
if dcnt == 1 Then
v1 = data2(LowD(0));
if data2(H) > H1 Then
H1 = data2(H);
if data2(L) < L1 Then
L1 = data2(L);
plot1(V1,"당월 시작일저가");
plot2(H1,"당월 최고가");
plot3(L1,"당월 최저가");
plot4(HLmav,"당월평균(고저평균)");
plot5(Cmav,"당월평균(종가)");
plot6(H2,"전월물 최고가");
plot7(L2,"전월물 최저가");
즐거운 하루되세요
> khkwon 님이 쓴 글입니다.
> 제목 : 옵션지표 재문의 36867에 대한 재문의
> . > 제목 : 옵션에서 특정값 구하기
> 안녕하세요? 옵션 분봉차트에서 다음값 구현이 가능한지요?
1. 당월물 시작일의 저가
2. 당월물 전체의 최고값과 최저값
3. 당월물 일봉 고/저가 평균값 아니면 종가기준 평균값
4. 전월 전체 최고값과 최저값.
또 보조차트 data2에 대한 1,2,3,4 값을 구하는 수식을 부탁합니다.
감사합니다.
윗 질문에 대한 답이 올라왔는데 원하는 답이 아닙니다, 구체적으로 설명을 드리면
참고로 당월물 콜풋 260기준으로 하면
1. 시작일 6/13일 저가는 콜 2.26 풋 2.6이 되고요.
2. 당월중 콜의 최고값은 6/13고가 3.9이고 최저값은 6/20저가 0.97 풋은 6/20고가 5.5, 7/4저
가 0.53
3. 당월 거래평균가를 알고 싶은데 평균값을 구하는 방식을 매일 (고가+저가)/2와 종가기준
으로 계산하는 방식 2가지로 부탁하고요.
4. 콜 260과 풋 260의 전월중 최고치와 최저치 즉 콜260은 5/22고가 7.85, 5/12저가 1.85
풋 260은 5/9고가 8.0, 6/11저가 1.76 이렇게 되는 거지요.
주차트를 콜로 띄우면 콜에 대한 1.2.3,4 보조차트를 풋으로 띄우면 풋에대한 1,2,3,4 각각 값이 나오겠지요. 이수식을 부탁합니다. 감사합니다.
다음글