커뮤니티
종목 검색식 부탁드릴게요...
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);
다음글