커뮤니티

질문 3가지 드립니다

프로필 이미지
yamu
2024-07-24 10:35:50
778
글번호 181827
답변완료
질문 1) input : P(5); var: cnt(0), a1(0) , a2(0); a1 = 0; For cnt = 0 to P-1 { if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then a1 = DayLow(cnt); } 이 식은 분봉에서 daylow 를 구하는 식인데 반대로 dayhigh 를 구하려면 식을 어떻게 작성하면 될까요? a2=0; For cnt = 0 to P-1 { if a2 == 0 or (a2 > 0 and dayhigh(cnt) < a2) Then a2 = dayhigh(cnt); } 이렇게 해봤는데 제대로 나오지가 않네요 수식에 대해서 이해도가 없어서 응용이 안되는데 간략하게 로직을 설명을 해주실 수 있을까요 a1=0; For cnt = 0 to P-1 {if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then a1 = DayLow(cnt);} cnt =0 to p-1 이 부분은 봉을 세는 수식인가요?0 부터 5-1=4 까지 5봉이라는 의미인거 같고 if 문에서 부터 몇 번 읽어봐도 잘 해석이 안됩니다 질문2) 위의 식을 편집기에서 고치고 "검증"을 눌러 바로 반영되게 하려고 하는데요, input 에서 선언된 변수들은 수정해도 반영이 안되고 차트상에서 변수 편집을 해야되네요. 편집기에서 바로 반영 하려면 var1=5; 을 선언하고 하니까 되는데 이 방법말고 input 에는 p(5) 라고 해놓고 별도로 p=10; 이라고 값을 다시 정의하면 "값을 대입할 수 잇는 변수나 배열의 요소가 와야합니다" 라고 에러가 나옵니다. input 에서 선언된 변수는 이런식으로는 수정 후 반영이 안되나요?~ 질문3) 분봉에서 혹시 틱 단위 (체결 횟수)를 설정하고 틱 갯수를 표현하는 식을 작성 할 수 있나요? 예를 들면 분봉차트 일정 구간에서 (3일동안) 100틱의 총갯수가 50개 이하로 나온 구간을 찾고 그 3일간의 최고가를 불러오는 식으로 만들고 싶은데 구현이 가능할까요?? 답변 주시면 감사하겠습니다 ~
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-07-25 15:17:16

안녕하세요 예스스탁입니다. 1 input : P(5); var : a1(0),a2(0),cnt(0); a1 = 0; a2 = 0; For cnt = 0 to P-1 { if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then a1 = DayLow(cnt); if a2 == 0 or (a2 > 0 and dayhigh(cnt) > a2) Then a2 = dayhigh(cnt); } Plot1(a1); Plot2(a2); 2 랭귀지에서 input 변수는 편집기가 아닌 외부속성에서 값을 변경하기 위해 선언해 사용하는 변수입니다. 수식안에서 값을 변경이나 저장할 수 없는 변수타입입니다. 그러므로 이미 차트에 적용되어 있는 수식의 경우 랭귀지 편집기에서 input값을 변경하셔도 바로 반영이 안되며 차트에서 해당수식 삭제 후 재적용하셔야 합니다. 3 아래 내용 참고하시기 바랍니다. n일동안 100틱 이하의 봉 중 최고가입니다. input : nticks(100),nday(3); var : cnt(0),hv(0); Array : HH[20](0); if Ticks <= nticks Then var1 = h; Else var1 = 0; if Bdate != Bdate[1] Then { hh[0] = 0; } if var1 > 0 and (HH[0] == 0 or (HH[0] > 0 and H > HH[0])) Then HH[0] = H; if hh[nday-1] > 0 Then { hv = 0; For cnt = 0 to nday-1 { if hv == 0 or (hv > 0 and hh[cnt] > hv) Then hv = hh[cnt]; } Plot1(hv); } 즐거운 하루되세요 > yamu 님이 쓴 글입니다. > 제목 : 질문 3가지 드립니다 > 질문 1) input : P(5); var: cnt(0), a1(0) , a2(0); a1 = 0; For cnt = 0 to P-1 { if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then a1 = DayLow(cnt); } 이 식은 분봉에서 daylow 를 구하는 식인데 반대로 dayhigh 를 구하려면 식을 어떻게 작성하면 될까요? a2=0; For cnt = 0 to P-1 { if a2 == 0 or (a2 > 0 and dayhigh(cnt) < a2) Then a2 = dayhigh(cnt); } 이렇게 해봤는데 제대로 나오지가 않네요 수식에 대해서 이해도가 없어서 응용이 안되는데 간략하게 로직을 설명을 해주실 수 있을까요 a1=0; For cnt = 0 to P-1 {if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then a1 = DayLow(cnt);} cnt =0 to p-1 이 부분은 봉을 세는 수식인가요?0 부터 5-1=4 까지 5봉이라는 의미인거 같고 if 문에서 부터 몇 번 읽어봐도 잘 해석이 안됩니다 질문2) 위의 식을 편집기에서 고치고 "검증"을 눌러 바로 반영되게 하려고 하는데요, input 에서 선언된 변수들은 수정해도 반영이 안되고 차트상에서 변수 편집을 해야되네요. 편집기에서 바로 반영 하려면 var1=5; 을 선언하고 하니까 되는데 이 방법말고 input 에는 p(5) 라고 해놓고 별도로 p=10; 이라고 값을 다시 정의하면 "값을 대입할 수 잇는 변수나 배열의 요소가 와야합니다" 라고 에러가 나옵니다. input 에서 선언된 변수는 이런식으로는 수정 후 반영이 안되나요?~ 질문3) 분봉에서 혹시 틱 단위 (체결 횟수)를 설정하고 틱 갯수를 표현하는 식을 작성 할 수 있나요? 예를 들면 분봉차트 일정 구간에서 (3일동안) 100틱의 총갯수가 50개 이하로 나온 구간을 찾고 그 3일간의 최고가를 불러오는 식으로 만들고 싶은데 구현이 가능할까요?? 답변 주시면 감사하겠습니다 ~