예스스탁
예스스탁 답변
2020-01-09 14:34:08
안녕하세요
예스스탁입니다.
올려주신 내용에 대해 이전에 문의가 있어 아래와 같은 수식으로 답변을 드렸습니다.
AvgIf,StdevIf의 함수의 정확한 계산내용을 알수 없어 해당 설명으로 추청해 작성한 수식입니다.
이용에 참고하시기 바랍니다.
input : 이평기간(24);
var : mav(0),SumSqrt1(0),SumSqrt2(0),std1(0),std2(0),ii(0),cnt(0);
mav = ma(C,이평기간);
if mav > 0 then
{
ii = ii+1;
if C-mav > 0 then
{
value1 = value1 + C-mav;
value2 = value2 + 1;
value3 = value1/value2;
}
if C- mav < 0 then
{
value4 = value4 + C-mav;
value5 = value5 + 1;
value6 = value4/value5;
}
SumSqrt1 = 0;
SumSqrt2 = 0;
for cnt = 0 to ii-1
{
if value2 >= 1 and C[cnt] > mav[cnt] Then
{
SumSqrt1 = SumSqrt1 + ((C[cnt]-mav[cnt])-value3)^2;
}
if value5 >= 1 and C[cnt] < mav[cnt] Then
{
SumSqrt2 = SumSqrt2 + ((C[cnt]-mav[cnt])-value6)^2;
}
}
Std1 = SquareRoot(SumSqrt1 / value2);
Std2 = SquareRoot(SumSqrt2 / value5);
plot1(mav);
plot2(mav+value3);
plot3(mav+std1*2);
plot4(mav);
plot5(mav+value6);
plot6(mav-std2*2);
}
즐거운 하루되세요
> 브리아나금 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 영웅문의 지표를 예스에서 만들고 싶습니다.
영웅문 수식은
박스중심선 %이평기간%
MA( 가격, 이평기간, 이평방법 )
박스상한선
A = MA( 가격, 이평기간, 이평방법 );
A + AvgIf( 가격 - A, 1, 0.0 )
+ 2 * StdevIf( 가격 - A, 1, 0.0 )
박스하한선
A = MA( 가격, 이평기간, 이평방법 );
A + AvgIf( 가격 - A, -1, 0.0 )
- 2 * StdevIf( 가격 - A, -1, 0.0 )
입니다.
아래는 지표식 키움 설명입니다
설정은 기본 설정으로 , 가격 상한선을 기준으로 설명 드리겠습니다.
1.
A = MA( 가격, 이평기간, 이평방법 )
//
변수A는 24이평선으로 기본 설정 되어 있습니다. (지표조건설정에서 수정 가능합니다)
2.
A + AvgIf( 가격 - A, 1, 0.0 )
//
AvgIf함수는 차트에 조회된 기간(기본적으로 일봉은 600봉, 분봉은 900봉)중 "종가-24이평선"값이 0보다 큰값을 모두 더한 후 해당 기간값으로 나눈 값입니다. 이 값을 24이평선에 더해 계산합니다.
즉, 차트내에서 24이평선보다 종가가 더 클 때, 종가와 24이평선의 차이의 평균을 구한후, 24이평선에 더한 값입니다.
3.
+ 2 * StdevIf( 가격 - A, 1, 0.0 )
//
stdevif함수는 차트에 조회된 기간(기본적으로 일봉은 600봉, 분봉은 900봉)중 "종가-24이평선"값이 0보다 큰값들에 대해 표준편차를 구합니다. 이 값의 두 배를 계산합니다.
( 수식관리자에서는 표준편차를 계산하는 구조가 제공되고 있지 않으므로 내부적으로 프로그래밍된 함수로 계산하여 결과값을 도출합니다. )
즉, 차트 내에서 24이평선보다 종가가 더클때, (종가 - 24이평선) 값들의 표준편차을 구한 후, 그 두 배를 계산합니다.
위에서 계산된 2,3번 값을 더하여 상한선을 산출합니다.