안녕하세요?
아래 글번호 84183번 재질문입니다.
웹에서 서치한 BOX 차트의 공식입니다.
스크립트에 반영 부탁드립니다.
ma = n 일 이동평균
upper = (종가 - ma) 가 양인 값들로 이루어진 배열(오른 날을 nPlus)
lower = (종가 - ma) 가 음인 값들의 배열(내린 날을 nMinus)
upperMean = upper의 nPlus 평균
lowerMean = lower의 nMinus 평균
upperstd = upper의 nPlus 표준편차
lowerstd = lower의 nMinus 표준편차
box 챠트의 상위선 = ma + upperMean + (2 * upperstd)
box 챠트의 하위선 = ma + upperbox 챠트의 하위선 = ma + lowerMean - (2 * lowerstd)
답변 1
예스스탁
예스스탁 답변
2023-10-20 09:48:32
안녕하세요
예스스탁입니다.
해당공식에 모호한 부분들이 있어
정확히 구현된 내용인지 모르겠습니다.
주석 내용들 참고하시기 바랍니다.
input : n(20),STDperiod(60);
var : mav(0),upper(0),lower(0),uppermean(0),lowermean(0);
var : cnt(0),sum1(0),sum2(0),SumSqrt1(0),SumSqrt2(0),upperstd(0),lowerstd(0);
var : box상위선(0),box하위선(0);
Array : nPlus[100](0),nMinus[100](0);
mav = ma(c,n);
#(종가 - ma) 가 양인 값들로 이루어진 배열
if C - mav > 0 Then
{
for cnt = 99 DownTo 1
{
nPlus[cnt] = nPlus[cnt-1];
}
nPlus[0] = abs(C-mav);
}
# (종가 - ma) 가 음인 값들의 배열
if C - mav < 0 Then
{
for cnt = 99 DownTo 1
{
nMinus[cnt] = nMinus[cnt-1];
}
nMinus[0] = abs(C-mav);
}
if nplus[STDperiod-1] > 0 and nMinus[STDperiod-1] > 0 Then
{
#upperMean = upper의 nPlus 평균
#lowerMean = lower의 nMinus 평균
sum1 = 0;
sum2 = 0;
For cnt = 0 to STDperiod-1
{
sum1 = sum1 + nPlus[cnt];
sum2 = sum2 + nMinus[cnt];
}
upperMean = sum1/STDperiod;
lowerMean = sum2/STDperiod;
#upperstd = upper의 nPlus 표준편차
#lowerstd = lower의 nMinus 표준편차
SumSqrt1 = 0;
SumSqrt2 = 0;
For cnt = 0 To STDperiod - 1
{
SumSqrt1 = SumSqrt1 + (nPlus[cnt] - lowerMean)^2;
SumSqrt2 = SumSqrt2 + (nMinus[cnt] - lowerMean)^2;
}
upperstd = SquareRoot(SumSqrt1 / STDperiod);
lowerstd = SquareRoot(SumSqrt2 / STDperiod);
box상위선 = mav + upperMean + (2 * upperstd);
box하위선 = mav + lowerMean - (2 * lowerstd);
if CountIf(H < box하위선,2) == 2 Then
Sell("s1",AtMarket);
if CountIf(l > box상위선,2) == 2 Then
Buy("b1",AtMarket);
if H[1] < box하위선 and L > box하위선 Then
Buy("b2",AtMarket);
if H[1] < box상위선 and L > box상위선 Then
Sell("s2",AtMarket);
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래 글번호 84183번 재질문입니다.
웹에서 서치한 BOX 차트의 공식입니다.
스크립트에 반영 부탁드립니다.
ma = n 일 이동평균
upper = (종가 - ma) 가 양인 값들로 이루어진 배열(오른 날을 nPlus)
lower = (종가 - ma) 가 음인 값들의 배열(내린 날을 nMinus)
upperMean = upper의 nPlus 평균
lowerMean = lower의 nMinus 평균
upperstd = upper의 nPlus 표준편차
lowerstd = lower의 nMinus 표준편차
box 챠트의 상위선 = ma + upperMean + (2 * upperstd)
box 챠트의 하위선 = ma + upperbox 챠트의 하위선 = ma + lowerMean - (2 * lowerstd)