커뮤니티
수식작성 문의
2019-07-16 16:25:23
196
글번호 130387
안녕하세요
함수를 아래와 같이 작성하여 지표를 만들었는데 제대로 계산이 안되어 문의드립니다.
--------------------------------------------------------------------------------
Input : Price(NumericSeries), Length(NumericSimple);
Var : slope(0), b(0), x(0), y(0), xx(0), xy(0), Counter(0);
For Counter = 0 To Length - 1 Begin
x = x + Counter;
y = y + Price[Counter];
xx = xx + Counter * Counter;
xy = xy + Counter * Price[Length - 1 - Counter];
End;
slope = (Length * xy - x * y) / (Length * xx - x * x);
b = (y - slope * x) / Length;
LSA = slope * (Length - 1) + b;
--------------------------------------------------------------------------------
Input : Length(34);
value1 = LSA(c,Length);
plot1(value1,"플롯1");
--------------------------------------------------------------------------------
혹시 잘못 된 것이 있는지 검토부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2019-07-17 10:19:30
안녕하세요
예스스탁입니다.
1
수식에서 필요한 봉개수(Length) 이전에 계산되면
각 변수에 NAN(Not a Number)이 저장됩니다.
변수에 NAN이 저장되면 이후에 숫자가 추가되어도
숫자값으로 계산이 되지 않습니다.
2
구현하고자 하시는 내용에서
x,y,xx,xy 변수는 매봉 0으로 초기화가 이루어 져야 합니다.
var선언은 최초 변수의 타입과 기초값을 지정하는 내용입니다.
매봉 0으로 초기화 되는 내용이 필요하므로 사용자함수에 해당 내용 추가해 드립니다.
3
Input : Price(NumericSeries), Length(NumericSimple);
Var : slope(0), b(0), x(0), y(0), xx(0), xy(0), Counter(0);
if CurrentBar >= 1 then
{
X = 0;
Y = 0;
XX = 0;
XY = 0;
For Counter = 0 To Length - 1 Begin
x = x + Counter;
y = y + Price[Counter];
xx = xx + Counter * Counter;
xy = xy + Counter * Price[Length - 1 - Counter];
End;
slope = (Length * xy - x * y) / (Length * xx - x * x);
b = (y - slope * x) / Length;
LSA = slope * (Length - 1) + b;
}
즐거운 하루되세요
> 텔스 님이 쓴 글입니다.
> 제목 : 수식작성 문의
> 안녕하세요
함수를 아래와 같이 작성하여 지표를 만들었는데 제대로 계산이 안되어 문의드립니다.
--------------------------------------------------------------------------------
Input : Price(NumericSeries), Length(NumericSimple);
Var : slope(0), b(0), x(0), y(0), xx(0), xy(0), Counter(0);
For Counter = 0 To Length - 1 Begin
x = x + Counter;
y = y + Price[Counter];
xx = xx + Counter * Counter;
xy = xy + Counter * Price[Length - 1 - Counter];
End;
slope = (Length * xy - x * y) / (Length * xx - x * x);
b = (y - slope * x) / Length;
LSA = slope * (Length - 1) + b;
--------------------------------------------------------------------------------
Input : Length(34);
value1 = LSA(c,Length);
plot1(value1,"플롯1");
--------------------------------------------------------------------------------
혹시 잘못 된 것이 있는지 검토부탁드립니다.
이전글