커뮤니티
문의드립니다.
2014-01-16 11:54:17
259
글번호 71469
항상 감사드립니다.
상기식에서 매수만 있는데...
매도부분 추가 부탁드립니다.(매도 기준은 매수의 반대로 입니다.)
그리고 정상적으로 작동되는데 문제가 없는지도 확인부탁드릴께요.
Input:n(5),r(1.025),지표사용(1);
Var:j(0),k(0),q(0),기간최저(0),고점상태(0),저점상태(0),고점기울기(0),고점절편(0),
저점기울기(0),저점절편(0),고점Bar(0),저점Bar(0),패턴번호(0),기울기(0),
저항선(0),지지선(0),상승(100),하락(-100),평행(1),
평균기울기(0), 평균대비하락각(0),평균대비상승각(0);
Var:macdVal(0),macdSig(0),stoK(0),stoD(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0),
고LRS[20](0),저LRS[20](0),sumXY[20](0),sumX[20](0),sumY[20](0),sumX²[20](0),
sumY²[20](0),고점상관계수[20](0),저점상관계수[20](0);
#---------------------------------------------------------#
# index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
고점Bar = 고점Bar + 1;
저점Bar = 저점Bar + 1;
#=========================================================#
# 파동선 계산
#=========================================================#
# 전고점(Peak) 계산
#---------------------------------------------------------#
if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then {
if 고Bar[1] > 저Bar[1] then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
고LRS[j+1] = 고LRS[j];
}
}
if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then {
고[1] = H[n];
고Bar[1] = n;
고Idx[1] = Index - 고Bar[1];
sumXY[1] = 고Idx[3]*고[3] + 고Idx[2]*고[2] + 고Idx[1]*고[1];
sumX[1] = 고Idx[3] + 고Idx[2] + 고Idx[1];
sumY[1] = 고[3] + 고[2] + 고[1];
sumX²[1] = 고Idx[3]^2 + 고Idx[2]^2 + 고Idx[1]^2;
고LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2);
}
}
#---------------------------------------------------------#
# 전저점(Trough) 계산
#---------------------------------------------------------#
if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then {
if 저Bar[1] > 고Bar[1] then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
저LRS[j+1] = 저LRS[j];
}
}
if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then {
저[1] = L[n];
저Bar[1] = n;
저Idx[1] = Index - 저Bar[1];
sumXY[1] = 저Idx[3]*저[3] + 저Idx[2]*저[2] + 저Idx[1]*저[1];
sumX[1] = 저Idx[3] + 저Idx[2] + 저Idx[1];
sumY[1] = 저[3] + 저[2] + 저[1];
sumX²[1] = 저Idx[3]^2 + 저Idx[2]^2 + 저Idx[1]^2;
저LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2);
}
}
#----------------------------------------------------------------------------#
# 선형회귀방정식 #
#----------------------------------------------------------------------------#
# nΣxy - (Σx)(Σy) #
# 기울기 a = --------------------- #
# nΣx²- (Σx)² #
# #
# = (n*sum(xy) - sum(x) * sum(y)) / (n*sum(x^2)-sum(x)^2) #
# #
# (Σy)(Σx²)-(Σx)(Σxy) #
# 절편 b = --------------------------- #
# nΣx²- (Σx)² #
# #
# = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) #
#----------------------------------------------------------------------------#
# 상관도 공식 #
#----------------------------------------------------------------------------#
# n(Σxy) - (Σx)(Σy)
# r = ------------------------------------- #
# √[nΣx²- (Σx)²][nΣy²- (Σy)²] #
# #
# =(n*sum(xy)-sum(x)*sum(y))/sqrt((n*sum(x^2)-sum(x)^2)(n*sum(y^2)-sum(y)^2))#
#----------------------------------------------------------------------------#
#=========================================================#
# 파동분석
#=========================================================#
기간최저 = Lowest(L,n*20);
if 저[1][1] != 저[1] or 저Bar[1][1] + 1 != 저Bar[1] then { //저점 변동이 있을 경우
#---------------------------------------------------------#
# 고점 추세선 분석
#---------------------------------------------------------#
k = 0;
for j = 1 to 19 {
sumXY[j] = sumXY[j-1] + 고Idx[j]*고[j];
sumX[j] = sumX[j-1] + 고Idx[j];
sumY[j] = sumY[j-1] + 고[j];
sumX²[j] = sumX²[j-1] + 고Idx[j]^2;
sumY²[j] = sumY²[j-1] + 고[j]^2;
#---------------------------------------------------------#
# 상관도가 가장 높은 선형회귀선 검색
#---------------------------------------------------------#
고점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/
Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2)));
if j >= 3 and
Abs(고점상관계수[k]) < Abs(고점상관계수[j]) then
k = j;
}
고점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2);
#---------------------------------------------------------#
# 가장 외곽을 지나는 추세선 검색
#---------------------------------------------------------#
q = 1;
for j = 2 to k {
if 고점기울기*고Bar[q]+고[q] < 고점기울기*고Bar[j]+고[j] then
q = j;
}
고점절편 = 고[q];
고점Bar = 고Bar[q];
#---------------------------------------------------------#
# 기울기 분석
#---------------------------------------------------------#
기울기 = 고점기울기/ma(C,n*4)*10000;
if 기울기 > 2 then 고점상태 = 상승;
else if 기울기 < -2 then 고점상태 = 하락;
else 고점상태 = 평행;
#---------------------------------------------------------#
# 저점 추세선 분석
#---------------------------------------------------------#
k = 0;
for j = 1 to 19 {
sumXY[j] = sumXY[j-1] + 저Idx[j]*저[j];
sumX[j] = sumX[j-1] + 저Idx[j];
sumY[j] = sumY[j-1] + 저[j];
sumX²[j] = sumX²[j-1] + 저Idx[j]^2;
sumY²[j] = sumY²[j-1] + 저[j]^2;
#---------------------------------------------------------#
# 상관도가 가장 높은 선형회귀선 검색
#---------------------------------------------------------#
저점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/
Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2)));
if j >= 3 and
Abs(저점상관계수[k]) < Abs(저점상관계수[j]) then
k = j;
}
저점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2);
#---------------------------------------------------------#
# 가장 외곽을 지나는 추세선 검색
#---------------------------------------------------------#
q = 1;
for j = 2 to k {
if 저점기울기*저Bar[q]+저[q] > 저점기울기*저Bar[j]+저[j] then
q = j;
}
저점절편 = 저[q];
저점Bar = 저Bar[q];
#---------------------------------------------------------#
# 기울기 분석
#---------------------------------------------------------#
기울기 = 저점기울기/ma(C,n*4)*10000;
if 기울기 > 2 then 저점상태 = 상승;
else if 기울기 < -2 then 저점상태 = 하락;
else 저점상태 = 평행;
#---------------------------------------------------------#
# 고점과 저점 추세를 비교하여 패턴판별
#---------------------------------------------------------#
패턴번호 = 0;
if 고점상태 == 평행 and 저점상태 == 평행 then 패턴번호 = 1;
if 고점상태 == 평행 and 저점상태 == 상승 then 패턴번호 = 2;
if 고점상태 == 하락 and 저점상태 == 평행 then 패턴번호 = 3;
if 고점상태 == 하락 and 저점상태 == 상승 then 패턴번호 = 4;
if 고점상태 == 하락 and 저점상태 == 하락 and
고점기울기 < 저점기울기 then 패턴번호 = 5;
#---------------------------------------------------------#
#원형바닥,삼봉바닥
#---------------------------------------------------------#
if 패턴번호 == 0 and
고LRS[4] < 고LRS[3] and 고LRS[3] < 고LRS[2] and 고LRS[2] < 고LRS[1] and
고LRS[4] < 0 and 고LRS[1] > 0 and
저LRS[4] < 저LRS[3] and 저LRS[3] < 저LRS[2] and 저LRS[2] < 저LRS[1] and
저LRS[4] < 0 and 저LRS[1] > 0 and
기간최저== min(저[6],저[5],저[4],저[3]) and
max(고[9],고[8],고[7],고[6],고[5]) > 고[2] then
패턴번호 = 6;
#---------------------------------------------------------#
# 바닥 V자 모형
#---------------------------------------------------------#
if 패턴번호 == 0 then {
for j = 1 to 3 {
기울기 = (고[j]-저[j])/abs(고Bar[j]-저Bar[j])+
(고[j]-저[j+1])/abs(고Bar[j]-저Bar[j+1]);
}
기울기 = 기울기/6;
평균기울기 = ema(기울기,n*10);
평균대비하락각 = Atan((고[1]-저[1])/abs(고Bar[1]-저Bar[1])/평균기울기)*180/pie();
평균대비상승각 = Atan((H-저[1])/저Bar[1]/평균기울기)*180/pie();
if 고bar[1]-저bar[1]>= n*3 and //장기하락, V자형 나오기 쉬움
평균대비하락각 >= 60 and 평균대비상승각 >= 60 then //각도가 60도이상
패턴번호 = 7;
}
if 패턴번호 > 5 then {
고점기울기 = 0;
고점절편 = 고[1];
고점Bar = 고Bar[1];
}
}
#---------------------------------------------------------#
# 저항선, 지지선 계산
#---------------------------------------------------------#
저항선 = 고점기울기 * 고점Bar + 고점절편;
지지선 = 저점기울기 * 저점Bar + 저점절편;
#=========================================================#
# 시스템식
#=========================================================#
macdVal = MACD(12,26);
macdSig = ema(macdVal,9);
stoK = StochasticsK(5,3);
stoD = StochasticsD(5,3,3);
if 패턴번호 > 0 and (저Bar[1]==n or C[1] <= 저항선[1]) and C > 저항선 and
iff(지표사용==1,(macdVal > macdSig and macdVal > 0) or (stoK > stoD and stoK > 50),1)
then {
if 패턴번호 == 1 then Buy("직사각");
if 패턴번호 == 2 then Buy("상향직각삼각");
if 패턴번호 == 3 then Buy("하향직각삼각");
if 패턴번호 == 4 then Buy("대칭삼각");
if 패턴번호 == 5 then Buy("하락쐐기");
if 패턴번호 == 6 then Buy("원형바닥");
if 패턴번호 == 7 then Buy("바닥V자");
}
if 지표사용 == 1 and 패턴번호 > 0 and 저항선 > 0 and C > 저항선 then {
if CrossUp(macdVal,macdSig) and macdVal > 0 then
Buy("MACD골드크로스");
if CrossUp(stoK,stoD) and stoK > 50 and (C > ma(c,5) or C > ma(C,20)) then
Buy("스토K골드크로스");
}
if 지표사용 == 1 then {
if CrossDown(macdVal,macdSig) and macdVal < 0 then
ExitLong("macd데드크로스");
if CrossDown(stoK,stoD) and stoK < 50 and (C < ma(c,5) or C < ma(C,20)) then
ExitLong("스토K데드크로스");
}
if CrossDown(C,저[1]) then ExitLong("추세종료");
답변 1
예스스탁 예스스탁 답변
2014-01-16 20:42:43
안녕하세요
예스스탁입니다.
문의하신 내용 답변드리기에는 너무 많은 시간이 소모되어
저희쪽에서 답변을 드리기 어렵습니다.
도움을 드리지 못해 죄송합니다.
하나의 식 작성에 너무 많은 시간으로
할당해 드리지 못하므로 양해 부탁드립니다.
즐거운 하루되세요
> 성공시대1 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 항상 감사드립니다.
상기식에서 매수만 있는데...
매도부분 추가 부탁드립니다.(매도 기준은 매수의 반대로 입니다.)
그리고 정상적으로 작동되는데 문제가 없는지도 확인부탁드릴께요.
Input:n(5),r(1.025),지표사용(1);
Var:j(0),k(0),q(0),기간최저(0),고점상태(0),저점상태(0),고점기울기(0),고점절편(0),
저점기울기(0),저점절편(0),고점Bar(0),저점Bar(0),패턴번호(0),기울기(0),
저항선(0),지지선(0),상승(100),하락(-100),평행(1),
평균기울기(0), 평균대비하락각(0),평균대비상승각(0);
Var:macdVal(0),macdSig(0),stoK(0),stoD(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0),고Idx[20](0),저Idx[20](0),
고LRS[20](0),저LRS[20](0),sumXY[20](0),sumX[20](0),sumY[20](0),sumX²[20](0),
sumY²[20](0),고점상관계수[20](0),저점상관계수[20](0);
#---------------------------------------------------------#
# index()와 마찬가지로 1봉이 바뀔 때마다 1씩 증가
#---------------------------------------------------------#
for j = 1 to 19 {
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
고Idx[j] = Index - 고Bar[j];
저Idx[j] = Index - 저Bar[j];
}
고점Bar = 고점Bar + 1;
저점Bar = 저점Bar + 1;
#=========================================================#
# 파동선 계산
#=========================================================#
# 전고점(Peak) 계산
#---------------------------------------------------------#
if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then {
if 고Bar[1] > 저Bar[1] then {
for j = 18 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
고Idx[j+1] = 고Idx[j];
고LRS[j+1] = 고LRS[j];
}
}
if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then {
고[1] = H[n];
고Bar[1] = n;
고Idx[1] = Index - 고Bar[1];
sumXY[1] = 고Idx[3]*고[3] + 고Idx[2]*고[2] + 고Idx[1]*고[1];
sumX[1] = 고Idx[3] + 고Idx[2] + 고Idx[1];
sumY[1] = 고[3] + 고[2] + 고[1];
sumX²[1] = 고Idx[3]^2 + 고Idx[2]^2 + 고Idx[1]^2;
고LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2);
}
}
#---------------------------------------------------------#
# 전저점(Trough) 계산
#---------------------------------------------------------#
if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then {
if 저Bar[1] > 고Bar[1] then {
for j = 18 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
저Idx[j+1] = 저Idx[j];
저LRS[j+1] = 저LRS[j];
}
}
if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then {
저[1] = L[n];
저Bar[1] = n;
저Idx[1] = Index - 저Bar[1];
sumXY[1] = 저Idx[3]*저[3] + 저Idx[2]*저[2] + 저Idx[1]*저[1];
sumX[1] = 저Idx[3] + 저Idx[2] + 저Idx[1];
sumY[1] = 저[3] + 저[2] + 저[1];
sumX²[1] = 저Idx[3]^2 + 저Idx[2]^2 + 저Idx[1]^2;
저LRS[1] = (3*sumXY[1] - sumX[1]*sumY[1])/(3*sumX²[1] - sumX[1]^2);
}
}
#----------------------------------------------------------------------------#
# 선형회귀방정식 #
#----------------------------------------------------------------------------#
# nΣxy - (Σx)(Σy) #
# 기울기 a = --------------------- #
# nΣx²- (Σx)² #
# #
# = (n*sum(xy) - sum(x) * sum(y)) / (n*sum(x^2)-sum(x)^2) #
# #
# (Σy)(Σx²)-(Σx)(Σxy) #
# 절편 b = --------------------------- #
# nΣx²- (Σx)² #
# #
# = (sum(y)*sum(x^2) - sum(x)*sum(xy)) / (n*sum(x^2) - sum(x)^2) #
#----------------------------------------------------------------------------#
# 상관도 공식 #
#----------------------------------------------------------------------------#
# n(Σxy) - (Σx)(Σy)
# r = ------------------------------------- #
# √[nΣx²- (Σx)²][nΣy²- (Σy)²] #
# #
# =(n*sum(xy)-sum(x)*sum(y))/sqrt((n*sum(x^2)-sum(x)^2)(n*sum(y^2)-sum(y)^2))#
#----------------------------------------------------------------------------#
#=========================================================#
# 파동분석
#=========================================================#
기간최저 = Lowest(L,n*20);
if 저[1][1] != 저[1] or 저Bar[1][1] + 1 != 저Bar[1] then { //저점 변동이 있을 경우
#---------------------------------------------------------#
# 고점 추세선 분석
#---------------------------------------------------------#
k = 0;
for j = 1 to 19 {
sumXY[j] = sumXY[j-1] + 고Idx[j]*고[j];
sumX[j] = sumX[j-1] + 고Idx[j];
sumY[j] = sumY[j-1] + 고[j];
sumX²[j] = sumX²[j-1] + 고Idx[j]^2;
sumY²[j] = sumY²[j-1] + 고[j]^2;
#---------------------------------------------------------#
# 상관도가 가장 높은 선형회귀선 검색
#---------------------------------------------------------#
고점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/
Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2)));
if j >= 3 and
Abs(고점상관계수[k]) < Abs(고점상관계수[j]) then
k = j;
}
고점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2);
#---------------------------------------------------------#
# 가장 외곽을 지나는 추세선 검색
#---------------------------------------------------------#
q = 1;
for j = 2 to k {
if 고점기울기*고Bar[q]+고[q] < 고점기울기*고Bar[j]+고[j] then
q = j;
}
고점절편 = 고[q];
고점Bar = 고Bar[q];
#---------------------------------------------------------#
# 기울기 분석
#---------------------------------------------------------#
기울기 = 고점기울기/ma(C,n*4)*10000;
if 기울기 > 2 then 고점상태 = 상승;
else if 기울기 < -2 then 고점상태 = 하락;
else 고점상태 = 평행;
#---------------------------------------------------------#
# 저점 추세선 분석
#---------------------------------------------------------#
k = 0;
for j = 1 to 19 {
sumXY[j] = sumXY[j-1] + 저Idx[j]*저[j];
sumX[j] = sumX[j-1] + 저Idx[j];
sumY[j] = sumY[j-1] + 저[j];
sumX²[j] = sumX²[j-1] + 저Idx[j]^2;
sumY²[j] = sumY²[j-1] + 저[j]^2;
#---------------------------------------------------------#
# 상관도가 가장 높은 선형회귀선 검색
#---------------------------------------------------------#
저점상관계수[j] = ((j*sumXY[j] - sumX[j]*sumY[j])/
Sqrt((j*sumX²[j] - sumX[j]^2)*(j*sumY²[j] - sumY[j]^2)));
if j >= 3 and
Abs(저점상관계수[k]) < Abs(저점상관계수[j]) then
k = j;
}
저점기울기 = (k*sumXY[k] - sumX[k]*sumY[k])/(k*sumX²[k] - sumX[k]^2);
#---------------------------------------------------------#
# 가장 외곽을 지나는 추세선 검색
#---------------------------------------------------------#
q = 1;
for j = 2 to k {
if 저점기울기*저Bar[q]+저[q] > 저점기울기*저Bar[j]+저[j] then
q = j;
}
저점절편 = 저[q];
저점Bar = 저Bar[q];
#---------------------------------------------------------#
# 기울기 분석
#---------------------------------------------------------#
기울기 = 저점기울기/ma(C,n*4)*10000;
if 기울기 > 2 then 저점상태 = 상승;
else if 기울기 < -2 then 저점상태 = 하락;
else 저점상태 = 평행;
#---------------------------------------------------------#
# 고점과 저점 추세를 비교하여 패턴판별
#---------------------------------------------------------#
패턴번호 = 0;
if 고점상태 == 평행 and 저점상태 == 평행 then 패턴번호 = 1;
if 고점상태 == 평행 and 저점상태 == 상승 then 패턴번호 = 2;
if 고점상태 == 하락 and 저점상태 == 평행 then 패턴번호 = 3;
if 고점상태 == 하락 and 저점상태 == 상승 then 패턴번호 = 4;
if 고점상태 == 하락 and 저점상태 == 하락 and
고점기울기 < 저점기울기 then 패턴번호 = 5;
#---------------------------------------------------------#
#원형바닥,삼봉바닥
#---------------------------------------------------------#
if 패턴번호 == 0 and
고LRS[4] < 고LRS[3] and 고LRS[3] < 고LRS[2] and 고LRS[2] < 고LRS[1] and
고LRS[4] < 0 and 고LRS[1] > 0 and
저LRS[4] < 저LRS[3] and 저LRS[3] < 저LRS[2] and 저LRS[2] < 저LRS[1] and
저LRS[4] < 0 and 저LRS[1] > 0 and
기간최저== min(저[6],저[5],저[4],저[3]) and
max(고[9],고[8],고[7],고[6],고[5]) > 고[2] then
패턴번호 = 6;
#---------------------------------------------------------#
# 바닥 V자 모형
#---------------------------------------------------------#
if 패턴번호 == 0 then {
for j = 1 to 3 {
기울기 = (고[j]-저[j])/abs(고Bar[j]-저Bar[j])+
(고[j]-저[j+1])/abs(고Bar[j]-저Bar[j+1]);
}
기울기 = 기울기/6;
평균기울기 = ema(기울기,n*10);
평균대비하락각 = Atan((고[1]-저[1])/abs(고Bar[1]-저Bar[1])/평균기울기)*180/pie();
평균대비상승각 = Atan((H-저[1])/저Bar[1]/평균기울기)*180/pie();
if 고bar[1]-저bar[1]>= n*3 and //장기하락, V자형 나오기 쉬움
평균대비하락각 >= 60 and 평균대비상승각 >= 60 then //각도가 60도이상
패턴번호 = 7;
}
if 패턴번호 > 5 then {
고점기울기 = 0;
고점절편 = 고[1];
고점Bar = 고Bar[1];
}
}
#---------------------------------------------------------#
# 저항선, 지지선 계산
#---------------------------------------------------------#
저항선 = 고점기울기 * 고점Bar + 고점절편;
지지선 = 저점기울기 * 저점Bar + 저점절편;
#=========================================================#
# 시스템식
#=========================================================#
macdVal = MACD(12,26);
macdSig = ema(macdVal,9);
stoK = StochasticsK(5,3);
stoD = StochasticsD(5,3,3);
if 패턴번호 > 0 and (저Bar[1]==n or C[1] <= 저항선[1]) and C > 저항선 and
iff(지표사용==1,(macdVal > macdSig and macdVal > 0) or (stoK > stoD and stoK > 50),1)
then {
if 패턴번호 == 1 then Buy("직사각");
if 패턴번호 == 2 then Buy("상향직각삼각");
if 패턴번호 == 3 then Buy("하향직각삼각");
if 패턴번호 == 4 then Buy("대칭삼각");
if 패턴번호 == 5 then Buy("하락쐐기");
if 패턴번호 == 6 then Buy("원형바닥");
if 패턴번호 == 7 then Buy("바닥V자");
}
if 지표사용 == 1 and 패턴번호 > 0 and 저항선 > 0 and C > 저항선 then {
if CrossUp(macdVal,macdSig) and macdVal > 0 then
Buy("MACD골드크로스");
if CrossUp(stoK,stoD) and stoK > 50 and (C > ma(c,5) or C > ma(C,20)) then
Buy("스토K골드크로스");
}
if 지표사용 == 1 then {
if CrossDown(macdVal,macdSig) and macdVal < 0 then
ExitLong("macd데드크로스");
if CrossDown(stoK,stoD) and stoK < 50 and (C < ma(c,5) or C < ma(C,20)) then
ExitLong("스토K데드크로스");
}
if CrossDown(C,저[1]) then ExitLong("추세종료");