커뮤니티

문의 드립니다.~~~~

프로필 이미지
예스요
2022-05-01 17:51:42
969
글번호 158488
답변완료
할상 감사합니다, 아래식의 자세한 주석 부탁드립니다. Input:tick(20); Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0); Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0); #==============================================================================# # Range Bar Chart 계산 #==============================================================================# If Index == 0 Then { tickVal = tick * PriceScale; oneTick = PriceScale; OO[0] = O; HH[0] = O; LL[0] = O; CC[0] = O; } count = 0; val[0] = O; val[3] = C; If O > C Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If O < C Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } Else If C[1] > O Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } Else If C[1] < O Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If trend == 1 Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If trend == -1 Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } For k = 0 To 3 { If HH[0] > 0 && HH[0] < val[k] Then { While val[k] - LL[0] > tickVal { HH[0] = LL[0] + tickVal; CC[0] = HH[0]; For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } count = count + 1; OO[0] = HH[1] + oneTick; LL[0] = OO[0]; } If val[k] - LL[0] <= tickVal Then { HH[0] = val[k]; CC[0] = val[k]; } } Else If LL[0] > val[k] Then { While HH[0] - val[k] > tickVal { LL[0] = HH[0] - tickVal; CC[0] = LL[0]; For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } count = count + 1; OO[0] = LL[1] - oneTick; HH[0] = OO[0]; } If HH[0] - val[k] <= tickVal Then { LL[0] = val[k]; CC[0] = val[k]; } } Else { CC[0] = val[k]; } } input : x(3); var : ii(0), 양봉연속갯수(0),음봉연속갯수(0); 양봉연속갯수 = 0; 음봉연속갯수 = 0; For ii = 0 to x-1 { if CC[ii] > OO[ii] Then 양봉연속갯수 = 양봉연속갯수+1; if CC[ii] < OO[ii] Then 음봉연속갯수 = 음봉연속갯수+1; } if 양봉연속갯수 == x Then Buy(); if 음봉연속갯수 == x Then sell();
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-05-03 14:00:52

