커뮤니티
시스템식 수정 부탁드립니다
2012-06-05 17:23:24
373
글번호 51699
input: 전환가격(300);
var: j(0), 꺾은선(0), 기준고(0), 기준저(0), 방향(0), 상승(100), 하락(-100), 색깔(0), 파랑(-1), 빨강(1), 전환(0),
확인(0), 확인표시(0), 전환표시(0), 천장(-10), 바닥(10), E(0), UB(0), E표시(0), UB표시(0), 대중소(0), 소중대(0),
대중소색깔(0), 진입(0), 청산(0), a25(0), a40(0), a50(0), a60(0), a75(0), b(0), 상상(0), 상(0), 중(0), 하(0), 하하(0), 등락폭(0),
w(0), w표시(0), 주기준고(0), 주기준저(0), 주색깔(0), 매수마크(0), 매도마크(0);
Array: 고[10](0), 저[10](0), wo[10](0), wh[10](0), wl[10](0), wc[10](0), 주방향[2](0), 주고[2](0), 주저[2](0);
E표시 = 0;
UB표시 = 0;
w표시 = 0;
전환표시 = 0;
확인표시 = 0;
대중소 = 0;
소중대 = 0;
진입 = 0;
청산 = 0;
매수마크 = 0;
매도마크 = 0;
if date[1] < date and dayofweek(date[1]) >= dayofweek(date) then {
if 주기준고 <= wc[0] or 주기준고 == 0 then 주기준고 = wc[0];
if 주기준저 >= wc[0] or 주기준저 == 0 then 주기준저 = wc[0];
주방향[1] = 주방향[0];
if 주기준저[1] + 전환가격 > wc[1] and 주기준저[1] + 전환가격 <= wc[0] Then
주방향[0] = 상승;
if 주기준고[1] - 전환가격 < wc[1] and 주기준고[1] - 전환가격 >= wc[0] Then
주방향[0] = 하락;
if 주방향[0] == 상승 and 주고[0] < wc[0] then 주색깔 = 빨강;
if 주방향[0] == 하락 and 주저[0] > wc[0] then 주색깔 = 파랑;
if 주방향[1] == 하락 and 주방향[0] == 상승 then {
주저[1] = 주저[0];
주저[0] = 주기준저;
주기준저 = wc[0];
주기준고 = wc[0];
if 주저[1] > 주저[0] then 주색깔 = 파랑;
}
if 주방향[1] == 상승 and 주방향[0] == 하락 then {
주고[1] = 주고[0];
주고[0] = 주기준고;
주기준저 = wc[0];
주기준고 = wc[0];
if 주고[1] < 주고[0] then 주색깔 = 빨강;
}
w = 주방향[0];
for j = 8 downto 0 {
wo[j+1] = wo[j];
wh[j+1] = wh[j];
wl[j+1] = wl[j];
wc[j+1] = wc[j];
}
wo[0] = o;
wh[0] = h;
wl[0] = l;
}
if wh[0] < h then wh[0] = h;
if wl[0] > L or wl[0] == o then wl[0] = l;
wc[0] = c;
if 기준고 <=C or 기준고 == 0 then 기준고 =c;
if 기준저 >=C or 기준저 == 0 then 기준저 =c;
if C[1] + 전환가격/3 <= C then E = 상승;
if C[1] - 전환가격/3 >= C then E = 하락;
if ma(v,40)/2.5 >= v then ub = 바닥;
if ma(v,40)*2.5 <= v then ub = 천장;
if 기준저[1] + 전환가격 > c[1] and 기준저[1] + 전환가격 <=c then 방향 = 상승;
if 기준고[1] - 전환가격 < c[1] and 기준고[1] - 전환가격 >= c then 방향 = 하락;
if 방향[1] == 하락 and 방향 == 상승 then {
for j = 8 downto 0 {
저[j+1] = 저[j];
}
저[0] = 기준저;
꺾은선 = 기준저;
기준저 = c;
기준고 = c;
if E == 상승 then {E표시 = 꺾은선 - 전환가격;
매수마크 = 매수마크 + 1;
}
if UB == 바닥 then {UB표시 = 꺾은선 - 2*전환가격;
매수마크 = 매수마크 + 1;
}
if w == 상승 then {
w표시 = 꺾은선 - 3*전환가격;
매수마크 = 매수마크 + 1;
}
E = 0;
UB = 0;
w = 0;
if 저[1] > 저[0] then 색깔 = 파랑;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 저[1] < 저[0] then {
if 저[2] >= 저[1] then 확인 = 바닥;
else 확인 = 0;
}
if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 -4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승;
if 전환 == 상승 and 전환[1] < 전환 then {
전환표시 = 꺾은선 - 5*전환가격;
진입 = 1;
}
if 고[1]-저[1] > 고[0]-저[1] and 고[0]-저[1] > 고[0]-저[0] then {
대중소 = 꺾은선 - 6*전환가격;
대중소색깔 = 빨강;
}
if 고[1]-저[1] < 고[0]-저[1] and 고[0]-저[1] < 고[0]-저[0] then {
소중대 = 꺾은선 -6*전환가격;
대중소색깔 = 파랑;
}
}
a75 = ((고[0]-저[1])-(고[0]-저[0])*0.25)/((고[0]-저[1])+(고[0]-저[0])*0.25);
a60 = ((고[0]-저[1])-(고[0]-저[0])*0.4)/((고[0]-저[1])+(고[0]-저[0])*0.4);
a50 = ((고[0]-저[1])-(고[0]-저[0])*0.5)/((고[0]-저[1])+(고[0]-저[0])*0.5);
a40 = ((고[0]-저[1])-(고[0]-저[0])*0.6)/((고[0]-저[1])+(고[0]-저[0])*0.6);
a25 = ((고[0]-저[1])-(고[0]-저[0])*0.75)/((고[0]-저[1])+(고[0]-저[0])*0.75);
b = 저[1]-(고[0]-저[0])*2;
상상 = (저[1]-a75+b)/(1-a75);
상 = (저[1]-a60+b)/(1-a60);
중 = (저[1]-a50+b)/(1-a50);
하 = (저[1]-a40+b)/(1-a40);
하하 = (저[1]-a25+b)/(1-a25);
if 등락폭[1] == -1 or 등락폭[1] == -2 Then
매수마크 = 매수마크 + 1;
if 방향[1] == 상승 and 방향 == 하락 then {
for j = 8 downto 0 {
고[j+1] = 고[j];
}
고[0] = 기준고;
꺾은선 = 기준고;
기준고 = c;
기준저 = c;
if E == 하락 then {E표시 = 꺾은선 + 전환가격;
매도마크 = 매도마크 + 1;}
if UB == 천장 then { UB표시 = 꺾은선 + 2*전환가격;
매도마크 = 매도마크 +1;}
if w == 하락 then {w표시 = 꺾은선 +3*전환가격;
매도마크 = 매도마크 +1;}
E = 0;
UB = 0;
W = 0;
if 고[1] < 고[0] then 색깔 = 빨강;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 고[1] > 고[0] then {
if 고[2] <= 고[1] then 확인 = 천장;
else 확인 = 0;
}
if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 고[1] > 고[0] and 저[1] > 저[0] then 전환=하락;
if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 5*전환가격;
if 고[1]-저[1] > 고[1]-저[0] and 고[1]-저[0] > 고[0]-저[0] then {
대중소 = 꺾은선 + 5*전환가격;
대중소색깔 = 파랑;
청산 = 1;
}
if 고[1]-저[1] < 고[1]-저[0] and 고[1]-저[0] < 고[0]-저[0] then {
소중대 = 꺾은선 + 5*전환가격;
대중소색깔 = 빨강;
}
if 고[2]-저[1] < 고[1]-저[1] and 고[1]-저[1] < 고[1]-저[0] then 청산 = 2;
}
a25 = (-(고[1]-저[0])+(고[0]-저[0])*0.75)/((고[1]-저[0])+(고[0]-저[0])*0.75);
a40 = (-(고[1]-저[0])+(고[0]-저[0])*0.6)/((고[1]-저[0])+(고[0]-저[0])*0.6);
a50 = (-(고[1]-저[0])+(고[0]-저[0])*0.5)/((고[1]-저[0])+(고[0]-저[0])*0.5);
a60 = (-(고[1]-저[0])+(고[0]-저[0])*0.4)/((고[1]-저[0])+(고[0]-저[0])*0.4);
a75 = (-(고[1]-저[0])+(고[0]-저[0])*0.25)/((고[1]-저[0])+(고[0]-저[0])*0.25);
b = 고[1] + (고[0]-저[0])+2;
상상 = (고[1]+a25+b)/(1+a25);
상 = (고[1]+a40+b)/(1+a40);
중 = (고[1]+a50+b)/(1+a50);
하 = (고[1]+a60+b)/(1+a60);
하하 = (고[1]+a75+b)/(1+a75);
if 등락폭[1] == 0 or 등락폭[1] == 1 or 등락폭[1] ==2 Then
매도마크 = 매도마크 + 1;
if iff(방향=상승, 기준고, 기준저) >= (상상+상)/2 then 등락폭 = 2;
else if iff(방향=상승, 기준고, 기준저) >= (상+중)/2 then 등락폭 = 1;
else if iff(방향=상승, 기준고, 기준저) > (중+하)/2 then 등락폭 = 0;
else if iff(방향=상승, 기준고, 기준저) > (하+하하)/2 then 등락폭 = -1;
else 등락폭 = -2;
if MarketPosition()==0 then {
if 진입 == 1 then buy("눌림목매수");
}
if MarketPosition() == 1 then {
if 청산 == 1 then ExitLong("대중소");
if 청산 == 2 then ExitLong("소중대");
if 저[0] > C then ExitLong("손절매");
if 고[1]>고[0] then ExitLong("전고점갱신실패");
if 매도마크 >= 3 then exitlong("매도마크");
}
----------------------------------------------------------
매수신호가 발생하질않네요 어디가 문제일까요
손봐주시면 감사하겠습니다
고생하십시요
답변 1
예스스탁 예스스탁 답변
2012-06-07 11:08:11
안녕하세요
예스스탁입니다.
올려주신 내용은 저희쪽에서 수정해 드릴수가 없습니다.
수식에서 사용되는 값들에 어떤 값도 현재 할당되지 않는 상태인데
모두 0 혹은 변수선언시 지정한 값만 발생합니다
식상 모든 if조건을 직접 다시 점검해 보셔야 합니다.
즐거운 하루되세요
> 사자동굴 님이 쓴 글입니다.
> 제목 : 시스템식 수정 부탁드립니다
> input: 전환가격(300);
var: j(0), 꺾은선(0), 기준고(0), 기준저(0), 방향(0), 상승(100), 하락(-100), 색깔(0), 파랑(-1), 빨강(1), 전환(0),
확인(0), 확인표시(0), 전환표시(0), 천장(-10), 바닥(10), E(0), UB(0), E표시(0), UB표시(0), 대중소(0), 소중대(0),
대중소색깔(0), 진입(0), 청산(0), a25(0), a40(0), a50(0), a60(0), a75(0), b(0), 상상(0), 상(0), 중(0), 하(0), 하하(0), 등락폭(0),
w(0), w표시(0), 주기준고(0), 주기준저(0), 주색깔(0), 매수마크(0), 매도마크(0);
Array: 고[10](0), 저[10](0), wo[10](0), wh[10](0), wl[10](0), wc[10](0), 주방향[2](0), 주고[2](0), 주저[2](0);
E표시 = 0;
UB표시 = 0;
w표시 = 0;
전환표시 = 0;
확인표시 = 0;
대중소 = 0;
소중대 = 0;
진입 = 0;
청산 = 0;
매수마크 = 0;
매도마크 = 0;
if date[1] < date and dayofweek(date[1]) >= dayofweek(date) then {
if 주기준고 <= wc[0] or 주기준고 == 0 then 주기준고 = wc[0];
if 주기준저 >= wc[0] or 주기준저 == 0 then 주기준저 = wc[0];
주방향[1] = 주방향[0];
if 주기준저[1] + 전환가격 > wc[1] and 주기준저[1] + 전환가격 <= wc[0] Then
주방향[0] = 상승;
if 주기준고[1] - 전환가격 < wc[1] and 주기준고[1] - 전환가격 >= wc[0] Then
주방향[0] = 하락;
if 주방향[0] == 상승 and 주고[0] < wc[0] then 주색깔 = 빨강;
if 주방향[0] == 하락 and 주저[0] > wc[0] then 주색깔 = 파랑;
if 주방향[1] == 하락 and 주방향[0] == 상승 then {
주저[1] = 주저[0];
주저[0] = 주기준저;
주기준저 = wc[0];
주기준고 = wc[0];
if 주저[1] > 주저[0] then 주색깔 = 파랑;
}
if 주방향[1] == 상승 and 주방향[0] == 하락 then {
주고[1] = 주고[0];
주고[0] = 주기준고;
주기준저 = wc[0];
주기준고 = wc[0];
if 주고[1] < 주고[0] then 주색깔 = 빨강;
}
w = 주방향[0];
for j = 8 downto 0 {
wo[j+1] = wo[j];
wh[j+1] = wh[j];
wl[j+1] = wl[j];
wc[j+1] = wc[j];
}
wo[0] = o;
wh[0] = h;
wl[0] = l;
}
if wh[0] < h then wh[0] = h;
if wl[0] > L or wl[0] == o then wl[0] = l;
wc[0] = c;
if 기준고 <=C or 기준고 == 0 then 기준고 =c;
if 기준저 >=C or 기준저 == 0 then 기준저 =c;
if C[1] + 전환가격/3 <= C then E = 상승;
if C[1] - 전환가격/3 >= C then E = 하락;
if ma(v,40)/2.5 >= v then ub = 바닥;
if ma(v,40)*2.5 <= v then ub = 천장;
if 기준저[1] + 전환가격 > c[1] and 기준저[1] + 전환가격 <=c then 방향 = 상승;
if 기준고[1] - 전환가격 < c[1] and 기준고[1] - 전환가격 >= c then 방향 = 하락;
if 방향[1] == 하락 and 방향 == 상승 then {
for j = 8 downto 0 {
저[j+1] = 저[j];
}
저[0] = 기준저;
꺾은선 = 기준저;
기준저 = c;
기준고 = c;
if E == 상승 then {E표시 = 꺾은선 - 전환가격;
매수마크 = 매수마크 + 1;
}
if UB == 바닥 then {UB표시 = 꺾은선 - 2*전환가격;
매수마크 = 매수마크 + 1;
}
if w == 상승 then {
w표시 = 꺾은선 - 3*전환가격;
매수마크 = 매수마크 + 1;
}
E = 0;
UB = 0;
w = 0;
if 저[1] > 저[0] then 색깔 = 파랑;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 저[1] < 저[0] then {
if 저[2] >= 저[1] then 확인 = 바닥;
else 확인 = 0;
}
if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 -4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승;
if 전환 == 상승 and 전환[1] < 전환 then {
전환표시 = 꺾은선 - 5*전환가격;
진입 = 1;
}
if 고[1]-저[1] > 고[0]-저[1] and 고[0]-저[1] > 고[0]-저[0] then {
대중소 = 꺾은선 - 6*전환가격;
대중소색깔 = 빨강;
}
if 고[1]-저[1] < 고[0]-저[1] and 고[0]-저[1] < 고[0]-저[0] then {
소중대 = 꺾은선 -6*전환가격;
대중소색깔 = 파랑;
}
}
a75 = ((고[0]-저[1])-(고[0]-저[0])*0.25)/((고[0]-저[1])+(고[0]-저[0])*0.25);
a60 = ((고[0]-저[1])-(고[0]-저[0])*0.4)/((고[0]-저[1])+(고[0]-저[0])*0.4);
a50 = ((고[0]-저[1])-(고[0]-저[0])*0.5)/((고[0]-저[1])+(고[0]-저[0])*0.5);
a40 = ((고[0]-저[1])-(고[0]-저[0])*0.6)/((고[0]-저[1])+(고[0]-저[0])*0.6);
a25 = ((고[0]-저[1])-(고[0]-저[0])*0.75)/((고[0]-저[1])+(고[0]-저[0])*0.75);
b = 저[1]-(고[0]-저[0])*2;
상상 = (저[1]-a75+b)/(1-a75);
상 = (저[1]-a60+b)/(1-a60);
중 = (저[1]-a50+b)/(1-a50);
하 = (저[1]-a40+b)/(1-a40);
하하 = (저[1]-a25+b)/(1-a25);
if 등락폭[1] == -1 or 등락폭[1] == -2 Then
매수마크 = 매수마크 + 1;
if 방향[1] == 상승 and 방향 == 하락 then {
for j = 8 downto 0 {
고[j+1] = 고[j];
}
고[0] = 기준고;
꺾은선 = 기준고;
기준고 = c;
기준저 = c;
if E == 하락 then {E표시 = 꺾은선 + 전환가격;
매도마크 = 매도마크 + 1;}
if UB == 천장 then { UB표시 = 꺾은선 + 2*전환가격;
매도마크 = 매도마크 +1;}
if w == 하락 then {w표시 = 꺾은선 +3*전환가격;
매도마크 = 매도마크 +1;}
E = 0;
UB = 0;
W = 0;
if 고[1] < 고[0] then 색깔 = 빨강;
if 색깔[1] !=색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 고[1] > 고[0] then {
if 고[2] <= 고[1] then 확인 = 천장;
else 확인 = 0;
}
if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 4*전환가격;
if 색깔[1] !=색깔 then 전환 = 0;
if 고[1] > 고[0] and 저[1] > 저[0] then 전환=하락;
if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 5*전환가격;
if 고[1]-저[1] > 고[1]-저[0] and 고[1]-저[0] > 고[0]-저[0] then {
대중소 = 꺾은선 + 5*전환가격;
대중소색깔 = 파랑;
청산 = 1;
}
if 고[1]-저[1] < 고[1]-저[0] and 고[1]-저[0] < 고[0]-저[0] then {
소중대 = 꺾은선 + 5*전환가격;
대중소색깔 = 빨강;
}
if 고[2]-저[1] < 고[1]-저[1] and 고[1]-저[1] < 고[1]-저[0] then 청산 = 2;
}
a25 = (-(고[1]-저[0])+(고[0]-저[0])*0.75)/((고[1]-저[0])+(고[0]-저[0])*0.75);
a40 = (-(고[1]-저[0])+(고[0]-저[0])*0.6)/((고[1]-저[0])+(고[0]-저[0])*0.6);
a50 = (-(고[1]-저[0])+(고[0]-저[0])*0.5)/((고[1]-저[0])+(고[0]-저[0])*0.5);
a60 = (-(고[1]-저[0])+(고[0]-저[0])*0.4)/((고[1]-저[0])+(고[0]-저[0])*0.4);
a75 = (-(고[1]-저[0])+(고[0]-저[0])*0.25)/((고[1]-저[0])+(고[0]-저[0])*0.25);
b = 고[1] + (고[0]-저[0])+2;
상상 = (고[1]+a25+b)/(1+a25);
상 = (고[1]+a40+b)/(1+a40);
중 = (고[1]+a50+b)/(1+a50);
하 = (고[1]+a60+b)/(1+a60);
하하 = (고[1]+a75+b)/(1+a75);
if 등락폭[1] == 0 or 등락폭[1] == 1 or 등락폭[1] ==2 Then
매도마크 = 매도마크 + 1;
if iff(방향=상승, 기준고, 기준저) >= (상상+상)/2 then 등락폭 = 2;
else if iff(방향=상승, 기준고, 기준저) >= (상+중)/2 then 등락폭 = 1;
else if iff(방향=상승, 기준고, 기준저) > (중+하)/2 then 등락폭 = 0;
else if iff(방향=상승, 기준고, 기준저) > (하+하하)/2 then 등락폭 = -1;
else 등락폭 = -2;
if MarketPosition()==0 then {
if 진입 == 1 then buy("눌림목매수");
}
if MarketPosition() == 1 then {
if 청산 == 1 then ExitLong("대중소");
if 청산 == 2 then ExitLong("소중대");
if 저[0] > C then ExitLong("손절매");
if 고[1]>고[0] then ExitLong("전고점갱신실패");
if 매도마크 >= 3 then exitlong("매도마크");
}
----------------------------------------------------------
매수신호가 발생하질않네요 어디가 문제일까요
손봐주시면 감사하겠습니다
고생하십시요
다음글
이전글