커뮤니티
수식문의
2011-08-18 17:19:51
724
글번호 42033
[일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다.
Input : Period(9) ;
Var : value(0);
value = CCI(Period);
# 매수/매도청산
If CrossUp(value, 0) Then
{
Buy();
}
'[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우'
(예 : 직전봉 200, 현재봉 100 => True
직전봉 200, 현재봉 300 => False
직전봉 200, 현재봉 -300 => False
직전봉 -200, 현재봉 -100 => True
직전봉 -200, 현재봉 -300 => False
직전봉 -200, 현재봉 100 => True )
--------------------------------------------------------
위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데
[5분]봉일때 [30분]봉에 적용시
[30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다.
감사합니다. ^^
답변 2
예스스탁 예스스탁 답변
2011-08-19 10:26:27
안녕하세요
예스스탁입니다.
1. 주봉 MACD오실레이터 추가
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PreMacdOsc(0);
if (dayofweek(date) <= DayOfWeek(date[1]) and sdate > sdate[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
PreMacdOsc = macdOsc[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
2, 5분봉에서 30분봉 MACD오실레이터
Input : Atime(30),Period1(12),Period2(26),Period3(9);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0);
Var : Ep3(0), JISU3(0), PreJISU3(0);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
PreJISU3 = MACDVal[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
}
MACDVal = JiSu1-Jisu2;
if DINDEX1 <= 2 then {
JISU3 = Jisu1-jisu2;
}
else{
JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3);
}
MACDsig = Jisu3;
MACDOsc = MACDVal-MACDsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
3.30분에서 일봉의 MACD오실레이터
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PremacdOsc(0);
if date != date[1] then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
PRemacdOsc = macdOsc[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
즐거운 하루되세요
> 도전목표달성 님이 쓴 글입니다.
> 제목 : 수식문의
> [일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다.
Input : Period(9) ;
Var : value(0);
value = CCI(Period);
# 매수/매도청산
If CrossUp(value, 0) Then
{
Buy();
}
'[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우'
(예 : 직전봉 200, 현재봉 100 => True
직전봉 200, 현재봉 300 => False
직전봉 200, 현재봉 -300 => False
직전봉 -200, 현재봉 -100 => True
직전봉 -200, 현재봉 -300 => False
직전봉 -200, 현재봉 100 => True )
--------------------------------------------------------
위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데
[5분]봉일때 [30분]봉에 적용시
[30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다.
감사합니다. ^^
아이스탁
2011-08-19 12:03:39
대단히 감사합니다 ^^
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
> 안녕하세요
예스스탁입니다.
1. 주봉 MACD오실레이터 추가
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PreMacdOsc(0);
if (dayofweek(date) <= DayOfWeek(date[1]) and sdate > sdate[1]) then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
PreMacdOsc = macdOsc[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
2, 5분봉에서 30분봉 MACD오실레이터
Input : Atime(30),Period1(12),Period2(26),Period3(9);
Var : Ep1(0), JISU1(0), DINDEX1(0), PreJISU1(0);
Var : Ep2(0), JISU2(0), PreJISU2(0);
Var : Ep3(0), JISU3(0), PreJISU3(0);
var : MACDVal(0),MACDSig(0),MACDOsc(0),PreMACDOsc(0);
Ep1 = 2/(Period1+1);
Ep2 = 2/(Period2+1);
Ep3 = 2/(Period3+1);
var1 = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (var1 <= var1[1] and stime > stime[1]) Then{
DINDEX1 = DINDEX1 + 1;
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMACDOsc = MACDOsc[1];
if Dindex1 >= 2 Then
PreJISU3 = MACDVal[1];
}
if DINDEX1 <= 1 then {
JISU1 = C;
JISU2 = C;
}
else{
JISU1 = C * EP1 + PreJISU1 * (1-EP1);
JISU2 = C * EP2 + PreJISU2 * (1-EP2);
}
MACDVal = JiSu1-Jisu2;
if DINDEX1 <= 2 then {
JISU3 = Jisu1-jisu2;
}
else{
JISU3 = MACDVal * EP3 + PreJISU3 * (1-EP3);
}
MACDsig = Jisu3;
MACDOsc = MACDVal-MACDsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
3.30분에서 일봉의 MACD오실레이터
Input : Period1(12), Period2(26), Period3(9);
Var : Ep1(0), EP2(0), EP3(0), JISU1(0), JISU2(0), PreJISU1(0), PreJISU2(0);
Var : macdVal(0), preMacdVal(0), macdSig(0),macdOsc(0),PremacdOsc(0);
if date != date[1] then {
PreJISU1 = JISU1[1];
PreJISU2 = JISU2[1];
PreMacdVal = macdSig[1];
PRemacdOsc = macdOsc[1];
}
Ep1 = 2/(Period1+1);
EP2 = 2/(Period2+1);
EP3 = 2/(Period3+1);
JISU1 = C * Ep1 + PreJISU1 * (1-Ep1); //단기지수이동평균
JISU2 = C * Ep2 + PreJISU2 * (1-Ep2); //장기지수이동평균
macdVal = JISU1 - JISU2; //macd
macdSig = macdVal * Ep3 + PreMacdVal * (1-Ep3); //macd signal
macdOsc = macdval-macdsig;
Input : CCIPeriod(9) ;
Var : value(0);
value = CCI(CCIPeriod);
# 매수/매도청산
If CrossUp(value, 0) and abs(macdOsc) < abs(PremacdOsc) Then
{
Buy();
}
즐거운 하루되세요
> 도전목표달성 님이 쓴 글입니다.
> 제목 : 수식문의
> [일]봉에 이런 명령문을 실행하려 하나 조건을 하나 더 달고자 합니다.
Input : Period(9) ;
Var : value(0);
value = CCI(Period);
# 매수/매도청산
If CrossUp(value, 0) Then
{
Buy();
}
'[주]봉상 MACD 오실레이터 값이 직전봉보다 절대값이 작을경우'
(예 : 직전봉 200, 현재봉 100 => True
직전봉 200, 현재봉 300 => False
직전봉 200, 현재봉 -300 => False
직전봉 -200, 현재봉 -100 => True
직전봉 -200, 현재봉 -300 => False
직전봉 -200, 현재봉 100 => True )
--------------------------------------------------------
위 예제는 [일]봉에 시스템 적용시 [주]봉 MACD osc 적용인데
[5분]봉일때 [30분]봉에 적용시
[30분]봉일때 [일] 봉에 적용시 도 함께 부탁드립니다.
감사합니다. ^^
다음글