커뮤니티
수식관련 질문드립니다.
2019-07-01 04:49:43
117
글번호 129882
질문번호 62667에서 질문답입니다.
input : P1(60),P2(120);
var : entry(0),setup(false),cnt(0);
var : sum1(0),sum11(0),sum2(0),sum21(0);
var : mav1(0),mav11(0),mav2(0),mav21(0);
sum1 = 0;
sum11 = 0;
sum2 = 0;
sum21 = 0;
if DayClose(P2) > 0 then
{
for cnt = 0 to P2-1
{
if cnt < P1 then
{
sum1 = sum1 + DayClose(cnt);
sum11 = sum11 + DayClose(cnt+1);
}
if cnt < P2 then
{
sum2 = sum2 + DayClose(cnt);
sum21 = sum21 + DayClose(cnt+1);
}
}
mav1 = sum1/P1;
mav11 = sum11/P1;
mav2 = sum2/P2;
mav21 = sum21/P2;
}
if bdate != bdate[1] Then
{
setup = false;
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if 특정조건 Then
setup = true;
if L < 지지선 or mav1 < mav11 or mav2 < mav21 Then
setup = false;
if entry < 1 and
setup == true and
매수조건 Then
buy();
위와 같이 답변을 받았읍니다.
수정해서 사용하다보니 이상해서 찍어보니 일이평값이 전부 0으로 나오네요..
혹시 수식적용에 전제조건이나 주의할점이 있나요..
1분봉챠트에 일120이평사용하면 1분챠트에 120일이상의 데이터가 필요한가요..
그리고 위 일이평을 사용자함수로 작성해주셨으면합니다.
위 수식에서 sum을 var로 초기화 했는데 본문에 다시한번 초기화한게 궁금하네요..
답변 1
예스스탁 예스스탁 답변
2019-07-01 13:22:32
안녕하세요
예스스탁입니다.
1
차트에 수식 계산에 필요한 충분한 데이타가 있어야 합니다.
해당식은 p2가 120 이므로 120일전 데이타가 있어야 하는데
분봉이하의 차트에는 내부적으로 차트의 첫봉의 날짜 +99일의 일간 데이타가 제공되고 있으므로
차트에는 약 20여일치의 데이타만 있으면 됩니다.
데이타가 부족하면 계산을 할수 없습니다.
내부적으로 제공되는 일간 데이타에서 값을 가져오는 함수가
dayclose/dayhigh/daylow/dayopen/dayvolume 입니다.
2
var는 초기 선언값입니다.
해당 변수는 매봉 이전일의 값을 가져와 누적해서 평균을 내게 되므로
봉마다 0으로 초기화합니다.
3
p1이평도 p2이평에 필요한 120일이 확보될떄만 계산되게 되어 있는데
p1은 독립적으로 계산되게 수정해 드립니다.
input : P1(60),P2(120);
var : entry(0),setup(false),cnt(0);
var : sum1(0),sum11(0),sum2(0),sum21(0);
var : mav1(0),mav11(0),mav2(0),mav21(0);
sum1 = 0;
sum11 = 0;
if DayClose(P1) > 0 then
{
for cnt = 0 to P1-1
{
sum1 = sum1 + DayClose(cnt);
sum11 = sum11 + DayClose(cnt+1);
}
mav1 = sum1/P1;
mav11 = sum11/P1;
}
sum2 = 0;
sum21 = 0;
if DayClose(P2) > 0 then
{
for cnt = 0 to P2-1
{
sum2 = sum2 + DayClose(cnt);
sum21 = sum21 + DayClose(cnt+1);
}
mav2 = sum2/P2;
mav21 = sum21/P2;
}
if bdate != bdate[1] Then
{
setup = false;
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if 특정조건 Then
setup = true;
if L < 지지선 or mav1 < mav11 or mav2 < mav21 Then
setup = false;
if entry < 1 and
setup == true and
매수조건 Then
buy();
즐거운 하루되세요
> 다낚아 님이 쓴 글입니다.
> 제목 : 수식관련 질문드립니다.
> 질문번호 62667에서 질문답입니다.
input : P1(60),P2(120);
var : entry(0),setup(false),cnt(0);
var : sum1(0),sum11(0),sum2(0),sum21(0);
var : mav1(0),mav11(0),mav2(0),mav21(0);
sum1 = 0;
sum11 = 0;
sum2 = 0;
sum21 = 0;
if DayClose(P2) > 0 then
{
for cnt = 0 to P2-1
{
if cnt < P1 then
{
sum1 = sum1 + DayClose(cnt);
sum11 = sum11 + DayClose(cnt+1);
}
if cnt < P2 then
{
sum2 = sum2 + DayClose(cnt);
sum21 = sum21 + DayClose(cnt+1);
}
}
mav1 = sum1/P1;
mav11 = sum11/P1;
mav2 = sum2/P2;
mav21 = sum21/P2;
}
if bdate != bdate[1] Then
{
setup = false;
entry = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
if 특정조건 Then
setup = true;
if L < 지지선 or mav1 < mav11 or mav2 < mav21 Then
setup = false;
if entry < 1 and
setup == true and
매수조건 Then
buy();
위와 같이 답변을 받았읍니다.
수정해서 사용하다보니 이상해서 찍어보니 일이평값이 전부 0으로 나오네요..
혹시 수식적용에 전제조건이나 주의할점이 있나요..
1분봉챠트에 일120이평사용하면 1분챠트에 120일이상의 데이터가 필요한가요..
그리고 위 일이평을 사용자함수로 작성해주셨으면합니다.
위 수식에서 sum을 var로 초기화 했는데 본문에 다시한번 초기화한게 궁금하네요..