커뮤니티

과거 봉 반복 검색 관련

프로필 이미지
김지후
2024-07-12 13:43:02
621
글번호 181429
답변완료
안녕하세요? 현재 봉부터 차트상의 첫 번째 봉까지 반복문을 사용하여 특정 조건을 만족할 시 카운트를 늘리는 코드를 작성했습니다만, 작동 시 첫 번째 봉부터 마지막 봉까지 순서대로 해당 코드를 실행하게 되니 이미 계산한 값을 계속 중복해서 계산하게 되어 코드의 효율이 너무 떨어집니다. 직전 봉에서 이미 구한 값을 불러올 수 있다면 이 문제를 해결할 수 있을 듯한데, 이것이 가능합니까? 불가능하다면 가능한 다른 해결 방법이 있을까요?
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-07-12 15:29:26

안녕하세요 예스스탁입니다. 랭귀지 체계상 수식이 차트에 적용되면 항상 첫봉부터 마지막봉으로 오면서 계산하게 됩니다. 그러므로 특정조건의 과거 만족한 갯수를 현재시점에서 for로프로 구현하시면 로드가 많이 걸리게 됩니다. var : m1(0),m2(0),ii(0),count(0); m1 = ma(C,5); m2 = ma(C,20); Condition1 = CrossUp(m1,m2); count = 0; For ii = 0 to Index { if Condition1[ii] == true then count = count+1; } Plot1(count); 예를 들어 위와 같은 수식이 작성되면 차트 첫봉부터 현재봉까지 매봉 루프를 돌면서 과거 골드발생횟수를 계산하게 됩니다. 위와 같은 내용은 차트 첫봉부터 현재봉으로 오면서 계산하고 변수는 한번값을 저장하면 다음에 변경전까지 유지하므로 아래와 같이 지정한 조건이 만족하면 카운트를 1씩 증가하게 작성하시면 됩니다. var : m1(0),m2(0),ii(0),count(0); m1 = ma(C,5); m2 = ma(C,20); Condition1 = CrossUp(m1,m2); if Condition1 == true then count = count+1; Plot1(count); 즐거운 하루되세요 > 김지후 님이 쓴 글입니다. > 제목 : 과거 봉 반복 검색 관련 > 안녕하세요? 현재 봉부터 차트상의 첫 번째 봉까지 반복문을 사용하여 특정 조건을 만족할 시 카운트를 늘리는 코드를 작성했습니다만, 작동 시 첫 번째 봉부터 마지막 봉까지 순서대로 해당 코드를 실행하게 되니 이미 계산한 값을 계속 중복해서 계산하게 되어 코드의 효율이 너무 떨어집니다. 직전 봉에서 이미 구한 값을 불러올 수 있다면 이 문제를 해결할 수 있을 듯한데, 이것이 가능합니까? 불가능하다면 가능한 다른 해결 방법이 있을까요?