안녕하세요 항상 많은 도움 주셔서 감사합니다.
아래는 분봉상에서 일봉의 atr을 사용자함수화 한 뒤, 과거 atr을 구하기 위해
배열변수에 일봉의 atr을 저장한 내용입니다.
문제는 atr의 변수값을 모두 일일이 다르게 설정한 뒤 과거값을 구해야 한다는 것입니다.
일봉상에서는 atr 변수값을 자유자제로 (예를들면 ATR(6)[4], ATR(4)[8] 와 같이) 다루는게 가능한데, 분봉상에서는 저렇게 하나하나 따로 때어서 정의해야 합니다. 이를 일봉상에서 자유롭게 atr변수와 과거값을 불러오듯 더 간편하게 할 수 있는 방법은 없을까요?
input : P(20);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0);
Array : dayatr4[20](0),dayatr6[20](0);
/*//////////////////////////////아래 식은 사용자 함수화 내용입니다/////////////////////////////////////////////
sum = 0;
for cnt = 0 to P-1{
If DayClose(cnt+1) > dayhigh(cnt) then
TH = DayClose(cnt+1);
else
TH = dayhigh(cnt);
If DayClose(cnt+1) < DayLow(cnt) then
TL = DayClose(cnt+1);
else
TL = daylow(cnt);
TR = TH-TL;
Sum = Sum+TR;
}
ATRminute = Sum/P;
///////////////////////////////////////////////////////////////////////////*/
dayatr4[0] = ATRminute(4);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr4[cnt+1] = dayatr4[cnt][1];
}
}
dayatr6[0] = ATRminute(6);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr6[cnt+1] = dayatr6[cnt][1];
}
}
Plot1(dayatr6[4]);
Plot2(dayatr4[8]);
답변 1
예스스탁
예스스탁 답변
2023-08-01 15:59:39
안녕하세요
예스스탁입니다.
기본차트에서 타주기인 일봉값을 계산하는 내용이므로 별도로 방법이 없습니다.
현재와 같이 필요한 기간, 이전일에 따라 각각 계산해 사용하셔야 합니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 히익 님이 쓴 글입니다.
> 제목 : 분봉에서 일봉의 atr
> 안녕하세요 항상 많은 도움 주셔서 감사합니다.
아래는 분봉상에서 일봉의 atr을 사용자함수화 한 뒤, 과거 atr을 구하기 위해
배열변수에 일봉의 atr을 저장한 내용입니다.
문제는 atr의 변수값을 모두 일일이 다르게 설정한 뒤 과거값을 구해야 한다는 것입니다.
일봉상에서는 atr 변수값을 자유자제로 (예를들면 ATR(6)[4], ATR(4)[8] 와 같이) 다루는게 가능한데, 분봉상에서는 저렇게 하나하나 따로 때어서 정의해야 합니다. 이를 일봉상에서 자유롭게 atr변수와 과거값을 불러오듯 더 간편하게 할 수 있는 방법은 없을까요?
input : P(20);
var : TH(0),TL(0),Sum(0),TR(0),DayATR(0),cnt(0);
Array : dayatr4[20](0),dayatr6[20](0);
/*//////////////////////////////아래 식은 사용자 함수화 내용입니다/////////////////////////////////////////////
sum = 0;
for cnt = 0 to P-1{
If DayClose(cnt+1) > dayhigh(cnt) then
TH = DayClose(cnt+1);
else
TH = dayhigh(cnt);
If DayClose(cnt+1) < DayLow(cnt) then
TL = DayClose(cnt+1);
else
TL = daylow(cnt);
TR = TH-TL;
Sum = Sum+TR;
}
ATRminute = Sum/P;
///////////////////////////////////////////////////////////////////////////*/
dayatr4[0] = ATRminute(4);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr4[cnt+1] = dayatr4[cnt][1];
}
}
dayatr6[0] = ATRminute(6);
If sDate!=sDate[1] Then
{
For cnt = 0 to 20 {
dayatr6[cnt+1] = dayatr6[cnt][1];
}
}
Plot1(dayatr6[4]);
Plot2(dayatr4[8]);