커뮤니티

메모리를 절약할 수 있는 약식수식에 대한 질문

프로필 이미지
대단한콩
2018-11-30 09:24:27
227
글번호 124016
답변완료
안녕하세요 최근 기존 로직에다가 100봉내 최저가형성봉 ~ 현재봉까지의 봉개수를 나타내는 식을 아래와같이 만들어 적용한 이후 프로그램이 다운되고 있습니다. 아래 수식을 없애버리자 다시 정상적으로 화면틀이 열리고 있습니다. 아래와 같은 내용상의 취지를 똑같이 살리면서도 메모리를 덜 잡아먹는 약식수식이 있을지요? 없다면 다른 방식으로 메모리를 확보할 수 있는 구체적인 노하우를 부탁드립니다. 감사합니다. LL = L; Li = 0; for cnt = 0 to 100{//q=100 if L[cnt] < LL Then{ LL = L[cnt]; Li = cnt; } } //plot1(Li);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-11-30 15:53:25

안녕하세요 예스스탁입니다. 해당 내용을 다른게 작성하는 방법은 nthlowestbar함수를 이용하는 방법뿐이 없습니다. 일반적으로 함수는 모두 사용자함수로 제공되는데 몇몇 함수들은 속도적인 측면에서 더 빠르게 계산하기 위해 내장함수로 제공됩니다. 대표적으로 MA와 같은 함수가 사용자함수가 아닌 내장함수로 제공되고 있습니다. LL = NthLowest(1,L,101); Li = NthLowestBar(1,L,101); 전반적으로 메모리와 관련된 부분은 수식에서 동일계산을 반복하지 않는게 중요합니다. if ma(c,5) > ma(c,20) then buy(); if ma(c,5) < ma(c,20) then sell(); 위 수식은 한번 시세를 받으면 5이평을 2번, 20이평을 2번 계산합니다. 하지만 아래와 같이 변수처리하면 각 1번만 계산하고 그 값만 이용하게 됩니다. var1 = ma(c,5); var2 = ma(C,20); if var1 > var2 then buy(); if var1 < var2 then sell(); 수식에서 함수가 호출되면 각각 메모리가 잡히게 되므로 동일계산은 한번만 하게 수식을 작성하셔야 합니다. 즐거운 하루되세요 > 대단한콩 님이 쓴 글입니다. > 제목 : 메모리를 절약할 수 있는 약식수식에 대한 질문 > 안녕하세요 최근 기존 로직에다가 100봉내 최저가형성봉 ~ 현재봉까지의 봉개수를 나타내는 식을 아래와같이 만들어 적용한 이후 프로그램이 다운되고 있습니다. 아래 수식을 없애버리자 다시 정상적으로 화면틀이 열리고 있습니다. 아래와 같은 내용상의 취지를 똑같이 살리면서도 메모리를 덜 잡아먹는 약식수식이 있을지요? 없다면 다른 방식으로 메모리를 확보할 수 있는 구체적인 노하우를 부탁드립니다. 감사합니다. LL = L; Li = 0; for cnt = 0 to 100{//q=100 if L[cnt] < LL Then{ LL = L[cnt]; Li = cnt; } } //plot1(Li);