커뮤니티
지표 수식 질문드립니다.
2018-04-20 13:53:07
144
글번호 118368
안녕하세요, 어제 지표수식 관련 질문을 올렸었으나 해당 수식을 만들기 어렵다는 답변을 받았습니다. 질문은 다음과 같습니다.
----------------------------------------------------------------------------------------
분봉 차트에 현재가에 따라 호가창에 보여지는 매수 10호가와 매도 10호가의 범위를 표현하고 싶습니다. 가령, 현재가가 800원이면 차트에 매도 10호가인 809원과 매수 10호가인 790원을 표현하고 싶습니다. 문제는 호가단위가 변하는 지점인 천원, 5천원, 만원, 5만원, 80만원 등의 지점을 기준으로 하여 전후 10 호가에 대해서는 별도로 수식을 작성해야 한다는 것입니다. 가령, 현재가가 995원인 경우 매도호가를 구할 때 단순 계산으로 995+10이라고 하면 안 되고 995+4와 1000+50으로 나눠서 표시해야 실제 호가창과 같습니다. 반대로 가격이 1020원인 경우, 매수호가를 구할 때 1020-20과 1000-8을 나눠서 표시해야 실제 호가창과 같게 표시됩니다. 이 것을 각 호가단위 변동구간마다 고려해서 호가단위를 표시할 수 있는 식을 구현해주실 수 있나요?
----------------------------------------------------------------------------------------
답변을 받고 제가 지표수식을 대강 만들어봤는데요, 제가 만든 지표식은 다음과 같습니다.
var : maxprice(0), minprice(0), idx(0);
if c <= 990 then
{maxprice = c+10;
minprice = c-10;}
if 1050 < c and c <= 4950 then
{maxprice = c+50;
minprice = c-50;}
if 5100 < c and c <= 9900 then
{maxprice = c+100;
minprice = c-100;}
if 10500 < c and c <= 49500 then
{maxprice = c+500;
minprice = c-500;}
if 51000 < c and c <= 99000 then
{maxprice = c+1000;
minprice = c-1000;}
if 105000 < c and c <= 495000 then
{maxprice = c+5000;
minprice = c-5000;}
if 510000 < c then
{maxprice = c+10000;
minprice = c-10000;}
for idx = 1 to 10
{if 990+idx == c then
maxprice = 1000+5*(c-990);
minprice = c-10;}
{if 1000+5*idx == c then
maxprice = c+50;
minprice = 1000-(10-(c-1000)/5);}
{if 4950+5*idx == c then
maxprice = 5000+10*(10-(5000-c)/5);
minprice = c-50;}
{if 5000+10*idx == c then
maxprice = c+100;
minprice = 5000-5*(10-(c-5000)/10);}
{if 9900+10*idx == c then
maxprice = 10000+50*(10-(10000-c)/10);
minprice = c-100;}
{if 10000+50*idx == c then
maxprice = c+500;
minprice = 10000-10*(10-(c-10000)/50);}
{if 49500+50*idx == c then
maxprice = 50000+100*(10-(50000-c)/50);
minprice = c-500;}
{if 50000+100*idx == c then
maxprice = c+1000;
minprice = 50000-50*(10-(c-50000)/100);}
{if 99000+100*idx == c then
maxprice = 100000+500*(10-(100000-c)/100);
minprice = c-1000;}
{if 100000+500*idx == c then
maxprice = c+5000;
minprice = 100000-100*(10-(c-100000)/500);}
{if 495000+500*idx == c then
maxprice = 500000+1000*(10-(500000-c)/500);
minprice = c-5000;}
{if 500000+1000*idx == c Then
maxprice = c+10000;
minprice = 500000-500*(10-(c-500000)/1000);}
plot1(maxprice);
plot2(minprice);
그런데 제가 만든 지표를 적용시켜보니 두 가지 문제가 발생합니다. 첫째, 호가단위 변동구간을 전후한 지점에서의 매도 10호가가 실제 호가와 너무나 맞지 않게 표시됩니다(호가단위 변동구간을 제외한 지점에서는 제대로 표시됩니다). 둘째, 매수 10호가는 전체 구간에서 모두 맞지 않게 표시됩니다. 여기서 질문드립니다.
1. 제가 만든 지표에서 무엇이 문제인가요?
2. 만약 어제 답변해주신대로 해당 지표가 기술적으로 구현이 어려운 지표라면 어떤 부분이 구현이 어려운지 알려주실 수 있나요?
답변 3
예스스탁 예스스탁 답변
2018-04-20 17:07:52
안녕하세요
예스스탁입니다.
계산과 관련된 내용이므로 올려주신 내용이 수식으로 불가능한 부분은 아닙니다.
다만 수식답변은 다수분의 질문에 대해 처리해야 하므로 일정시간이상 걸리면
답변이 드리기가 어렵습니다.
올려주신 내용에 대해 작성해 보았지만
작성이 잘 되지 않아 시간상 계속 진행하기 어려워
답변이 어렵다고 회신드린것입니다.
현재 몇몇 부분만 해결하면 식이 완성이 될거 같습니다.
월요일은 부재중이라 답변이 가능하지 않고
주말에 고민해 보고 화요일에 지금 문의하신 질문 밑으로 답변을 다시 드리겠습니다.
즐거운 하루되세요
> wl 님이 쓴 글입니다.
> 제목 : 지표 수식 질문드립니다.
> 안녕하세요, 어제 지표수식 관련 질문을 올렸었으나 해당 수식을 만들기 어렵다는 답변을 받았습니다. 질문은 다음과 같습니다.
----------------------------------------------------------------------------------------
분봉 차트에 현재가에 따라 호가창에 보여지는 매수 10호가와 매도 10호가의 범위를 표현하고 싶습니다. 가령, 현재가가 800원이면 차트에 매도 10호가인 809원과 매수 10호가인 790원을 표현하고 싶습니다. 문제는 호가단위가 변하는 지점인 천원, 5천원, 만원, 5만원, 80만원 등의 지점을 기준으로 하여 전후 10 호가에 대해서는 별도로 수식을 작성해야 한다는 것입니다. 가령, 현재가가 995원인 경우 매도호가를 구할 때 단순 계산으로 995+10이라고 하면 안 되고 995+4와 1000+50으로 나눠서 표시해야 실제 호가창과 같습니다. 반대로 가격이 1020원인 경우, 매수호가를 구할 때 1020-20과 1000-8을 나눠서 표시해야 실제 호가창과 같게 표시됩니다. 이 것을 각 호가단위 변동구간마다 고려해서 호가단위를 표시할 수 있는 식을 구현해주실 수 있나요?
----------------------------------------------------------------------------------------
답변을 받고 제가 지표수식을 대강 만들어봤는데요, 제가 만든 지표식은 다음과 같습니다.
var : maxprice(0), minprice(0), idx(0);
if c <= 990 then
{maxprice = c+10;
minprice = c-10;}
if 1050 < c and c <= 4950 then
{maxprice = c+50;
minprice = c-50;}
if 5100 < c and c <= 9900 then
{maxprice = c+100;
minprice = c-100;}
if 10500 < c and c <= 49500 then
{maxprice = c+500;
minprice = c-500;}
if 51000 < c and c <= 99000 then
{maxprice = c+1000;
minprice = c-1000;}
if 105000 < c and c <= 495000 then
{maxprice = c+5000;
minprice = c-5000;}
if 510000 < c then
{maxprice = c+10000;
minprice = c-10000;}
for idx = 1 to 10
{if 990+idx == c then
maxprice = 1000+5*(c-990);
minprice = c-10;}
{if 1000+5*idx == c then
maxprice = c+50;
minprice = 1000-(10-(c-1000)/5);}
{if 4950+5*idx == c then
maxprice = 5000+10*(10-(5000-c)/5);
minprice = c-50;}
{if 5000+10*idx == c then
maxprice = c+100;
minprice = 5000-5*(10-(c-5000)/10);}
{if 9900+10*idx == c then
maxprice = 10000+50*(10-(10000-c)/10);
minprice = c-100;}
{if 10000+50*idx == c then
maxprice = c+500;
minprice = 10000-10*(10-(c-10000)/50);}
{if 49500+50*idx == c then
maxprice = 50000+100*(10-(50000-c)/50);
minprice = c-500;}
{if 50000+100*idx == c then
maxprice = c+1000;
minprice = 50000-50*(10-(c-50000)/100);}
{if 99000+100*idx == c then
maxprice = 100000+500*(10-(100000-c)/100);
minprice = c-1000;}
{if 100000+500*idx == c then
maxprice = c+5000;
minprice = 100000-100*(10-(c-100000)/500);}
{if 495000+500*idx == c then
maxprice = 500000+1000*(10-(500000-c)/500);
minprice = c-5000;}
{if 500000+1000*idx == c Then
maxprice = c+10000;
minprice = 500000-500*(10-(c-500000)/1000);}
plot1(maxprice);
plot2(minprice);
그런데 제가 만든 지표를 적용시켜보니 두 가지 문제가 발생합니다. 첫째, 호가단위 변동구간을 전후한 지점에서의 매도 10호가가 실제 호가와 너무나 맞지 않게 표시됩니다(호가단위 변동구간을 제외한 지점에서는 제대로 표시됩니다). 둘째, 매수 10호가는 전체 구간에서 모두 맞지 않게 표시됩니다. 여기서 질문드립니다.
1. 제가 만든 지표에서 무엇이 문제인가요?
2. 만약 어제 답변해주신대로 해당 지표가 기술적으로 구현이 어려운 지표라면 어떤 부분이 구현이 어려운지 알려주실 수 있나요?
예스스탁 예스스탁 답변
2018-04-24 08:59:01
안녕하세요
예스스탁입니다.
아래수식 사용해 보시기 바랍니다.
사용자함수 만드신 후 지표작성해 사용하셔야 합니다.
1 사용자함수
사용자함수명 : PS
반환값형 : 숫자형
input : Price(Numeric);
PS = 1;
if Price >= 1000 Then
PS = 5;
if Price >= 5000 Then
PS = 10;
if Price >= 10000 Then
PS = 50;
if Price >= 50000 Then
PS = 100;
if Price >= 100000 Then
PS = 500;
if Price >= 500000 Then
PS = 1000;
2 지표식
var : Price(0);
var : dn1(0),dn2(0),dn3(0),dn4(0),dn5(0),dn6(0),dn7(0),dn8(0),dn9(0),dn10(0);
var : up1(0),up2(0),up3(0),up4(0),up5(0),up6(0),up7(0),up8(0),up9(0),up10(0);
#현재가
Price = close;
dn1 = Price-Ps(Price-PS(Price));
dn2 = dn1-Ps(dn1-PS(dn1));
dn3 = dn2-Ps(dn2-PS(dn2));
dn4 = dn3-Ps(dn3-PS(dn3));
dn5 = dn4-Ps(dn4-PS(dn4));
dn6 = dn5-Ps(dn5-PS(dn5));
dn7 = dn6-Ps(dn6-PS(dn6));
dn8 = dn7-Ps(dn7-PS(dn7));
dn9 = dn8-Ps(dn8-PS(dn8));
up1 = Price+PS(Price);
up2 = up1+Ps(up1);
up3 = up2+Ps(up2);
up4 = up3+Ps(up3);
up5 = up4+Ps(up4);
up6 = up5+Ps(up5);
up7 = up6+Ps(up6);
up8 = up7+Ps(up7);
up9 = up8+Ps(up8);
plot1(up9);
plot2(up8);
plot3(up7);
plot4(up6);
plot5(up5);
plot6(up4);
plot7(up3);
plot8(up2);
plot9(up1);
plot10(price);
plot11(dn1);
plot12(dn2);
plot13(dn3);
plot14(dn4);
plot15(dn5);
plot16(dn6);
plot17(dn7);
plot18(dn8);
plot19(dn9);
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 지표 수식 질문드립니다.
> 안녕하세요
예스스탁입니다.
계산과 관련된 내용이므로 올려주신 내용이 수식으로 불가능한 부분은 아닙니다.
다만 수식답변은 다수분의 질문에 대해 처리해야 하므로 일정시간이상 걸리면
답변이 드리기가 어렵습니다.
올려주신 내용에 대해 작성해 보았지만
작성이 잘 되지 않아 시간상 계속 진행하기 어려워
답변이 어렵다고 회신드린것입니다.
현재 몇몇 부분만 해결하면 식이 완성이 될거 같습니다.
월요일은 부재중이라 답변이 가능하지 않고
주말에 고민해 보고 화요일에 지금 문의하신 질문 밑으로 답변을 다시 드리겠습니다.
즐거운 하루되세요
> wl 님이 쓴 글입니다.
> 제목 : 지표 수식 질문드립니다.
> 안녕하세요, 어제 지표수식 관련 질문을 올렸었으나 해당 수식을 만들기 어렵다는 답변을 받았습니다. 질문은 다음과 같습니다.
----------------------------------------------------------------------------------------
분봉 차트에 현재가에 따라 호가창에 보여지는 매수 10호가와 매도 10호가의 범위를 표현하고 싶습니다. 가령, 현재가가 800원이면 차트에 매도 10호가인 809원과 매수 10호가인 790원을 표현하고 싶습니다. 문제는 호가단위가 변하는 지점인 천원, 5천원, 만원, 5만원, 80만원 등의 지점을 기준으로 하여 전후 10 호가에 대해서는 별도로 수식을 작성해야 한다는 것입니다. 가령, 현재가가 995원인 경우 매도호가를 구할 때 단순 계산으로 995+10이라고 하면 안 되고 995+4와 1000+50으로 나눠서 표시해야 실제 호가창과 같습니다. 반대로 가격이 1020원인 경우, 매수호가를 구할 때 1020-20과 1000-8을 나눠서 표시해야 실제 호가창과 같게 표시됩니다. 이 것을 각 호가단위 변동구간마다 고려해서 호가단위를 표시할 수 있는 식을 구현해주실 수 있나요?
----------------------------------------------------------------------------------------
답변을 받고 제가 지표수식을 대강 만들어봤는데요, 제가 만든 지표식은 다음과 같습니다.
var : maxprice(0), minprice(0), idx(0);
if c <= 990 then
{maxprice = c+10;
minprice = c-10;}
if 1050 < c and c <= 4950 then
{maxprice = c+50;
minprice = c-50;}
if 5100 < c and c <= 9900 then
{maxprice = c+100;
minprice = c-100;}
if 10500 < c and c <= 49500 then
{maxprice = c+500;
minprice = c-500;}
if 51000 < c and c <= 99000 then
{maxprice = c+1000;
minprice = c-1000;}
if 105000 < c and c <= 495000 then
{maxprice = c+5000;
minprice = c-5000;}
if 510000 < c then
{maxprice = c+10000;
minprice = c-10000;}
for idx = 1 to 10
{if 990+idx == c then
maxprice = 1000+5*(c-990);
minprice = c-10;}
{if 1000+5*idx == c then
maxprice = c+50;
minprice = 1000-(10-(c-1000)/5);}
{if 4950+5*idx == c then
maxprice = 5000+10*(10-(5000-c)/5);
minprice = c-50;}
{if 5000+10*idx == c then
maxprice = c+100;
minprice = 5000-5*(10-(c-5000)/10);}
{if 9900+10*idx == c then
maxprice = 10000+50*(10-(10000-c)/10);
minprice = c-100;}
{if 10000+50*idx == c then
maxprice = c+500;
minprice = 10000-10*(10-(c-10000)/50);}
{if 49500+50*idx == c then
maxprice = 50000+100*(10-(50000-c)/50);
minprice = c-500;}
{if 50000+100*idx == c then
maxprice = c+1000;
minprice = 50000-50*(10-(c-50000)/100);}
{if 99000+100*idx == c then
maxprice = 100000+500*(10-(100000-c)/100);
minprice = c-1000;}
{if 100000+500*idx == c then
maxprice = c+5000;
minprice = 100000-100*(10-(c-100000)/500);}
{if 495000+500*idx == c then
maxprice = 500000+1000*(10-(500000-c)/500);
minprice = c-5000;}
{if 500000+1000*idx == c Then
maxprice = c+10000;
minprice = 500000-500*(10-(c-500000)/1000);}
plot1(maxprice);
plot2(minprice);
그런데 제가 만든 지표를 적용시켜보니 두 가지 문제가 발생합니다. 첫째, 호가단위 변동구간을 전후한 지점에서의 매도 10호가가 실제 호가와 너무나 맞지 않게 표시됩니다(호가단위 변동구간을 제외한 지점에서는 제대로 표시됩니다). 둘째, 매수 10호가는 전체 구간에서 모두 맞지 않게 표시됩니다. 여기서 질문드립니다.
1. 제가 만든 지표에서 무엇이 문제인가요?
2. 만약 어제 답변해주신대로 해당 지표가 기술적으로 구현이 어려운 지표라면 어떤 부분이 구현이 어려운지 알려주실 수 있나요?
wl
2018-04-24 12:32:07
감사합니다!! 덕분에 정말 많이 배우게 됩니다 진짜 감사합니다!!
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : 지표 수식 질문드립니다.
>
안녕하세요
예스스탁입니다.
아래수식 사용해 보시기 바랍니다.
사용자함수 만드신 후 지표작성해 사용하셔야 합니다.
1 사용자함수
사용자함수명 : PS
반환값형 : 숫자형
input : Price(Numeric);
PS = 1;
if Price >= 1000 Then
PS = 5;
if Price >= 5000 Then
PS = 10;
if Price >= 10000 Then
PS = 50;
if Price >= 50000 Then
PS = 100;
if Price >= 100000 Then
PS = 500;
if Price >= 500000 Then
PS = 1000;
2 지표식
var : Price(0);
var : dn1(0),dn2(0),dn3(0),dn4(0),dn5(0),dn6(0),dn7(0),dn8(0),dn9(0),dn10(0);
var : up1(0),up2(0),up3(0),up4(0),up5(0),up6(0),up7(0),up8(0),up9(0),up10(0);
#현재가
Price = close;
dn1 = Price-Ps(Price-PS(Price));
dn2 = dn1-Ps(dn1-PS(dn1));
dn3 = dn2-Ps(dn2-PS(dn2));
dn4 = dn3-Ps(dn3-PS(dn3));
dn5 = dn4-Ps(dn4-PS(dn4));
dn6 = dn5-Ps(dn5-PS(dn5));
dn7 = dn6-Ps(dn6-PS(dn6));
dn8 = dn7-Ps(dn7-PS(dn7));
dn9 = dn8-Ps(dn8-PS(dn8));
up1 = Price+PS(Price);
up2 = up1+Ps(up1);
up3 = up2+Ps(up2);
up4 = up3+Ps(up3);
up5 = up4+Ps(up4);
up6 = up5+Ps(up5);
up7 = up6+Ps(up6);
up8 = up7+Ps(up7);
up9 = up8+Ps(up8);
plot1(up9);
plot2(up8);
plot3(up7);
plot4(up6);
plot5(up5);
plot6(up4);
plot7(up3);
plot8(up2);
plot9(up1);
plot10(price);
plot11(dn1);
plot12(dn2);
plot13(dn3);
plot14(dn4);
plot15(dn5);
plot16(dn6);
plot17(dn7);
plot18(dn8);
plot19(dn9);
즐거운 하루되세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 지표 수식 질문드립니다.
> 안녕하세요
예스스탁입니다.
계산과 관련된 내용이므로 올려주신 내용이 수식으로 불가능한 부분은 아닙니다.
다만 수식답변은 다수분의 질문에 대해 처리해야 하므로 일정시간이상 걸리면
답변이 드리기가 어렵습니다.
올려주신 내용에 대해 작성해 보았지만
작성이 잘 되지 않아 시간상 계속 진행하기 어려워
답변이 어렵다고 회신드린것입니다.
현재 몇몇 부분만 해결하면 식이 완성이 될거 같습니다.
월요일은 부재중이라 답변이 가능하지 않고
주말에 고민해 보고 화요일에 지금 문의하신 질문 밑으로 답변을 다시 드리겠습니다.
즐거운 하루되세요
> wl 님이 쓴 글입니다.
> 제목 : 지표 수식 질문드립니다.
> 안녕하세요, 어제 지표수식 관련 질문을 올렸었으나 해당 수식을 만들기 어렵다는 답변을 받았습니다. 질문은 다음과 같습니다.
----------------------------------------------------------------------------------------
분봉 차트에 현재가에 따라 호가창에 보여지는 매수 10호가와 매도 10호가의 범위를 표현하고 싶습니다. 가령, 현재가가 800원이면 차트에 매도 10호가인 809원과 매수 10호가인 790원을 표현하고 싶습니다. 문제는 호가단위가 변하는 지점인 천원, 5천원, 만원, 5만원, 80만원 등의 지점을 기준으로 하여 전후 10 호가에 대해서는 별도로 수식을 작성해야 한다는 것입니다. 가령, 현재가가 995원인 경우 매도호가를 구할 때 단순 계산으로 995+10이라고 하면 안 되고 995+4와 1000+50으로 나눠서 표시해야 실제 호가창과 같습니다. 반대로 가격이 1020원인 경우, 매수호가를 구할 때 1020-20과 1000-8을 나눠서 표시해야 실제 호가창과 같게 표시됩니다. 이 것을 각 호가단위 변동구간마다 고려해서 호가단위를 표시할 수 있는 식을 구현해주실 수 있나요?
----------------------------------------------------------------------------------------
답변을 받고 제가 지표수식을 대강 만들어봤는데요, 제가 만든 지표식은 다음과 같습니다.
var : maxprice(0), minprice(0), idx(0);
if c <= 990 then
{maxprice = c+10;
minprice = c-10;}
if 1050 < c and c <= 4950 then
{maxprice = c+50;
minprice = c-50;}
if 5100 < c and c <= 9900 then
{maxprice = c+100;
minprice = c-100;}
if 10500 < c and c <= 49500 then
{maxprice = c+500;
minprice = c-500;}
if 51000 < c and c <= 99000 then
{maxprice = c+1000;
minprice = c-1000;}
if 105000 < c and c <= 495000 then
{maxprice = c+5000;
minprice = c-5000;}
if 510000 < c then
{maxprice = c+10000;
minprice = c-10000;}
for idx = 1 to 10
{if 990+idx == c then
maxprice = 1000+5*(c-990);
minprice = c-10;}
{if 1000+5*idx == c then
maxprice = c+50;
minprice = 1000-(10-(c-1000)/5);}
{if 4950+5*idx == c then
maxprice = 5000+10*(10-(5000-c)/5);
minprice = c-50;}
{if 5000+10*idx == c then
maxprice = c+100;
minprice = 5000-5*(10-(c-5000)/10);}
{if 9900+10*idx == c then
maxprice = 10000+50*(10-(10000-c)/10);
minprice = c-100;}
{if 10000+50*idx == c then
maxprice = c+500;
minprice = 10000-10*(10-(c-10000)/50);}
{if 49500+50*idx == c then
maxprice = 50000+100*(10-(50000-c)/50);
minprice = c-500;}
{if 50000+100*idx == c then
maxprice = c+1000;
minprice = 50000-50*(10-(c-50000)/100);}
{if 99000+100*idx == c then
maxprice = 100000+500*(10-(100000-c)/100);
minprice = c-1000;}
{if 100000+500*idx == c then
maxprice = c+5000;
minprice = 100000-100*(10-(c-100000)/500);}
{if 495000+500*idx == c then
maxprice = 500000+1000*(10-(500000-c)/500);
minprice = c-5000;}
{if 500000+1000*idx == c Then
maxprice = c+10000;
minprice = 500000-500*(10-(c-500000)/1000);}
plot1(maxprice);
plot2(minprice);
그런데 제가 만든 지표를 적용시켜보니 두 가지 문제가 발생합니다. 첫째, 호가단위 변동구간을 전후한 지점에서의 매도 10호가가 실제 호가와 너무나 맞지 않게 표시됩니다(호가단위 변동구간을 제외한 지점에서는 제대로 표시됩니다). 둘째, 매수 10호가는 전체 구간에서 모두 맞지 않게 표시됩니다. 여기서 질문드립니다.
1. 제가 만든 지표에서 무엇이 문제인가요?
2. 만약 어제 답변해주신대로 해당 지표가 기술적으로 구현이 어려운 지표라면 어떤 부분이 구현이 어려운지 알려주실 수 있나요?
다음글
이전글