커뮤니티

변수의 과거봉 참조 문의

프로필 이미지
찰리03
2021-02-18 21:01:41
493
글번호 146445
답변완료
기본적인 과거봉 참조인거 같은데 헷갈려서 문의 드립니다. 1. 아래 시스템식을 60분봉으로 예를 들어 4일 동안 시뮬레이션하면 과거봉이 모두 정상적으로 출력됩니다. var: temp_high(0), temp_value(0), count(0); temp_high = high; MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f", stime, temp_high[0], temp_high[1], temp_high[2]); if LastBarOnChart == 1 Then { For count = 0 to 150 { MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]); } if close < 0 Then Buy(); } 2. 아래 시스템식은 매일 9시 1분의 고가를 저장했다가, 마지막 봉에서 모두 출력하는 수식입니다. 그런데 [0]값과 [1]값 까지만 저장되고, 그 이전의 과거값은 저장이 안 되는 데요. 위의 시스템식과의 과거값 표시가 왜 다른지 문의 드립니다. input: morningTime(901); var: temp_high(0), temp_value(0), count(0); if (stime == MorningTime * 100) then { temp_high = high; MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f", stime, temp_high[0], temp_high[1], temp_high[2]); if close < 0 Then Buy(); } if LastBarOnChart == 1 Then { For count = 0 to 50 { MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-02-19 14:20:57

안녕하세요 예스스탁입니다. 1 input: morningTime(901); var: temp_high(0), temp_value(0), count(0); if (stime == MorningTime * 100) then { temp_high = high; } Plot1(temp_high); 위 내용을 지표식으로 작성해서 차트에 적용해 부시면 temp_high에 9시1분봉 고가가 저장되면 그 이후 장종료까지 모두 같은 값입니다. temp_high[0] temp_high[1] temp_high[2] temp_high[0]은 현재봉에서 temp_high에 저장된값, temp_high[1]은 전봉에서 temp_high에 저장된값, temp_high[2]는 전전봉에서 temp_high에 저장된값입니다. 즉 변수뒤의 [0],[1]은 단지 봉기준으로 한봉전 두봉전입니다. 조건만족시점을 기준으로 직전, 전전,전전전으로 값이 넘겨지는 것은 아닙니ㅏㄷ. 지표에서 현재봉기준 1봉전,2봉전값 확인하시기 바랍니다. 2 구현하고자 하시는 내용이 9시1분의 고가를 저장하는데 [0]은 당일, [1]은 전일, [2]는 전전일 값을 순으로 저장하기를 원하시면 일반변수가 아니라 배열변수를 이용해 값을 저장하셔야 합니다. input: morningTime(901); var: temp_value(0), count(0); Array : temp_high[100](0); #조건충족 if (stime == MorningTime * 100) then { #temp_high[99]에 temp_high[98]에 저장된 값을 가져와 저장 #temp_high[98]에 temp_high[97]에 저장된 값을 가져와 저장 #... #temp_high[3]에 temp_high[2]에 저장된 값을 가져와 저장 #temp_high[2]에 temp_high[1]에 저장된 값을 가져와 저장 #temp_high[1]에 temp_high[0]에 저장된 값을 가져와 저장 For count = 99 to 1 { temp_high[count] = temp_high[count-1]; } #[0]번방에 당일값 새로 저장 temp_high[0] = high; } if LastBarOnChart == 1 Then { For count = 0 to 50 { MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]); } } 즐거운 하루되세요 > 찰리03 님이 쓴 글입니다. > 제목 : 변수의 과거봉 참조 문의 > 기본적인 과거봉 참조인거 같은데 헷갈려서 문의 드립니다. 1. 아래 시스템식을 60분봉으로 예를 들어 4일 동안 시뮬레이션하면 과거봉이 모두 정상적으로 출력됩니다. var: temp_high(0), temp_value(0), count(0); temp_high = high; MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f", stime, temp_high[0], temp_high[1], temp_high[2]); if LastBarOnChart == 1 Then { For count = 0 to 150 { MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]); } if close < 0 Then Buy(); } 2. 아래 시스템식은 매일 9시 1분의 고가를 저장했다가, 마지막 봉에서 모두 출력하는 수식입니다. 그런데 [0]값과 [1]값 까지만 저장되고, 그 이전의 과거값은 저장이 안 되는 데요. 위의 시스템식과의 과거값 표시가 왜 다른지 문의 드립니다. input: morningTime(901); var: temp_high(0), temp_value(0), count(0); if (stime == MorningTime * 100) then { temp_high = high; MessageLog("# 1: %.0f, %.0f, [1]: %.0f, [2]: %.0f", stime, temp_high[0], temp_high[1], temp_high[2]); if close < 0 Then Buy(); } if LastBarOnChart == 1 Then { For count = 0 to 50 { MessageLog("# 0-1: %.0f, %.0f", count, temp_high[count]); } }