예스스탁
예스스탁 답변
2021-04-28 15:10:01
안녕하세요
예스스탁입니다.
1
avg대신에 ma함수를 사용하셔야 합니다. ma가 단순이평계산함수입니다.
또한 ATR은 함수로 제공되고 있습니다.
아래 지표적용해 보시면 값이 같은걸 확인하실 수 있습니다.
input : Period(10);
var1 = ma(max(max(high-low,abs(close[1]-high)),abs(close[1]-low)),Period);
Var2 = ATR(Period);
Plot1(var1);
Plot2(var2);
2
input : ntime(5);#기분분봉차트 배수
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : HH(0),LL(0),OO(0),CC(0);
Array : xO[100](0),xH[100](0),xL[100](0),xC[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%(BarInterval*ntime);
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
OO = O;
HH = H;
LL = L;
for cnt = 1 to 99
{
xO[cnt] = xO[cnt-1][1];
xH[cnt] = xH[cnt-1][1];
xL[cnt] = xL[cnt-1][1];
xC[cnt] = xC[cnt-1][1];
}
}
if H > HH Then
HH = H;
if L < LL Then
LL = L;
CC = C;
if xO[1] == 0 Then
{
xO[0] = OO;
xC[0] = (OO+HH+LL+CC)/4;
xH[0] = MaxList(HH, xO[0], xC[0]);
xL[0] = MinList(LL, xO[0],xC[0]);
}
Else
{
xO[0] = (xO[1] + xC[1])/2 ;
xC[0] = (OO+HH+LL+CC)/4;
xH[0] = MaxList(HH, xO[0],xC[0]);
xL[0] = MinList(LL, xO[0],xC[0]);
}
Plot1(xO[0],"하켄시가");
Plot2(xH[0],"하켄고가");
Plot3(xL[0],"하켄저가");
Plot4(xC[0],"하켄종가");
}
즐거운 하루되세요
> dandan 님이 쓴 글입니다.
> 제목 : 수식확인 부탁드립니다.
> 1. ATR함수를 수식으로 구현 시 아래가 맞는지 확인부탁드립니다.
> avg(max(max(high-low,abs(close[1]-high)),abs(close[1]-low)),Period)
2. n분봉 차트에서 직전 (n*5)분봉 하이킨아시 캔들의 고가,저가,종가값을 구하고싶습니다.
ex) (09:01분) 1분봉 차트에서 (08:55~09:00분)에 해당하는 5분봉 하이킨아시 캔들의 고가, 저가, 종가 값
아래처럼 여러 수식을 참고하여 작성해봤으나 정확한 데이터가 검출되지 않습니다.
수식작성 부탁드립니다.
Var: mm(1), j(0), calcPeriod(0), htf_h(0), htf_c(0), htf_l(0);
Array:MinOpen[100](0), MinClose[100](0), MinHigh[100](0), MinLow[100](0);
mm = BarInterval()*5;
if mm >= BarInterval() then
calcperiod = mm/BarInterval();
if DayIndex()%calcperiod == 0 then
{
for j = 98 downto 0
{
MinHigh[j+1] = MinHigh[j];
MinLow[j+1] = MinLow[j];
MinClose[j+1] = MinClose[j];
}
MinHigh[0] = H;
MinLow[0] = L;
MinClose[0] = (O + C + H + L)/4;
}
htf_h = minHigh[0];
htf_l = minLow[0];
htf_c = minClose[0];