커뮤니티
수식 문의 드립니다.
2013-08-05 17:52:02
163
글번호 66100
항상 빠른 답변 감사드립니다.
아래 시스템 수식 문의 드립니다.
Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc =value1-value2;
CrossUp(Osc,0)인 경우,
- Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
CrossDown(Osc,0)인 경우,
- Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
#매수 - 강세 다이버젼스
CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며
CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며,
현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고,
Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy"
#매수청산
주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong"
#매도- 약세 다이버젼스
CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며
CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며,
현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고,
Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell"
#매도청산
주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort"
감사 드립니다.
답변 2
예스스탁 예스스탁 답변
2013-08-06 10:21:05
안녕하세요
예스스탁입니다.
Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준
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);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), PreMacdSig(0), macdSig(0),macdOsc(0),PreMacdOsc1(0),PreMacdOsc2(0);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc = value1-value2;
if dayofweek(date) < DayOfWeek(date[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdSig = macdSig[1];
PreMacdOsc1 = macdOsc[1];
PreMacdOsc2 = PreMacdOsc1[1];
}
Ep1 = 2/(shortPeriod+1);
EP2 = 2/(longPeriod+1);
EP3 = 2/(Period+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdSig * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
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]);
if C_min2 > 0 and C_max2 > 0 and
Osc_min > Osc_min2 and C_min < C_Min2 and
Osc > Osc_min and macdOsc > premacdOsc1 Then
buy();
if MarketPosition == 1 and macdOsc < premacdOsc1 and premacdOsc1 > premacdOsc2 Then
ExitLong();
if C_min2 > 0 and C_max2 > 0 and
Osc_max < Osc_max2 and C_max > C_Max2 and
Osc < Osc_max and macdOsc < premacdOsc1 Then
Sell();
if MarketPosition == -1 and macdOsc > premacdOsc1 and premacdOsc1 < premacdOsc2 Then
ExitShort();
즐거운 하루되세요
> 밝은아침 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
>
항상 빠른 답변 감사드립니다.
아래 시스템 수식 문의 드립니다.
Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc =value1-value2;
CrossUp(Osc,0)인 경우,
- Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
CrossDown(Osc,0)인 경우,
- Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
#매수 - 강세 다이버젼스
CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며
CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며,
현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고,
Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy"
#매수청산
주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong"
#매도- 약세 다이버젼스
CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며
CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며,
현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고,
Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell"
#매도청산
주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort"
감사 드립니다.
밝은아침
2013-08-06 16:05:53
답변 정말 감사드립니다.
아래 식 관련,
일봉 차트에서 주봉의 MACD 오실레이터 지표를 나타내는 수식도 문의 드립니다.
수고하십시오.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식 문의 드립니다.
> 안녕하세요
예스스탁입니다.
Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준
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);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), PreMacdSig(0), macdSig(0),macdOsc(0),PreMacdOsc1(0),PreMacdOsc2(0);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc = value1-value2;
if dayofweek(date) < DayOfWeek(date[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdSig = macdSig[1];
PreMacdOsc1 = macdOsc[1];
PreMacdOsc2 = PreMacdOsc1[1];
}
Ep1 = 2/(shortPeriod+1);
EP2 = 2/(longPeriod+1);
EP3 = 2/(Period+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdSig * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
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]);
if C_min2 > 0 and C_max2 > 0 and
Osc_min > Osc_min2 and C_min < C_Min2 and
Osc > Osc_min and macdOsc > premacdOsc1 Then
buy();
if MarketPosition == 1 and macdOsc < premacdOsc1 and premacdOsc1 > premacdOsc2 Then
ExitLong();
if C_min2 > 0 and C_max2 > 0 and
Osc_max < Osc_max2 and C_max > C_Max2 and
Osc < Osc_max and macdOsc < premacdOsc1 Then
Sell();
if MarketPosition == -1 and macdOsc > premacdOsc1 and premacdOsc1 < premacdOsc2 Then
ExitShort();
즐거운 하루되세요
> 밝은아침 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다.
>
항상 빠른 답변 감사드립니다.
아래 시스템 수식 문의 드립니다.
Input : shortPeriod(12), longPeriod(26), Period(9); # 일봉 기준
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Osc =value1-value2;
CrossUp(Osc,0)인 경우,
- Osc_Max = Osc Max값 및 C_Max = Max(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
CrossDown(Osc,0)인 경우,
- Osc_Min= Osc Min값 및 C_Min = Min(그 Osc의 주가 종가,C[1],다음봉 주가 종가)값을 저장
#매수 - 강세 다이버젼스
CrossUp(Osc,0)[2] 한뒤 CrossDown(Osc,0)[1] 했으며
CrossUp(Osc,0)[2] 하기전 Osc_Min[2]과 CrossDown(Osc,0)[1]하기전 Osc_Max[1]가 존재하며,
현재 Osc_Min > Osc_Min[2] and C_Min < C_Min[2] 이고,
Osc > Osc_Min and 주봉 Osc > 주봉 Osc[1] 이면 "Buy"
#매수청산
주봉 Osc < 주봉 Osc[1] and 주봉 Osc[1] > 주봉 Osc[2] 이면 "ExitLong"
#매도- 약세 다이버젼스
CrossDown(Osc,0)[2] 한뒤 CrossUp(Osc,0)[1] 했으며
CrossDown(Osc,0)[2] 하기전 Osc_Max[2]과 CrossUp(Osc,0)[1]하기전 Osc_Min[1]가 존재하며,
현재 Osc_Max < Osc_Max[2] and C_Max > C_Max[2] 이고,
Osc < Osc_Max and 주봉 Osc < 주봉 Osc[1] 이면 "Sell"
#매도청산
주봉 Osc > 주봉 Osc[1] and 주봉 Osc[1] < 주봉 Osc[2] 이면 "ExitShort"
감사 드립니다.
다음글
이전글