커뮤니티
수식 검토 부탁드립니다.
2013-11-08 14:25:29
201
글번호 69339
아래 수식 좀 검토 부탁드립니다. 신호가 첨부 파일대로 안나와서 문의 드립니다.
(첨부 파일 참조 부탁드리고요. 혹시 안열리시면 알려주십시오.)
Input : shortPeriod(12), longPeriod(26), Period(9),Percent(50);
var : Osc(0);
var : Osc_Max(0),C_Max(0),Osc_Max1(0),C_Max1(0),Osc_Max2(0),C_Max2(0),maxidx(0);
var : Osc_Min(0),C_Min(0),Osc_Min1(0),C_Min1(0),Osc_min2(0),C_min2(0),minidx(0);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc = value1-value2;
if crossup(Osc,0) Then{
Osc_Max = Osc;
maxidx = 0;
Osc_Max1 = Osc_Max[1];
Osc_Max2 = Osc_Max1[1];
C_Max1 = C_Max[1];
C_Max2 = C_Max1[1];
}
if Osc > 0 and Osc > Osc_Max Then{
Osc_Max = Osc;
maxidx = 0;
}
maxidx = maxidx+1;
if maxidx == 1 Then
C_Max = max(c,c[1],c[2]);
if CrossDown(Osc,0) Then{
Osc_Min = Osc;
minidx = 0;
Osc_min1 = Osc_min[1];
Osc_min2 = Osc_min1[1];
C_min1 = C_min[1];
C_min2 = C_min1[1];
}
if Osc < 0 and Osc < Osc_Min Then{
Osc_min = Osc;
minidx = 0;
}
minidx = minidx+1;
if minidx == 1 Then
C_min = min(c,c[1],c[2]);
# 오실레이터 값이 양수이면서 Bearish Divergence가 생성되면,
# 오실레이터 최대값을 저장해 나가다가 최대값 대비 50% 이상 하락하면 매도(매수청산)
# 하락했다가 이전 최대값 이상 상승하면 매도청산(매수)
if Osc > 0 Then{
if Osc <= Osc_max*percent/100 and Osc_max < Osc_max1 and C_max > C_Max1 and Osc < Osc_max Then
sell();
if Osc > Osc_max Then
Buy();
}
# 오실레이터 값이 음수이면서 Bullish Divergence가 생성되면,
# 오실레이터 최소값을 저장해 나가다가 최소값 대비 50% 이상 상승하면 매수(매도청산)
# 상승했다가 이전 최소값 이상 상승하면 매수청산(매도)
if Osc < 0 Then{
if (100/percent)*OSC >= Osc_min and Osc_min > Osc_min1 and C_min < C_Min1 and Osc > Osc_min Then
buy();
if Osc < Osc_min Then
sell();
}
감사합니다.
- 1. Bearish_Divergence.JPG (0.04 MB)
- 2. Bullish_Divergence.JPG (0.04 MB)
답변 1
예스스탁 예스스탁 답변
2013-11-11 14:33:06
안녕하세요
예스스탁입니다.
해당 수식 수정해 드릴만한 부분이 없습니다.
첨부그림에 지정한 봉들도 현재 올려주신 수식의 조건에 만족하는 봉입니다.
다만 해당 봉 이전에 매수포지션이나 매도포지션에 진입되어 있어
신호가 발생하지 않습니다.
피라미딩을 하지 않으면 청산전까지는 동일방향 진입이 발생하지 않으므로
해당 자리에 신호가 표시가 되지 않습니다.
식을 적용하실 때 피라미딩을 모든진입신호허용으로 설정하고
적용해보시면 지정된 자리에 모두 신호가 표시가 됩니다.
즐거운 하루되세요
> 밝은아침 님이 쓴 글입니다.
> 제목 : 수식 검토 부탁드립니다.
> 아래 수식 좀 검토 부탁드립니다. 신호가 첨부 파일대로 안나와서 문의 드립니다.
(첨부 파일 참조 부탁드리고요. 혹시 안열리시면 알려주십시오.)
Input : shortPeriod(12), longPeriod(26), Period(9),Percent(50);
var : Osc(0);
var : Osc_Max(0),C_Max(0),Osc_Max1(0),C_Max1(0),Osc_Max2(0),C_Max2(0),maxidx(0);
var : Osc_Min(0),C_Min(0),Osc_Min1(0),C_Min1(0),Osc_min2(0),C_min2(0),minidx(0);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc = value1-value2;
if crossup(Osc,0) Then{
Osc_Max = Osc;
maxidx = 0;
Osc_Max1 = Osc_Max[1];
Osc_Max2 = Osc_Max1[1];
C_Max1 = C_Max[1];
C_Max2 = C_Max1[1];
}
if Osc > 0 and Osc > Osc_Max Then{
Osc_Max = Osc;
maxidx = 0;
}
maxidx = maxidx+1;
if maxidx == 1 Then
C_Max = max(c,c[1],c[2]);
if CrossDown(Osc,0) Then{
Osc_Min = Osc;
minidx = 0;
Osc_min1 = Osc_min[1];
Osc_min2 = Osc_min1[1];
C_min1 = C_min[1];
C_min2 = C_min1[1];
}
if Osc < 0 and Osc < Osc_Min Then{
Osc_min = Osc;
minidx = 0;
}
minidx = minidx+1;
if minidx == 1 Then
C_min = min(c,c[1],c[2]);
# 오실레이터 값이 양수이면서 Bearish Divergence가 생성되면,
# 오실레이터 최대값을 저장해 나가다가 최대값 대비 50% 이상 하락하면 매도(매수청산)
# 하락했다가 이전 최대값 이상 상승하면 매도청산(매수)
if Osc > 0 Then{
if Osc <= Osc_max*percent/100 and Osc_max < Osc_max1 and C_max > C_Max1 and Osc < Osc_max Then
sell();
if Osc > Osc_max Then
Buy();
}
# 오실레이터 값이 음수이면서 Bullish Divergence가 생성되면,
# 오실레이터 최소값을 저장해 나가다가 최소값 대비 50% 이상 상승하면 매수(매도청산)
# 상승했다가 이전 최소값 이상 상승하면 매수청산(매도)
if Osc < 0 Then{
if (100/percent)*OSC >= Osc_min and Osc_min > Osc_min1 and C_min < C_Min1 and Osc > Osc_min Then
buy();
if Osc < Osc_min Then
sell();
}
감사합니다.