커뮤니티

종목 검색식 부탁드릴게요...

프로필 이미지
사자동굴
2012-06-06 23:37:30
392
글번호 51717
답변완료
진입신호가 나오는 종목 검색할 수 있을까요? 부탁드리겠습니다... 감사합니다. 관리자님 행복하시라요 ------------------------------------------------------------------------------ Input:Period(9), maPeriod(9), Period1(10),Period2(10),Period3(5), RSQR(14), p(50), n(4),미완성사용(0),RaffRegression(1),StdDeviation(1),StdError(1), P1(5),P2(3),P3(3), N1(50), P4(3), af(0.02), maxAF(0.2) ; Var:j(0),상승(1),하락(2),상승후하락(3),하락후상승(4), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0), 추세(0),원스윙(0),예정원스윙(0),인사이드고(0),인사이드저(0) ,k(0),X(0),num(0),승수(2), sumXY(0),sumX(0),sumY(0),sumX²(0),sumY²(0), 기울기(0),절편(0),선형회귀선(0),회귀채널폭(0),표준편차(0),표준오차(0), 라프회귀상(0),라프회귀하(0),표준편차상(0),표준편차하(0), 표준오차상(0),표준오차하(0), cnt(0), value(0),SonarValue(0),SonarSig(0), Relative(0), Simri(0), 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0); Var:이평3(0),이평13(0),이평55(0),단계(0), 이평3아래시작(1),이평3상향돌파(2),이평3하향돌파(3), 이평13아래시작(4),이평13상향돌파(5),이평13하향돌파(6), 이평55아래시작(7),이평55상향돌파(8),이평55하향돌파(9), 시작(0),시작Bar(0),예비시작(0),예비시작Bar(0), A고점(0),A고Bar(0),A기울기(0),A추세선(0),AX(0),예비AX(0), B고점(0),B고Bar(0),B기울기(0),B추세선(0),BX(0),예비BX(0), C고점(0),C고Bar(0),C기울기(0),C추세선(0),CX(0),예비CX(0), 이평선5(0), 이평선10(0), 이평선20(0), 이평기울기S1(0), 이평기울기S2(0), 이평선51(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); 이평선5= ma(C, 5); 이평선10= ma(c,10); 이평선20= MA(C, 20); 이평기울기S1= (C/이평선10)*100; 이평기울기S2= (이평선5/이평선10)*100; if SwingHigh(1,이평선5,3,3,7) != -1 Then 이평선51 = 이평선5[30]; var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); if crossup(var1,var2) Then value1 = H; if CrossDown(var1,var2) Then value2 = L; condition1 = var1 > var2 and var1 > var1[1] and var3 > 0.27 and var3 > var3[1] and C > value1; condition2 = var1 < var2 and var1 < var1[1] and var3 > 0.27 and var3 > var3[1] and C < value2; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } X = Index; if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[n]; 고Bar[1] = n; if 저Bar[1] > 고Bar[2] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = n + 1; for j = n + 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1] = L[k]; 저Bar[1] = k; } } if 미완성사용 == 0 then { if 고Bar[1] > 저Bar[1] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= h[n] then { 고[1] = h[n]; 고Bar[1] = n; } } } if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[n]; 저Bar[1] = n; if 고Bar[1] > 저Bar[2] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = n + 1; for j = n + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1] = H[k]; 고Bar[1] = k; } } if 미완성사용 == 0 then { if 저Bar[1] > 고Bar[1] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1] = L[n]; 저Bar[1] = n; } } } if 저Bar[1] == n or 고Bar[1] == n then { if 저Bar[1] == n then num = 저Bar[2] - 저Bar[1] + 1; if 고Bar[1] == n then num = 고Bar[2] - 고Bar[1] + 1; sumXY = accumN(X[n]*C[n],num); sumX = accumN(X[n],num); sumY = accumN(C[n],num); sumX²= accumN(X[n]^2,num); sumY²= accumN(C[n]^2,num); 기울기 = ((num * sumXY) - (sumX * sumY)) / (num * sumX²- sumX^2); 절편 = ((sumY * sumX²) - (sumX * sumXY)) / (num * sumX²- sumX^2); 회귀채널폭 = 0; for j = 0 to num - 1 { var1 = max(H[n+j]-(기울기*x[n+j]+절편),(기울기*x[n+j]+절편)-L[n+j]); if 회귀채널폭 < var1 then 회귀채널폭 = var1; } 표준편차 = sqrt((num*sumY² - sumY^2)/(num*(num-1))); 표준오차 = sqrt((1/(num*(num-2)))*(num*sumY²-sumY^2- ((num*sumXY-sumX*sumY)^2)/(num*sumX²-sumX^2))); } 선형회귀선 = 기울기 * x + 절편; 라프회귀상 = 선형회귀선 + 회귀채널폭; 라프회귀하 = 선형회귀선 - 회귀채널폭; 표준편차상 = 선형회귀선 + (표준편차 * 승수); 표준편차하 = 선형회귀선 - (표준편차 * 승수); 표준오차상 = 선형회귀선 + (표준오차 * 승수); 표준오차하 = 선형회귀선 - (표준오차 * 승수); 시작Bar = 시작Bar + 1; A고Bar = A고Bar + 1; B고Bar = B고Bar + 1; C고Bar = C고Bar + 1; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } 이평3 = ma(C,3); 이평13 = ma(C,13); 이평55 = ma(C,55); if H >= Highest(H,p) - 0.01*(Highest(H,p)-Lowest(L,p)) then { 예비시작 = H; 예비시작Bar = 0; 단계 = 0; } else 예비시작Bar = 예비시작Bar + 1; if 예비시작 > 0 and 단계 == 0 and 이평3 > C then 단계 = 이평3아래시작; if 단계 == 이평3아래시작 and 이평3 < C then { 단계 = 이평3상향돌파; 시작 = 예비시작; 시작Bar = 예비시작Bar; A고점 = H; A고Bar = 0; 예비AX = max(O,C); A기울기 = 0; A추세선 = 0; AX = 0; B기울기 = 0; B추세선 = 0; BX = 0; C기울기 = 0; C추세선 = 0; CX = 0; } if 단계 == 이평3상향돌파 then { if A고점 <= H then { A고점 = H; A고Bar = 0; } 예비AX = max(예비AX,O,C); if 이평3 > C then { 단계 = 이평3하향돌파; A기울기 = (A고점 - 시작) / (시작Bar - A고Bar); AX = 예비AX; } } if A기울기 != 0 then A추세선 = A기울기 * 시작Bar + 시작; if 단계 == 이평3하향돌파 and 이평13 > C then 단계 = 이평13아래시작; if 단계 == 이평13아래시작 and 이평13 < C and A추세선 < C then { 단계 = 이평13상향돌파; B고점 = H; B고Bar = 0; 예비BX = max(O,C); } if 단계 == 이평13상향돌파 then { if B고점 <= H then { B고점 = H; B고Bar = 0; } 예비BX = max(예비BX,O,C); if 이평13 > C then { 단계 = 이평13하향돌파; B기울기 = (B고점 - 시작) / (시작Bar - B고Bar); BX = 예비BX; } } if B기울기 != 0 then B추세선 = B기울기 * 시작Bar + 시작; if 단계 == 이평13하향돌파 and 이평55 > C then 단계 = 이평55아래시작; if 단계 == 이평55아래시작 and 이평55 < C and B추세선 < C then { 단계 = 이평55상향돌파; C고점 = H; C고Bar = 0; 예비CX = max(O,C); } if 단계 == 이평55상향돌파 then { if C고점 <= H then { C고점 = H; C고Bar = 0; } 예비CX = max(예비CX,O,C); if 이평55 > C then { 단계 = 이평55하향돌파; C기울기 = (C고점 - 시작) / (시작Bar - C고Bar); CX = 예비CX; } } if C기울기 != 0 then C추세선 = C기울기 * 시작Bar + 시작; if H[1] < H and iff(인사이드고>0,iff(인사이드고<H,1,0),1) then { 기준고 = H; 기준고Bar = 0; } else 기준고Bar = 기준고Bar + 1; if L[1] > L and iff(인사이드저>0,iff(인사이드저>L,1,0),1) then { 기준저 = L; 기준저Bar = 0; } else 기준저Bar = 기준저Bar + 1; if 인사이드고 * 인사이드저 == 0 and H[1] >= H and L[1] <= L then { 인사이드고 = H[1]; 인사이드저 = L[1]; } if 인사이드고 * 인사이드저 > 0 and (인사이드고 < H or 인사이드저 > L) then { 인사이드고 = 0; 인사이드저 = 0; } if 추세[1] ==하락후상승 then { 추세 = 상승; 원스윙 = 예정원스윙; } if 추세[1] == 상승후하락 then { 추세 = 하락; 원스윙 = 예정원스윙; } if 고Bar[1] > 기준고Bar and 기준고 == H[1] and H[1] > H and 저Bar[1] > 기준저Bar and 기준저 == L[1] and L[1] < L then { //아웃사이드일 경우 if 기준고Bar == 기준저Bar then { if 추세[1] == 상승 and 저[1] < 기준고 then 추세 = 하락후상승; else if 추세[1] == 상승 and 저[1] > 기준고 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] > 기준저 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] < 기준저 then 추세 = 하락후상승; } else if 기준고Bar > 기준저Bar then 추세 = 하락후상승; else if 기준저Bar > 기준고Bar then 추세 = 상승후하락; } else if 고Bar[1] > 기준고Bar and 저[1] < 기준고 and 기준고 == H[1] and H[1] > H then 추세 = 하락; else if 저Bar[1] > 기준저Bar and 고[1] > 기준저 and 기준저 == L[1] and L[1] < L then 추세 = 상승; if 추세[1] == 상승 and 추세 == 하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락 and 고[1] < 기준고 and 기준고 == H[1] and H[1] > H then { 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승 and 저[1] > 기준저 and 기준저 == L[1] and L[1] < L then { 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 하락후상승 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락후상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,52)+lowest(L,52))/2; var6 = max(선행스팬1, 선행스팬2); var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); if C >= var6[26] and 이평13 < C and RaffRegression == 1 and 라프회귀상 > 0 and CrossUp(C,라프회귀상) and B추세선 > 0 and (B추세선 < C or BX < C) then Buy("라프회귀상돌파",OnClose,DEF); if C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준편차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준편차상) then Buy("표준편차상돌파",OnClose,DEF); If C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준오차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준오차상) then Buy("표준오차상돌파",OnClose,DEF); if 저[1] > C or (var1 < var2 and C < value2) or condition2 == True then ExitLong("추세종료",atmarket,DEF);
검색
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-06-07 15:50:34

안녕하세요 예스스탁입니다. 종목검색에는 최대 500봉까지만 제공됩니다. 종목검색 속성화면에서 검색에 필요한 최소기간을 500으로 설정하시고 종목검색하시기 바랍니다. Input:Period(9), maPeriod(9), Period1(10),Period2(10),Period3(5), RSQR(14), p(50), n(4),미완성사용(0),RaffRegression(1),StdDeviation(1),StdError(1), P1(5),P2(3),P3(3), N1(50), P4(3), af(0.02), maxAF(0.2) ; Var:j(0),상승(1),하락(2),상승후하락(3),하락후상승(4), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0), 추세(0),원스윙(0),예정원스윙(0),인사이드고(0),인사이드저(0) ,k(0),X(0),num(0),승수(2), sumXY(0),sumX(0),sumY(0),sumX²(0),sumY²(0), 기울기(0),절편(0),선형회귀선(0),회귀채널폭(0),표준편차(0),표준오차(0), 라프회귀상(0),라프회귀하(0),표준편차상(0),표준편차하(0), 표준오차상(0),표준오차하(0), cnt(0), value(0),SonarValue(0),SonarSig(0), Relative(0), Simri(0), 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0); Var:이평3(0),이평13(0),이평55(0),단계(0), 이평3아래시작(1),이평3상향돌파(2),이평3하향돌파(3), 이평13아래시작(4),이평13상향돌파(5),이평13하향돌파(6), 이평55아래시작(7),이평55상향돌파(8),이평55하향돌파(9), 시작(0),시작Bar(0),예비시작(0),예비시작Bar(0), A고점(0),A고Bar(0),A기울기(0),A추세선(0),AX(0),예비AX(0), B고점(0),B고Bar(0),B기울기(0),B추세선(0),BX(0),예비BX(0), C고점(0),C고Bar(0),C기울기(0),C추세선(0),CX(0),예비CX(0), 이평선5(0), 이평선10(0), 이평선20(0), 이평기울기S1(0), 이평기울기S2(0), 이평선51(0); var : buyCond1(false),buyCond2(false),buyCond3(false); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); 이평선5= ma(C, 5); 이평선10= ma(c,10); 이평선20= MA(C, 20); 이평기울기S1= (C/이평선10)*100; 이평기울기S2= (이평선5/이평선10)*100; if SwingHigh(1,이평선5,3,3,7) != -1 Then 이평선51 = 이평선5[30]; var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); if crossup(var1,var2) Then value1 = H; if CrossDown(var1,var2) Then value2 = L; condition1 = var1 > var2 and var1 > var1[1] and var3 > 0.27 and var3 > var3[1] and C > value1; condition2 = var1 < var2 and var1 < var1[1] and var3 > 0.27 and var3 > var3[1] and C < value2; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } X = Index; if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[n]; 고Bar[1] = n; if 저Bar[1] > 고Bar[2] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = n + 1; for j = n + 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1] = L[k]; 저Bar[1] = k; } } if 미완성사용 == 0 then { if 고Bar[1] > 저Bar[1] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= h[n] then { 고[1] = h[n]; 고Bar[1] = n; } } } if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[n]; 저Bar[1] = n; if 고Bar[1] > 저Bar[2] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = n + 1; for j = n + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1] = H[k]; 고Bar[1] = k; } } if 미완성사용 == 0 then { if 저Bar[1] > 고Bar[1] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1] = L[n]; 저Bar[1] = n; } } } if 저Bar[1] == n or 고Bar[1] == n then { if 저Bar[1] == n then num = 저Bar[2] - 저Bar[1] + 1; if 고Bar[1] == n then num = 고Bar[2] - 고Bar[1] + 1; sumXY = accumN(X[n]*C[n],num); sumX = accumN(X[n],num); sumY = accumN(C[n],num); sumX²= accumN(X[n]^2,num); sumY²= accumN(C[n]^2,num); 기울기 = ((num * sumXY) - (sumX * sumY)) / (num * sumX²- sumX^2); 절편 = ((sumY * sumX²) - (sumX * sumXY)) / (num * sumX²- sumX^2); 회귀채널폭 = 0; for j = 0 to num - 1 { var1 = max(H[n+j]-(기울기*x[n+j]+절편),(기울기*x[n+j]+절편)-L[n+j]); if 회귀채널폭 < var1 then 회귀채널폭 = var1; } 표준편차 = sqrt((num*sumY² - sumY^2)/(num*(num-1))); 표준오차 = sqrt((1/(num*(num-2)))*(num*sumY²-sumY^2- ((num*sumXY-sumX*sumY)^2)/(num*sumX²-sumX^2))); } 선형회귀선 = 기울기 * x + 절편; 라프회귀상 = 선형회귀선 + 회귀채널폭; 라프회귀하 = 선형회귀선 - 회귀채널폭; 표준편차상 = 선형회귀선 + (표준편차 * 승수); 표준편차하 = 선형회귀선 - (표준편차 * 승수); 표준오차상 = 선형회귀선 + (표준오차 * 승수); 표준오차하 = 선형회귀선 - (표준오차 * 승수); 시작Bar = 시작Bar + 1; A고Bar = A고Bar + 1; B고Bar = B고Bar + 1; C고Bar = C고Bar + 1; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } 이평3 = ma(C,3); 이평13 = ma(C,13); 이평55 = ma(C,55); if H >= Highest(H,p) - 0.01*(Highest(H,p)-Lowest(L,p)) then { 예비시작 = H; 예비시작Bar = 0; 단계 = 0; } else 예비시작Bar = 예비시작Bar + 1; if 예비시작 > 0 and 단계 == 0 and 이평3 > C then 단계 = 이평3아래시작; if 단계 == 이평3아래시작 and 이평3 < C then { 단계 = 이평3상향돌파; 시작 = 예비시작; 시작Bar = 예비시작Bar; A고점 = H; A고Bar = 0; 예비AX = max(O,C); A기울기 = 0; A추세선 = 0; AX = 0; B기울기 = 0; B추세선 = 0; BX = 0; C기울기 = 0; C추세선 = 0; CX = 0; } if 단계 == 이평3상향돌파 then { if A고점 <= H then { A고점 = H; A고Bar = 0; } 예비AX = max(예비AX,O,C); if 이평3 > C then { 단계 = 이평3하향돌파; A기울기 = (A고점 - 시작) / (시작Bar - A고Bar); AX = 예비AX; } } if A기울기 != 0 then A추세선 = A기울기 * 시작Bar + 시작; if 단계 == 이평3하향돌파 and 이평13 > C then 단계 = 이평13아래시작; if 단계 == 이평13아래시작 and 이평13 < C and A추세선 < C then { 단계 = 이평13상향돌파; B고점 = H; B고Bar = 0; 예비BX = max(O,C); } if 단계 == 이평13상향돌파 then { if B고점 <= H then { B고점 = H; B고Bar = 0; } 예비BX = max(예비BX,O,C); if 이평13 > C then { 단계 = 이평13하향돌파; B기울기 = (B고점 - 시작) / (시작Bar - B고Bar); BX = 예비BX; } } if B기울기 != 0 then B추세선 = B기울기 * 시작Bar + 시작; if 단계 == 이평13하향돌파 and 이평55 > C then 단계 = 이평55아래시작; if 단계 == 이평55아래시작 and 이평55 < C and B추세선 < C then { 단계 = 이평55상향돌파; C고점 = H; C고Bar = 0; 예비CX = max(O,C); } if 단계 == 이평55상향돌파 then { if C고점 <= H then { C고점 = H; C고Bar = 0; } 예비CX = max(예비CX,O,C); if 이평55 > C then { 단계 = 이평55하향돌파; C기울기 = (C고점 - 시작) / (시작Bar - C고Bar); CX = 예비CX; } } if C기울기 != 0 then C추세선 = C기울기 * 시작Bar + 시작; if H[1] < H and iff(인사이드고>0,iff(인사이드고<H,1,0),1) then { 기준고 = H; 기준고Bar = 0; } else 기준고Bar = 기준고Bar + 1; if L[1] > L and iff(인사이드저>0,iff(인사이드저>L,1,0),1) then { 기준저 = L; 기준저Bar = 0; } else 기준저Bar = 기준저Bar + 1; if 인사이드고 * 인사이드저 == 0 and H[1] >= H and L[1] <= L then { 인사이드고 = H[1]; 인사이드저 = L[1]; } if 인사이드고 * 인사이드저 > 0 and (인사이드고 < H or 인사이드저 > L) then { 인사이드고 = 0; 인사이드저 = 0; } if 추세[1] ==하락후상승 then { 추세 = 상승; 원스윙 = 예정원스윙; } if 추세[1] == 상승후하락 then { 추세 = 하락; 원스윙 = 예정원스윙; } if 고Bar[1] > 기준고Bar and 기준고 == H[1] and H[1] > H and 저Bar[1] > 기준저Bar and 기준저 == L[1] and L[1] < L then { //아웃사이드일 경우 if 기준고Bar == 기준저Bar then { if 추세[1] == 상승 and 저[1] < 기준고 then 추세 = 하락후상승; else if 추세[1] == 상승 and 저[1] > 기준고 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] > 기준저 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] < 기준저 then 추세 = 하락후상승; } else if 기준고Bar > 기준저Bar then 추세 = 하락후상승; else if 기준저Bar > 기준고Bar then 추세 = 상승후하락; } else if 고Bar[1] > 기준고Bar and 저[1] < 기준고 and 기준고 == H[1] and H[1] > H then 추세 = 하락; else if 저Bar[1] > 기준저Bar and 고[1] > 기준저 and 기준저 == L[1] and L[1] < L then 추세 = 상승; if 추세[1] == 상승 and 추세 == 하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락 and 고[1] < 기준고 and 기준고 == H[1] and H[1] > H then { 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승 and 저[1] > 기준저 and 기준저 == L[1] and L[1] < L then { 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 하락후상승 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락후상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,52)+lowest(L,52))/2; var6 = max(선행스팬1, 선행스팬2); var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); buyCond1 = C >= var6[26] and 이평13 < C and RaffRegression == 1 and 라프회귀상 > 0 and CrossUp(C,라프회귀상) and B추세선 > 0 and (B추세선 < C or BX < C); buyCond2 = C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준편차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준편차상); buyCond2 = C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준오차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준오차상); if buyCond1 or buyCond2 or buyCond3 Then find(1); 즐거운 하루되세요 > 사자동굴 님이 쓴 글입니다. > 제목 : 종목 검색식 부탁드릴게요... > 진입신호가 나오는 종목 검색할 수 있을까요? 부탁드리겠습니다... 감사합니다. 관리자님 행복하시라요 ------------------------------------------------------------------------------ Input:Period(9), maPeriod(9), Period1(10),Period2(10),Period3(5), RSQR(14), p(50), n(4),미완성사용(0),RaffRegression(1),StdDeviation(1),StdError(1), P1(5),P2(3),P3(3), N1(50), P4(3), af(0.02), maxAF(0.2) ; Var:j(0),상승(1),하락(2),상승후하락(3),하락후상승(4), 기준고(0),기준저(0),기준고Bar(0),기준저Bar(0), 추세(0),원스윙(0),예정원스윙(0),인사이드고(0),인사이드저(0) ,k(0),X(0),num(0),승수(2), sumXY(0),sumX(0),sumY(0),sumX²(0),sumY²(0), 기울기(0),절편(0),선형회귀선(0),회귀채널폭(0),표준편차(0),표준오차(0), 라프회귀상(0),라프회귀하(0),표준편차상(0),표준편차하(0), 표준오차상(0),표준오차하(0), cnt(0), value(0),SonarValue(0),SonarSig(0), Relative(0), Simri(0), 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0); Var:이평3(0),이평13(0),이평55(0),단계(0), 이평3아래시작(1),이평3상향돌파(2),이평3하향돌파(3), 이평13아래시작(4),이평13상향돌파(5),이평13하향돌파(6), 이평55아래시작(7),이평55상향돌파(8),이평55하향돌파(9), 시작(0),시작Bar(0),예비시작(0),예비시작Bar(0), A고점(0),A고Bar(0),A기울기(0),A추세선(0),AX(0),예비AX(0), B고점(0),B고Bar(0),B기울기(0),B추세선(0),BX(0),예비BX(0), C고점(0),C고Bar(0),C기울기(0),C추세선(0),CX(0),예비CX(0), 이평선5(0), 이평선10(0), 이평선20(0), 이평기울기S1(0), 이평기울기S2(0), 이평선51(0); Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0); 이평선5= ma(C, 5); 이평선10= ma(c,10); 이평선20= MA(C, 20); 이평기울기S1= (C/이평선10)*100; 이평기울기S2= (이평선5/이평선10)*100; if SwingHigh(1,이평선5,3,3,7) != -1 Then 이평선51 = 이평선5[30]; var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); if crossup(var1,var2) Then value1 = H; if CrossDown(var1,var2) Then value2 = L; condition1 = var1 > var2 and var1 > var1[1] and var3 > 0.27 and var3 > var3[1] and C > value1; condition2 = var1 < var2 and var1 < var1[1] and var3 > 0.27 and var3 > var3[1] and C < value2; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } X = Index; if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[n]; 고Bar[1] = n; if 저Bar[1] > 고Bar[2] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = n + 1; for j = n + 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1] = L[k]; 저Bar[1] = k; } } if 미완성사용 == 0 then { if 고Bar[1] > 저Bar[1] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= h[n] then { 고[1] = h[n]; 고Bar[1] = n; } } } if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 미완성사용 == 1 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[n]; 저Bar[1] = n; if 고Bar[1] > 저Bar[2] then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = n + 1; for j = n + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1] = H[k]; 고Bar[1] = k; } } if 미완성사용 == 0 then { if 저Bar[1] > 고Bar[1] then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1] = L[n]; 저Bar[1] = n; } } } if 저Bar[1] == n or 고Bar[1] == n then { if 저Bar[1] == n then num = 저Bar[2] - 저Bar[1] + 1; if 고Bar[1] == n then num = 고Bar[2] - 고Bar[1] + 1; sumXY = accumN(X[n]*C[n],num); sumX = accumN(X[n],num); sumY = accumN(C[n],num); sumX²= accumN(X[n]^2,num); sumY²= accumN(C[n]^2,num); 기울기 = ((num * sumXY) - (sumX * sumY)) / (num * sumX²- sumX^2); 절편 = ((sumY * sumX²) - (sumX * sumXY)) / (num * sumX²- sumX^2); 회귀채널폭 = 0; for j = 0 to num - 1 { var1 = max(H[n+j]-(기울기*x[n+j]+절편),(기울기*x[n+j]+절편)-L[n+j]); if 회귀채널폭 < var1 then 회귀채널폭 = var1; } 표준편차 = sqrt((num*sumY² - sumY^2)/(num*(num-1))); 표준오차 = sqrt((1/(num*(num-2)))*(num*sumY²-sumY^2- ((num*sumXY-sumX*sumY)^2)/(num*sumX²-sumX^2))); } 선형회귀선 = 기울기 * x + 절편; 라프회귀상 = 선형회귀선 + 회귀채널폭; 라프회귀하 = 선형회귀선 - 회귀채널폭; 표준편차상 = 선형회귀선 + (표준편차 * 승수); 표준편차하 = 선형회귀선 - (표준편차 * 승수); 표준오차상 = 선형회귀선 + (표준오차 * 승수); 표준오차하 = 선형회귀선 - (표준오차 * 승수); 시작Bar = 시작Bar + 1; A고Bar = A고Bar + 1; B고Bar = B고Bar + 1; C고Bar = C고Bar + 1; for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } 이평3 = ma(C,3); 이평13 = ma(C,13); 이평55 = ma(C,55); if H >= Highest(H,p) - 0.01*(Highest(H,p)-Lowest(L,p)) then { 예비시작 = H; 예비시작Bar = 0; 단계 = 0; } else 예비시작Bar = 예비시작Bar + 1; if 예비시작 > 0 and 단계 == 0 and 이평3 > C then 단계 = 이평3아래시작; if 단계 == 이평3아래시작 and 이평3 < C then { 단계 = 이평3상향돌파; 시작 = 예비시작; 시작Bar = 예비시작Bar; A고점 = H; A고Bar = 0; 예비AX = max(O,C); A기울기 = 0; A추세선 = 0; AX = 0; B기울기 = 0; B추세선 = 0; BX = 0; C기울기 = 0; C추세선 = 0; CX = 0; } if 단계 == 이평3상향돌파 then { if A고점 <= H then { A고점 = H; A고Bar = 0; } 예비AX = max(예비AX,O,C); if 이평3 > C then { 단계 = 이평3하향돌파; A기울기 = (A고점 - 시작) / (시작Bar - A고Bar); AX = 예비AX; } } if A기울기 != 0 then A추세선 = A기울기 * 시작Bar + 시작; if 단계 == 이평3하향돌파 and 이평13 > C then 단계 = 이평13아래시작; if 단계 == 이평13아래시작 and 이평13 < C and A추세선 < C then { 단계 = 이평13상향돌파; B고점 = H; B고Bar = 0; 예비BX = max(O,C); } if 단계 == 이평13상향돌파 then { if B고점 <= H then { B고점 = H; B고Bar = 0; } 예비BX = max(예비BX,O,C); if 이평13 > C then { 단계 = 이평13하향돌파; B기울기 = (B고점 - 시작) / (시작Bar - B고Bar); BX = 예비BX; } } if B기울기 != 0 then B추세선 = B기울기 * 시작Bar + 시작; if 단계 == 이평13하향돌파 and 이평55 > C then 단계 = 이평55아래시작; if 단계 == 이평55아래시작 and 이평55 < C and B추세선 < C then { 단계 = 이평55상향돌파; C고점 = H; C고Bar = 0; 예비CX = max(O,C); } if 단계 == 이평55상향돌파 then { if C고점 <= H then { C고점 = H; C고Bar = 0; } 예비CX = max(예비CX,O,C); if 이평55 > C then { 단계 = 이평55하향돌파; C기울기 = (C고점 - 시작) / (시작Bar - C고Bar); CX = 예비CX; } } if C기울기 != 0 then C추세선 = C기울기 * 시작Bar + 시작; if H[1] < H and iff(인사이드고>0,iff(인사이드고<H,1,0),1) then { 기준고 = H; 기준고Bar = 0; } else 기준고Bar = 기준고Bar + 1; if L[1] > L and iff(인사이드저>0,iff(인사이드저>L,1,0),1) then { 기준저 = L; 기준저Bar = 0; } else 기준저Bar = 기준저Bar + 1; if 인사이드고 * 인사이드저 == 0 and H[1] >= H and L[1] <= L then { 인사이드고 = H[1]; 인사이드저 = L[1]; } if 인사이드고 * 인사이드저 > 0 and (인사이드고 < H or 인사이드저 > L) then { 인사이드고 = 0; 인사이드저 = 0; } if 추세[1] ==하락후상승 then { 추세 = 상승; 원스윙 = 예정원스윙; } if 추세[1] == 상승후하락 then { 추세 = 하락; 원스윙 = 예정원스윙; } if 고Bar[1] > 기준고Bar and 기준고 == H[1] and H[1] > H and 저Bar[1] > 기준저Bar and 기준저 == L[1] and L[1] < L then { //아웃사이드일 경우 if 기준고Bar == 기준저Bar then { if 추세[1] == 상승 and 저[1] < 기준고 then 추세 = 하락후상승; else if 추세[1] == 상승 and 저[1] > 기준고 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] > 기준저 then 추세 = 상승후하락; else if 추세[1] == 하락 and 고[1] < 기준저 then 추세 = 하락후상승; } else if 기준고Bar > 기준저Bar then 추세 = 하락후상승; else if 기준저Bar > 기준고Bar then 추세 = 상승후하락; } else if 고Bar[1] > 기준고Bar and 저[1] < 기준고 and 기준고 == H[1] and H[1] > H then 추세 = 하락; else if 저Bar[1] > 기준저Bar and 고[1] > 기준저 and 기준저 == L[1] and L[1] < L then 추세 = 상승; if 추세[1] == 상승 and 추세 == 하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락 and 고[1] < 기준고 and 기준고 == H[1] and H[1] > H then { 고[1] = 기준고; 고Bar[1] = 기준고Bar; 원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승 and 저[1] > 기준저 and 기준저 == L[1] and L[1] < L then { 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 하락후상승 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } if 추세[1] == 상승 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 상승후하락 then { for j = 18 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준저; 예정원스윙 = 기준고; } if 추세[1] == 하락 and 추세 == 하락후상승 then { for j = 18 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 고[1] = 기준고; 고Bar[1] = 기준고Bar; 저[1] = 기준저; 저Bar[1] = 기준저Bar; 원스윙 = 기준고; 예정원스윙 = 기준저; } 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,52)+lowest(L,52))/2; var6 = max(선행스팬1, 선행스팬2); var1 = LRS(c,Period1); var2 = ema(var1,Period2); var3 = _RSQR(var1,var2,RSQR); value = csar(af,maxAF); SonarValue = SONAR(Period); SonarSig = ema(SONAR(Period),maPeriod); Relative = RSI(Period); if C >= var6[26] and 이평13 < C and RaffRegression == 1 and 라프회귀상 > 0 and CrossUp(C,라프회귀상) and B추세선 > 0 and (B추세선 < C or BX < C) then Buy("라프회귀상돌파",OnClose,DEF); if C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준편차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준편차상) then Buy("표준편차상돌파",OnClose,DEF); If C >= var6[26] and 이평13 < C and RaffRegression == 1 and 표준오차상 > 0 and (B추세선 < C or BX < C) and CrossUp(C,표준오차상) then Buy("표준오차상돌파",OnClose,DEF); if 저[1] > C or (var1 < var2 and C < value2) or condition2 == True then ExitLong("추세종료",atmarket,DEF);