커뮤니티

문의드립니다.

프로필 이미지
아싸가오리
2012-10-09 00:55:19
274
글번호 55425
답변완료
1. 예문) var:a(0),b(0); array:aa[100](0),bb[100](0); if 조건 then {a=h;aa=l;} 이런식으로 작성된 수식문에서 if 조건 then a에서 aa[0] 혹은 a에서 현재봉 aa[1]에서 aa[0 ] 혹은 aa[0]에서 현재봉 저장값 사이의 값을 구하는게 아니며 a값이 저장된 봉 혹은 aa값이 저장된 봉 사이의 봉들중 a와 aa 혹은 현재봉은 제외한 ㄱ.봉의 고가값 중 가장 높은 고가를 기록한 봉을 찾아 시고저종가 ㄴ.봉의 저가값 중 가장 낮은 저가를 기록한 봉을 찾아 시고저종가를 찾아 if 조건 then문 만족시 저장하는 방법입니다. 2.한 시스템식내에서 월주분봉의 고가와 저가를 구하는 식인데요. 밑의 각 월주분봉에 시가와 종가를 포함해주세요. 밑의 식을 10분시스템식에 적용한다고 하여 작성해주셨습니다. 다른 시간의 분봉을 적용하거나 각 월주분봉 사이에 시고저종가를 이용한 아래 예시문과 같은 식을 작성하였을 때 오류가 날 수있는 부분에 대해 문의드립니다. 현재시간대에 적용 plot로 검증하였을 때 정상적으로 원하던 값(밑의 원래수식부분)이 나왔었는데요. 각 월주분봉에 적용 생각이었으나 테스트로 1분봉시스템식에 30분봉아래부분에 아래와 같이 변경적용하여 plot으로 값을 검증하였더니 수치가 0으로 나오고 전혀 다른 값이 저장되었습니다.어떤부분이 잘못 되었는지 답변부탁드립니다.(아래의 수식과 조건은 예시로 작성하였습니다.) var : cnt(0); Array : monthH[100](0),monthL[100](0),weekH[100](0),weekL[100](0),M30H[100](0),M30L[100](0);AA[100](0);BB[100](0);AA1[100](0);BB1[100](0);AA2[100](0);BB2[100](0); #월봉 if date > date[1]+30 Then{ monthH[0] = H; monthL[0] = L; for cnt = 1 to 99{ monthH[cnt] = monthH[cnt-1][1]; monthL[cnt] = monthL[cnt-1][1]; } } if H > monthH[0] Then monthH[0] = H; if L < monthL[0] Then monthL[0] = H; if index == 0 Then {저장} if 조건 Then {저장} for cnt = 1 to 99{ AA[cnt] = AA[cnt-1][1];} for cnt = 1 to 99{ BB[cnt] = BB[cnt-1][1];} #주봉 if dayofweek(date) < dayofweek(date[1]) Then{ weekH[0] = H; weekL[0] = L; for cnt = 1 to 99{ weekH[cnt] = weekH[cnt-1][1]; weekL[cnt] = weekL[cnt-1][1]; } } if H > weekH[0] Then weekH[0] = H; if L < weekL[0] Then weekL[0] = H; if index == 0 Then {저장} if 조건 Then {저장} for cnt = 1 to 99{ AA1[cnt] = AA1[cnt-1][1];} for cnt = 1 to 99{ BB1[cnt] = BB1[cnt-1][1];} #30분봉 var1 = TimeToMinutes(stime)%30; if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{ M30H[0] = H; M30L[0] = L; for cnt = 1 to 99{ M30H[cnt] = M30H[cnt-1][1]; M30L[cnt] = M30L[cnt-1][1]; } } if H > M30H[0] Then M30H[0] = H; if L < M30L[0] Then M30L[0] = H; if index == 0 Then {aa2[0]=m30h[0];bb2[0]=m30l[0];} if m30h[0]>m30h[1] Then {bb2[0]=m30l;} for cnt = 1 to 99{ AA2[cnt] = AA2[cnt-1][1];} for cnt = 1 to 99{ BB2[cnt] = BB2[cnt-1][1];} 원래수식 if index == 0 Then {aa3[0]=h[0];bb3[0]=l[0];} if h[0]>h[1] Then {bb3[0]=l[0];} for cnt = 1 to 99{ AA3[cnt] = AA3[cnt-1][1];} for cnt = 1 to 99{ BB3[cnt] = BB3[cnt-1][1];} 답변 부탁드립니다.수고하세요^^
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-10-09 13:15:46

