커뮤니티
재질문 드릴께요.
2009-04-24 16:30:20
1449
글번호 21894
그림 1
수정해 주신 수식으로 돌려본 결과, 스윙점은 원하는 시점에 나옵니다.
그런데, 제가 의도한 것은 최근고점이 전고점보다 낮아질 때 매도,
최근 저점이 전저점보다 높아질 때 매수인데,
구현되는 진입 시점은 최근고점이 전고점보다 높았음에도 매수도 하고 매도도 하고,
최근 저점이 전저점보다 낮았음에도 매도도 하고 매수도 하고...
암튼 최근고점과 전고점이 비교 조건을 주었음에도 스윙점이 나오면 무조건 진입을 하는 것 같습니다.
또 어떤 때에는 들어가지도 않구요.
그림에서 1번에는 최근고점이 전고점보다 낮았기에 매도진입했어야 하지만 들어가지 않았고,
2번 지점에서는 최근저점이 전저점보다 낮았기에 매수진입하지 말았어야 하는데, 들어가 버렸고,
3번 지점에서는 또 매수진입을 했어야 함에도 들어가지 않는 등 일부 문제점이 있으나
혼자서 수정해 보려고 하루 종일 고민해 보고 이것 저것 고쳐도 보았지만 도저히 안되네요. 부탁 좀 드리겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 수정 좀 부탁드립니다.
> 안녕하세요
예스스탁입니다.
스윙함수는 기준봉과 좌우측봉의 값을 비교하여
값의 만족유무를 판단합니다.
수식에서는 따로 수정될 부분이 없는것 같습니다.
단지 스윙이 처음발생하는 시점에 신호가 나게 수정했으며
좌우측 봉값을 조절하여 스윙점을 의도하시는 스윙점과 맞추셔야 합니다.
스윙함수로 대체가 안될경우에는 따로 풀어서 작성해야 합니다.
input : maP(5),Left(3),Right(3),Period(100),N(50);
var1 = SwingLow(1,ma(c,maP),Left,Right,Period); ##최근 저점
var2 = SwingLow(2,ma(c,maP),Left,Right,Period); ##직전 저점
var3 = SwingLowBar(1,ma(c,maP),Left,Right,Period); ## 최근 저점 발생시점
var4 = SwingLowBar(2,ma(c,maP),Left,Right,Period); ## 직전 저점 발생시점
var5 = SwingHigh(1,ma(c,maP),Left,Right,Period); ##최근 고점
var6 = SwingHigh(2,ma(c,maP),Left,Right,Period); ##직전 고점
var7 = SwingHighBar(1,ma(c,maP),Left,Right,Period); ## 최근 고점 발생시점
var8 = SwingHighBar(2,ma(c,maP),Left,Right,Period); ## 직전 고점 발생시점
## 쌍바닥
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var1 > 0 and var2 > 0 and ## 최근저점, 직전저점 발생했음.
var1 > var2 and ## 최근 저점이 직전저점대비 높음.
var3 == right and ## 최근저점 발생시점 right변수 이전
var4 <= var3+N Then ## 직전저점과 최근저점의 간격은 N봉이내
buy("b");
# 쌍봉
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var5 > 0 and var6 > 0 and ## 최근고점, 직전고점 발생했음.
var7 < var8 and ## 최근 고점이 직전고점대비 작음.
var7 == right and ## 최근고점 발생시점 3~6개봉 이내
var8 <= Var7+N Then ## 직전고점과 최근고점의 간격은 N봉이내
Sell("s");
//청산
SetStopEndofday(144500);
즐거운 하루되세요
- 1. 22104_전고점전저점2.JPG (0.04 MB)
답변 1
예스스탁 예스스탁 답변
2009-04-24 17:59:11
안녕하세요
예스스탁입니다.
매도식이 잘못된 부분이 있어 수정했습니다.
input : maP(5),Left(3),Right(1),Period(100),N(50);
var1 = SwingLow(1,ma(c,maP),Left,Right,Period); ##최근 저점
var2 = SwingLow(2,ma(c,maP),Left,Right,Period); ##직전 저점
var3 = SwingLowBar(1,ma(c,maP),Left,Right,Period); ## 최근 저점 발생시점
var4 = SwingLowBar(2,ma(c,maP),Left,Right,Period); ## 직전 저점 발생시점
var5 = SwingHigh(1,ma(c,maP),Left,Right,Period); ##최근 고점
var6 = SwingHigh(2,ma(c,maP),Left,Right,Period); ##직전 고점
var7 = SwingHighBar(1,ma(c,maP),Left,Right,Period); ## 최근 고점 발생시점
var8 = SwingHighBar(2,ma(c,maP),Left,Right,Period); ## 직전 고점 발생시점
## 쌍바닥
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var1 > 0 and var2 > 0 and ## 최근저점, 직전저점 발생했음.
var1 > var2 and ## 최근 저점이 직전저점대비 높음.
var3 == right and ## 최근저점 발생시점 right변수 이전
var4 <= var3+N Then ## 직전저점과 최근저점의 간격은 N봉이내
buy("b");
# 쌍봉
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var5 > 0 and var6 > 0 and ## 최근고점, 직전고점 발생했음.
var5 < var6 and ## 최근 고점이 직전고점대비 작음.
var7 == right and ## 최근고점 발생시점 3~6개봉 이내
var8 <= Var7+N Then ## 직전고점과 최근고점의 간격은 N봉이내
Sell("s");
//청산
SetStopEndofday(144500);
그림에서 2번의 매수진입은 해당 위치가 맞는 진입입니다.
첨부된 그림에서와 같이 직전저점의 값이 172.19로 최근조점값이 172.20으로
직전저점값보다 크므로 신호가 발생했습니다.
2번위치에서 신호가 발생하여 매수상태이므로 3번위치에서는 매수가 나오지 않습니다.
아래 지표식으로 고점들값과 저점들 값을 지표로 표시하여 비교하시기 바랍니다.
input : maP(5),Left(3),Right(1),Period(100),N(50);
var1 = SwingLow(1,ma(c,maP),Left,Right,Period); ##최근 저점
var2 = SwingLow(2,ma(c,maP),Left,Right,Period); ##직전 저점
var3 = SwingLowBar(1,ma(c,maP),Left,Right,Period); ## 최근 저점 발생시점
var4 = SwingLowBar(2,ma(c,maP),Left,Right,Period); ## 직전 저점 발생시점
var5 = SwingHigh(1,ma(c,maP),Left,Right,Period); ##최근 고점
var6 = SwingHigh(2,ma(c,maP),Left,Right,Period); ##직전 고점
var7 = SwingHighBar(1,ma(c,maP),Left,Right,Period); ## 최근 고점 발생시점
var8 = SwingHighBar(2,ma(c,maP),Left,Right,Period); ## 직전 고점 발생시점
plot1(Var1);
plot2(var2);
//plot3(var5);
//plot4(var6);
즐거운 하루되세요
> 루시 님이 쓴 글입니다.
> 제목 : 재질문 드릴께요.
> 그림 1
수정해 주신 수식으로 돌려본 결과, 스윙점은 원하는 시점에 나옵니다.
그런데, 제가 의도한 것은 최근고점이 전고점보다 낮아질 때 매도,
최근 저점이 전저점보다 높아질 때 매수인데,
구현되는 진입 시점은 최근고점이 전고점보다 높았음에도 매수도 하고 매도도 하고,
최근 저점이 전저점보다 낮았음에도 매도도 하고 매수도 하고...
암튼 최근고점과 전고점이 비교 조건을 주었음에도 스윙점이 나오면 무조건 진입을 하는 것 같습니다.
또 어떤 때에는 들어가지도 않구요.
그림에서 1번에는 최근고점이 전고점보다 낮았기에 매도진입했어야 하지만 들어가지 않았고,
2번 지점에서는 최근저점이 전저점보다 낮았기에 매수진입하지 말았어야 하는데, 들어가 버렸고,
3번 지점에서는 또 매수진입을 했어야 함에도 들어가지 않는 등 일부 문제점이 있으나
혼자서 수정해 보려고 하루 종일 고민해 보고 이것 저것 고쳐도 보았지만 도저히 안되네요. 부탁 좀 드리겠습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 수정 좀 부탁드립니다.
> 안녕하세요
예스스탁입니다.
스윙함수는 기준봉과 좌우측봉의 값을 비교하여
값의 만족유무를 판단합니다.
수식에서는 따로 수정될 부분이 없는것 같습니다.
단지 스윙이 처음발생하는 시점에 신호가 나게 수정했으며
좌우측 봉값을 조절하여 스윙점을 의도하시는 스윙점과 맞추셔야 합니다.
스윙함수로 대체가 안될경우에는 따로 풀어서 작성해야 합니다.
input : maP(5),Left(3),Right(3),Period(100),N(50);
var1 = SwingLow(1,ma(c,maP),Left,Right,Period); ##최근 저점
var2 = SwingLow(2,ma(c,maP),Left,Right,Period); ##직전 저점
var3 = SwingLowBar(1,ma(c,maP),Left,Right,Period); ## 최근 저점 발생시점
var4 = SwingLowBar(2,ma(c,maP),Left,Right,Period); ## 직전 저점 발생시점
var5 = SwingHigh(1,ma(c,maP),Left,Right,Period); ##최근 고점
var6 = SwingHigh(2,ma(c,maP),Left,Right,Period); ##직전 고점
var7 = SwingHighBar(1,ma(c,maP),Left,Right,Period); ## 최근 고점 발생시점
var8 = SwingHighBar(2,ma(c,maP),Left,Right,Period); ## 직전 고점 발생시점
## 쌍바닥
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var1 > 0 and var2 > 0 and ## 최근저점, 직전저점 발생했음.
var1 > var2 and ## 최근 저점이 직전저점대비 높음.
var3 == right and ## 최근저점 발생시점 right변수 이전
var4 <= var3+N Then ## 직전저점과 최근저점의 간격은 N봉이내
buy("b");
# 쌍봉
if ##MarketPosition==0 and
sTime>090000 and sTime<=144000 and
var5 > 0 and var6 > 0 and ## 최근고점, 직전고점 발생했음.
var7 < var8 and ## 최근 고점이 직전고점대비 작음.
var7 == right and ## 최근고점 발생시점 3~6개봉 이내
var8 <= Var7+N Then ## 직전고점과 최근고점의 간격은 N봉이내
Sell("s");
//청산
SetStopEndofday(144500);
즐거운 하루되세요