커뮤니티
질문드립니다.
2013-09-12 22:50:35
174
글번호 67526
var : upv(0),dnv(0),upsum(0),dnsum(0);
var1 = C - C[1];#전일대비값
if var1 > 0 Then{
value1 = 1;
UPv = abs(var1);#최근 상승시 전일대비값 - 절대값으로 저장
}
if var1 < 0 Then{
value1 = -1;
dnv = abs(var1); #최근 하락시 전일대비값 - 절대값으로 저장
}
#상승구간으로 전환
if value1 == 1 and value1 != 1 Then
upsum = 0;
if value1 == 1 Then{
#상승구간에서 전일대비값 절대값 누적
upsum = upsum+abs(var1);
#누적값이 최근하락구간의 마지막 전일대비값보다 크면 매수
if UPsum > dnv Then
buy();
}
#하락구간으로 전환
if value1 == 1 and value1 != 1 Then
dnsum = 0;
if value1 == -1 Then{
#하락구간에서 전일대비 절대값 누적
dnsum = dnsum+abs(var1);
#누적값이 최근상승구간의 마지막 전일대비값보다 크면 매도
if dnsum >= Upv Then
sell();
}
위식은 어제 제가 문의드렸던 답변인데요
위식은 if c>c[1] then buy();
if c<c[1] then sell(); 과 똑같은 결과가 나오는 것 같습니다.
제가 구현하고 싶은것은 전일대비 상승 또는 하락시 매수매도가 나오는게 아니라
전일대비 상승폭과 하락폭을 기준값으로 잡고 계속 종가값이 오르면 마지막상승일의 (오늘종가-전일종가)의 상승폭을 다음에 나올 봉이 하락시 하락폭이 상승폭을 넘어서면 매도 또는 매수값이 나오게 하는겁니다.
예) 1일 100
2일 102(전일대비 상승폭 +2) 기준값: +2
3일 105(전일대비 상승폭 +3) 기준값:+3
4일 101(전일대비 하락폭 -4) 기준값:-4 이전기준값의 +3의 절대값을 넘는 4의 하락폭이
나와서 매도신호 발생
5일 106(전일대비 상승폭 +5) 기준값:+5 이전기준값의 -4의 절대값을 넘는 5의 상승폭이
나와서 매수신호 발생
6일 107(전일대비 상승폭 +1) 기준값:+1
위의 예는 쉽게 말해서 종가값이 계속상승하면 마지막 상승폭을 기준값을 가지고 있다가
기준값의 절대값을 넘는 하락폭이 나오면 매도신호가 발생하는 겁니다.
위의 예에서 만일
마지막 상승폭이 +5가 나와서 기준값이 +5일때
예) 1일 100
2일 105 (상승폭+5) 기준값:+5
3일 103 (하락폭-3) 기준값은 여전히 +5
4일 100 (하락폭-3) 이틀연속하락하여 이틀연속하락값은 더하면 -6 이전기준값 +5를 넘는
하락폭이 나와서 매도신호발생 및 기준값은 마지막 하락폭 -3
위의 예에서
1일 100
2일 105 (상승폭 +5) 기준값 :+5
3일 103 (하락폭 -3) 기준값: +5
4일 102 (하락폭 -1) 기준값:+5 이틀연속하락하여 하락값은 더하더라도 -4이므로 기준값
+5보다 작으므로 기존 기준값 유지
5일 104 (상승폭 +2) 기준값:+2
이해가 힘드시죠? 아래에 종합주가 지수를 토대로 기준값 및 신호발생을 만들어보았습니다.
밑에서 부터 위로 보세요
날짜 종가 전일대비 기준값 연속상승,하락값을 더한값 매매신호
2013-08-29 1,907.54 ▲23.02 23.02
2013-08-28 1,884.52 ▼1.32 17.7
2013-08-27 1,885.84 ▼2.02 17.7
2013-08-26 1,887.86 ▲17.70 17.7
2013-08-23 1,870.16 ▲21.04 21.04 기준값 -18.34보다 큰 21.04의 상승폭이므로 매수신호발생
2013-08-22 1,849.12 ▼18.34 -18.34
2013-08-21 1,867.46 ▼20.39 -20.39
2013-08-20 1,887.85 ▼29.79 -29.79 -36.06 기준값 +10.88보다 3일연속하락폭의 합이 -36.06 하락폭이 더 크므로 매도신호발생
2013-08-19 1,917.64 ▼2.47 10.88 -6.27
2013-08-16 1,920.11 ▼3.80 10.88 -3.8
2013-08-14 1,923.91 ▲10.88 10.88
2013-08-13 1,913.03 ▲28.20 28.2
2013-08-12 1,884.83 ▲4.12 4.12 기준값 -3.26보다 큰 4.12의 상승폭이므로 매수신호발생
2013-08-09 1,880.71 ▼3.26 -3.26
2013-08-08 1,883.97 ▲5.64 -28.29
2013-08-07 1,878.33 ▼28.29 -28.29
2013-08-06 1,906.62 ▼9.60 -9.6
2013-08-05 1,916.22 ▼7.16 -7.16 기준값 +2.64보다 큰 -7.16의 하락폭이므로 매도신호발생
2013-08-02 1,923.38 ▲2.64 2.64
2013-08-01 1,920.74 ▲6.71 6.71
2013-07-31 1,914.03 ▼3.02 17.16
2013-07-30 1,917.05 ▲17.16 17.16 기준값 -10.92보다 큰 17.16의 상승폭이므로 매수신호발생
2013-07-29 1,899.89 ▼10.92 -10.92 기준값 +1.20보다 큰 -10.92의 하락폭이므로 매도신호발생
2013-07-26 1,910.81 ▲1.20 1.2
2013-07-25 1,909.61 ▼2.47 7.93
2013-07-24 1,912.08 ▲7.93 7.93
2013-07-23 1,904.15 ▲23.80 23.08
2013-07-22 1,880.35 ▲8.94 8.94 기준값-4.07보다 큰 8.94의 상승폭이므로 매수신호발생
2013-07-19 1,871.41 ▼4.07 -4.07
2013-07-18 1,875.48 ▼12.01 -12.01
답변 1
예스스탁 예스스탁 답변
2013-09-13 15:33:48
> kcg9005 님이 쓴 글입니다.
> 제목 : 질문드립니다.
> var : upv(0),dnv(0),upsum(0),dnsum(0);
var1 = C - C[1];#전일대비값
if var1 > 0 Then{
value1 = 1;
UPv = abs(var1);#최근 상승시 전일대비값 - 절대값으로 저장
}
if var1 < 0 Then{
value1 = -1;
dnv = abs(var1); #최근 하락시 전일대비값 - 절대값으로 저장
}
#상승구간으로 전환
if value1 == 1 and value1 != 1 Then
upsum = 0;
if value1 == 1 Then{
#상승구간에서 전일대비값 절대값 누적
upsum = upsum+abs(var1);
#누적값이 최근하락구간의 마지막 전일대비값보다 크면 매수
if UPsum > dnv Then
buy();
}
#하락구간으로 전환
if value1 == 1 and value1 != 1 Then
dnsum = 0;
if value1 == -1 Then{
#하락구간에서 전일대비 절대값 누적
dnsum = dnsum+abs(var1);
#누적값이 최근상승구간의 마지막 전일대비값보다 크면 매도
if dnsum >= Upv Then
sell();
}
위식은 어제 제가 문의드렸던 답변인데요
위식은 if c>c[1] then buy();
if c<c[1] then sell(); 과 똑같은 결과가 나오는 것 같습니다.
제가 구현하고 싶은것은 전일대비 상승 또는 하락시 매수매도가 나오는게 아니라
전일대비 상승폭과 하락폭을 기준값으로 잡고 계속 종가값이 오르면 마지막상승일의 (오늘종가-전일종가)의 상승폭을 다음에 나올 봉이 하락시 하락폭이 상승폭을 넘어서면 매도 또는 매수값이 나오게 하는겁니다.
예) 1일 100
2일 102(전일대비 상승폭 +2) 기준값: +2
3일 105(전일대비 상승폭 +3) 기준값:+3
4일 101(전일대비 하락폭 -4) 기준값:-4 이전기준값의 +3의 절대값을 넘는 4의 하락폭이
나와서 매도신호 발생
5일 106(전일대비 상승폭 +5) 기준값:+5 이전기준값의 -4의 절대값을 넘는 5의 상승폭이
나와서 매수신호 발생
6일 107(전일대비 상승폭 +1) 기준값:+1
위의 예는 쉽게 말해서 종가값이 계속상승하면 마지막 상승폭을 기준값을 가지고 있다가
기준값의 절대값을 넘는 하락폭이 나오면 매도신호가 발생하는 겁니다.
위의 예에서 만일
마지막 상승폭이 +5가 나와서 기준값이 +5일때
예) 1일 100
2일 105 (상승폭+5) 기준값:+5
3일 103 (하락폭-3) 기준값은 여전히 +5
4일 100 (하락폭-3) 이틀연속하락하여 이틀연속하락값은 더하면 -6 이전기준값 +5를 넘는
하락폭이 나와서 매도신호발생 및 기준값은 마지막 하락폭 -3
위의 예에서
1일 100
2일 105 (상승폭 +5) 기준값 :+5
3일 103 (하락폭 -3) 기준값: +5
4일 102 (하락폭 -1) 기준값:+5 이틀연속하락하여 하락값은 더하더라도 -4이므로 기준값
+5보다 작으므로 기존 기준값 유지
5일 104 (상승폭 +2) 기준값:+2
이해가 힘드시죠? 아래에 종합주가 지수를 토대로 기준값 및 신호발생을 만들어보았습니다.
밑에서 부터 위로 보세요
날짜 종가 전일대비 기준값 연속상승,하락값을 더한값 매매신호
2013-08-29 1,907.54 ▲23.02 23.02
2013-08-28 1,884.52 ▼1.32 17.7
2013-08-27 1,885.84 ▼2.02 17.7
2013-08-26 1,887.86 ▲17.70 17.7
2013-08-23 1,870.16 ▲21.04 21.04 기준값 -18.34보다 큰 21.04의 상승폭이므로 매수신호발생
2013-08-22 1,849.12 ▼18.34 -18.34
2013-08-21 1,867.46 ▼20.39 -20.39
2013-08-20 1,887.85 ▼29.79 -29.79 -36.06 기준값 +10.88보다 3일연속하락폭의 합이 -36.06 하락폭이 더 크므로 매도신호발생
2013-08-19 1,917.64 ▼2.47 10.88 -6.27
2013-08-16 1,920.11 ▼3.80 10.88 -3.8
2013-08-14 1,923.91 ▲10.88 10.88
2013-08-13 1,913.03 ▲28.20 28.2
2013-08-12 1,884.83 ▲4.12 4.12 기준값 -3.26보다 큰 4.12의 상승폭이므로 매수신호발생
2013-08-09 1,880.71 ▼3.26 -3.26
2013-08-08 1,883.97 ▲5.64 -28.29
2013-08-07 1,878.33 ▼28.29 -28.29
2013-08-06 1,906.62 ▼9.60 -9.6
2013-08-05 1,916.22 ▼7.16 -7.16 기준값 +2.64보다 큰 -7.16의 하락폭이므로 매도신호발생
2013-08-02 1,923.38 ▲2.64 2.64
2013-08-01 1,920.74 ▲6.71 6.71
2013-07-31 1,914.03 ▼3.02 17.16
2013-07-30 1,917.05 ▲17.16 17.16 기준값 -10.92보다 큰 17.16의 상승폭이므로 매수신호발생
2013-07-29 1,899.89 ▼10.92 -10.92 기준값 +1.20보다 큰 -10.92의 하락폭이므로 매도신호발생
2013-07-26 1,910.81 ▲1.20 1.2
2013-07-25 1,909.61 ▼2.47 7.93
2013-07-24 1,912.08 ▲7.93 7.93
2013-07-23 1,904.15 ▲23.80 23.08
2013-07-22 1,880.35 ▲8.94 8.94 기준값-4.07보다 큰 8.94의 상승폭이므로 매수신호발생
2013-07-19 1,871.41 ▼4.07 -4.07
2013-07-18 1,875.48 ▼12.01 -12.01