안녕하세요 예스스탁입니다. 1. 특정 시점과 시점 사이에 최고가가 있는 봉의 시고저종가와 최저가가 있는 봉의 시고저종가는 아래와 같이 작성해서 값을 구해 사용하셔야 합니다. 즉 시점사이의 봉번호(index)를 저장해 각 시점사이의 봉갯수차이를 구한뒤에 for문을 이용해 최고가와 최저가 봉을 계산하고 그 봉의 시고저종가를 저장해 사용하시면 됩니다. 아래식은 시점은 스토케스틱골든지점입니다. input : P1(10),P2(5),P3(5); var : I1(0),I2(0),cnt(0),HO(0),HH(0),HL(0),HC(0),LO(0),LH(0),LL(0),LC(0); Var1 = StochasticsK(5,3); Var2 = StochasticsD(5,3,3); if crossup(var1,var2) Then{#시점 if조건만족봉 i1 = index;#현재 if만족시 index; I2 = I1[1];#직전 if만족시 index; HO = O[0];#초기값 HH = H[0];#초기값 HL = L[0];#초기값 HC = C[0];#초기값 LO = O[0];#초기값 LH = H[0];#초기값 LL = L[0];#초기값 LC = C[0];#초기값 for cnt = 0 to I1-I2{ if H[cnt] > HH Then{ HH = H[cnt]; HO = O[cnt]; HL = L[cnt]; HC = C[cnt]; } if L[cnt] < LL Then{ LL = L[cnt]; LO = O[cnt]; LH = H[cnt]; LC = C[cnt]; } } } 2. 실시간 차트는 최대 5000개봉 뿐이 조회하지 못합니다. 작성된 식은 차트의 봉을 분석해 값을 만듭니다. 그러므로 차트에 없는 기간의 값은 0으로 나옵니다. 즉 차트에 1개월분의 데이터가 있다면 2개월전 값은 나올수가 없습니다. 차트가 1분봉이면 전체 차트에 13일 정도뿐이 데이터가 없어 주간이나 월간 값을 구하는 것은 의미가 없습니다. 작성하신 내용은 수식으로 풀어서 다른 주기의 값을 구하는 것은무리가 있어 별다른 방법이 없어 보입니다. 즐거운 하루되세요 > 아싸가오리 님이 쓴 글입니다. > 제목 : 문의드립니다. > 1. 예문) var:a(0),b(0); array:aa[100](0),bb[100](0); if 조건 then {a=h;aa=l;} 이런식으로 작성된 수식문에서 if 조건 then a에서 aa[0] 혹은 a에서 현재봉 aa[1]에서 aa[0 ] 혹은 aa[0]에서 현재봉 저장값 사이의 값을 구하는게 아니며 a값이 저장된 봉 혹은 aa값이 저장된 봉 사이의 봉들중 a와 aa 혹은 현재봉은 제외한 ㄱ.봉의 고가값 중 가장 높은 고가를 기록한 봉을 찾아 시고저종가 ㄴ.봉의 저가값 중 가장 낮은 저가를 기록한 봉을 찾아 시고저종가를 찾아 if 조건 then문 만족시 저장하는 방법입니다. 2.한 시스템식내에서 월주분봉의 고가와 저가를 구하는 식인데요. 밑의 각 월주분봉에 시가와 종가를 포함해주세요. 밑의 식을 10분시스템식에 적용한다고 하여 작성해주셨습니다. 다른 시간의 분봉을 적용하거나 각 월주분봉 사이에 시고저종가를 이용한 아래 예시문과 같은 식을 작성하였을 때 오류가 날 수있는 부분에 대해 문의드립니다. 현재시간대에 적용 plot로 검증하였을 때 정상적으로 원하던 값(밑의 원래수식부분)이 나왔었는데요. 각 월주분봉에 적용 생각이었으나 테스트로 1분봉시스템식에 30분봉아래부분에 아래와 같이 변경적용하여 plot으로 값을 검증하였더니 수치가 0으로 나오고 전혀 다른 값이 저장되었습니다.어떤부분이 잘못 되었는지 답변부탁드립니다.(아래의 수식과 조건은 예시로 작성하였습니다.) var : cnt(0); Array : monthH[100](0),monthL[100](0),weekH[100](0),weekL[100](0),M30H[100](0),M30L[100](0);AA[100](0);BB[100](0);AA1[100](0);BB1[100](0);AA2[100](0);BB2[100](0); #월봉 if date > date[1]+30 Then{ monthH[0] = H; monthL[0] = L; for cnt = 1 to 99{ monthH[cnt] = monthH[cnt-1][1]; monthL[cnt] = monthL[cnt-1][1]; } } if H > monthH[0] Then monthH[0] = H; if L < monthL[0] Then monthL[0] = H; if index == 0 Then {저장} if 조건 Then {저장} for cnt = 1 to 99{ AA[cnt] = AA[cnt-1][1];} for cnt = 1 to 99{ BB[cnt] = BB[cnt-1][1];} #주봉 if dayofweek(date) < dayofweek(date[1]) Then{ weekH[0] = H; weekL[0] = L; for cnt = 1 to 99{ weekH[cnt] = weekH[cnt-1][1]; weekL[cnt] = weekL[cnt-1][1]; } } if H > weekH[0] Then weekH[0] = H; if L < weekL[0] Then weekL[0] = H; if index == 0 Then {저장} if 조건 Then {저장} for cnt = 1 to 99{ AA1[cnt] = AA1[cnt-1][1];} for cnt = 1 to 99{ BB1[cnt] = BB1[cnt-1][1];} #30분봉 var1 = TimeToMinutes(stime)%30; if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{ M30H[0] = H; M30L[0] = L; for cnt = 1 to 99{ M30H[cnt] = M30H[cnt-1][1]; M30L[cnt] = M30L[cnt-1][1]; } } if H > M30H[0] Then M30H[0] = H; if L < M30L[0] Then M30L[0] = H; if index == 0 Then {aa2[0]=m30h[0];bb2[0]=m30l[0];} if m30h[0]>m30h[1] Then {bb2[0]=m30l;} for cnt = 1 to 99{ AA2[cnt] = AA2[cnt-1][1];} for cnt = 1 to 99{ BB2[cnt] = BB2[cnt-1][1];} 원래수식 if index == 0 Then {aa3[0]=h[0];bb3[0]=l[0];} if h[0]>h[1] Then {bb3[0]=l[0];} for cnt = 1 to 99{ AA3[cnt] = AA3[cnt-1][1];} for cnt = 1 to 99{ BB3[cnt] = BB3[cnt-1][1];} 답변 부탁드립니다.수고하세요^^