안녕하세요 예스스탁입니다. Input:tick(20); Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0); Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0); #차트 첫봉 If Index == 0 Then { #20틱값 tickVal = tick * PriceScale; #1틱값 oneTick = PriceScale; #초기 시고저종을 모두 첫봉의 시가로 지정 OO[0] = O; HH[0] = O; LL[0] = O; CC[0] = O; } #매봉 #count는 0 count = 0; #val[0]은 시가 저장 val[0] = O; #val[3]은 종가 저장 val[3] = C; #음봉이면 If O > C Then { #val[1]에는 고가저장 val[1] = H; #val[2]에는 저가저장 val[2] = L; #종가가 저가보다 크면 trend는 1 아니면 -1 If L < C Then trend = 1; Else trend = -1; } Else If O < C Then #양봉이면 { #val[1]에는 저가저장 val[1] = L; #val[2]에는 고가저장 val[2] = H; #종가가 고가보다 작으면 trend는 -1 아니면 1 If H > C Then trend = -1; Else trend = 1; } Else If C[1] > O Then#도지봉이고 시가가 전봉종가보다 작으면 { #val[1]에는 저가저장 val[1] = L; #val[2]에는 고가저장 val[2] = H; #종가가 고가보다 작으면 trend는 -1 아니면 1 If H > C Then trend = -1; Else trend = 1; } Else If C[1] < O Then #도지봉이고 시가가 전봉종가보다 크면 { #val[1]에는 고가저장 val[1] = H; #val[2]에는 저가저장 val[2] = L; #종가가 저가보다 크면 trend는 1 아니면 -1 If L < C Then trend = 1; Else trend = -1; } Else If trend == 1 Then #도지봉이고 시가가 전봉종가가 같은데 trend는 1이면 { #val[1]에는 고가저장 val[1] = H; #val[2]에는 저가저장 val[2] = L; #종가가 저가보다 크면 trend는 1 아니면 -1 If L < C Then trend = 1; Else trend = -1; } Else If trend == -1 Then #도지봉이고 시가가 전봉종가가 같은데 trend는 1이면 { #val[1]에는 저가저장 val[1] = L; #val[2]에는 고가저장 val[2] = H; #종가가 고가보다 작으면 trend는 -1 아니면 1 If H > C Then trend = -1; Else trend = 1; } #val[0]~val[3]값을 지정하기 위한 for문 For k = 0 To 3 { #val[0]~val[3]값 중에 HH[0]보다 큰값이 있으면 If HH[0] > 0 && HH[0] < val[k] Then { #val[k] - LL[0] 값이 20틱보다 크면 아래 내용 수행 While val[k] - LL[0] > tickVal { #LL[0]에 20틱 더해 HH[0]에 저장 HH[0] = LL[0] + tickVal; #HH[0]을 CC[0]에 저장 CC[0] = HH[0]; #각 배열값을 다음방으로 이동 For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } #카운트1씩증가 count = count + 1; #HH[1] + 1틱을 OO[0]에 저장 OO[0] = HH[1] + oneTick; #LL[0]에 OO[0]을 저장 LL[0] = OO[0]; } #val[k] - LL[0]이 20틱 이하이면 If val[k] - LL[0] <= tickVal Then { #HH[0]에 val[k]저장 HH[0] = val[k]; #CC[0]에 val[k]저장 CC[0] = val[k]; } } #저가보다 작은 val[k]가 있으면 Else If LL[0] > val[k] Then { #HH[0]-val[k] 값이 20틱보다 크면 아래 내용 수행 While HH[0] - val[k] > tickVal { #HH[0]에 20틱 빼서 LL[0]에 저장 LL[0] = HH[0] - tickVal; #LL[0]을 CC[0]에 저장 CC[0] = LL[0]; #각 배열값을 다음방으로 이동 For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } #카운트1씩증가 count = count + 1; #LL[1] - 1틱을 OO[0]에 저장 OO[0] = LL[1] - oneTick; #HH[0]에 OO[0] 저장 HH[0] = OO[0]; } #HH[0]-val[k] 값이 20틱보다 작으면 If HH[0] - val[k] <= tickVal Then { #val[k]를 LL[0]에 저장 LL[0] = val[k]; #val[k]를 CC[0]에 저장 CC[0] = val[k]; } } Else#아니면 { #CC[0]에 val[k] 저장 CC[0] = val[k]; } } input : x(3); var : ii(0), 양봉연속갯수(0),음봉연속갯수(0); #최근 x개봉에서 양봉갯수 음봉갯수 카운트 양봉연속갯수 = 0; 음봉연속갯수 = 0; For ii = 0 to x-1 { if CC[ii] > OO[ii] Then 양봉연속갯수 = 양봉연속갯수+1; if CC[ii] < OO[ii] Then 음봉연속갯수 = 음봉연속갯수+1; } #x개봉 양봉갯수가 x이면 매수 if 양봉연속갯수 == x Then Buy(); #x개봉 음봉갯수가 x이면 매도 if 음봉연속갯수 == x Then sell(); 즐거운 하루되세요 > 예스요 님이 쓴 글입니다. > 제목 : 문의 드립니다.~~~~ > 할상 감사합니다, 아래식의 자세한 주석 부탁드립니다. Input:tick(20); Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0); Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0); #==============================================================================# # Range Bar Chart 계산 #==============================================================================# If Index == 0 Then { tickVal = tick * PriceScale; oneTick = PriceScale; OO[0] = O; HH[0] = O; LL[0] = O; CC[0] = O; } count = 0; val[0] = O; val[3] = C; If O > C Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If O < C Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } Else If C[1] > O Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } Else If C[1] < O Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If trend == 1 Then { val[1] = H; val[2] = L; If L < C Then trend = 1; Else trend = -1; } Else If trend == -1 Then { val[1] = L; val[2] = H; If H > C Then trend = -1; Else trend = 1; } For k = 0 To 3 { If HH[0] > 0 && HH[0] < val[k] Then { While val[k] - LL[0] > tickVal { HH[0] = LL[0] + tickVal; CC[0] = HH[0]; For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } count = count + 1; OO[0] = HH[1] + oneTick; LL[0] = OO[0]; } If val[k] - LL[0] <= tickVal Then { HH[0] = val[k]; CC[0] = val[k]; } } Else If LL[0] > val[k] Then { While HH[0] - val[k] > tickVal { LL[0] = HH[0] - tickVal; CC[0] = LL[0]; For j = 998 DownTo 0 { OO[j+1] = OO[j]; HH[j+1] = HH[j]; LL[j+1] = LL[j]; CC[j+1] = CC[j]; } count = count + 1; OO[0] = LL[1] - oneTick; HH[0] = OO[0]; } If HH[0] - val[k] <= tickVal Then { LL[0] = val[k]; CC[0] = val[k]; } } Else { CC[0] = val[k]; } } input : x(3); var : ii(0), 양봉연속갯수(0),음봉연속갯수(0); 양봉연속갯수 = 0; 음봉연속갯수 = 0; For ii = 0 to x-1 { if CC[ii] > OO[ii] Then 양봉연속갯수 = 양봉연속갯수+1; if CC[ii] < OO[ii] Then 음봉연속갯수 = 음봉연속갯수+1; } if 양봉연속갯수 == x Then Buy(); if 음봉연속갯수 == x Then sell();