커뮤니티
간단한 질문.
2010-12-27 16:20:39
711
글번호 34595
일봉의 20일 이평을 분봉이 골든크로스시 매수 식입니다
input : P1(20);
var : sumV(0), maV(0), count(0);
sumV = 0;
for count = 0 to P1-1 {
sumV = sumV+DayClose(count);
}
maV = sumV / P1;
if CrossUp(C , maV) Then
buy();
1) 20 이평이 지수이평인가요 단순인가요?
2) 단순이라면 지수이평으로 바꾸려면 어떻게 해야하나요?
3) 아래식에 일봉의 5 이평을 하향 돌파시 청산 식을 추가해주세요.
input : P1(20);
var : sumV(0), maV(0), count(0);
sumV = 0;
for count = 0 to P1-1 {
sumV = sumV+DayClose(count);
}
maV = sumV / P1;
if CrossUp(C , maV) Then
buy();
날씨가 추우니 건강에 유의하세요.
답변 1
예스스탁 예스스탁 답변
2010-12-27 16:58:59
안녕하세요
예스스탁입니다.
1.
단순이평입니다.
2.
분봉에서 일봉의 지수이평 계산식은 아래와 같습니다.
다만 유의하실 부분은 지수이평을 봉의 갯수에 영향을 받는
평균방법입니다. 실제 일봉과 분봉의 날짜수의 차이때문에
서로 다른 값을 리턴받을 수 있습니다.
공식과 함께 올려드립니다.
/*************지수이평 계산식************************
EMA = 현재봉의 종가 * Ep + 전봉의EMA * (1-EP)
Ep(평활계수)= 2/(Period+1)
*****************************************************/
Input : Period(20);
Var : Ep(0), JISU(0), DINDEX(0), PreJISU(0);
Ep = 2/(Period+1); //평활계수
if date != date[1] then { //날짜가 변경될 경우에(매일의 첫번째 봉)
DINDEX = DINDEX + 1; //일봉상의 index를 구한다
PreJISU = JISU[1]; //전봉(전일 마지막 봉)의 JISU값을 preJISU에 저장한다.
}
if DINDEX <= 1 then //일봉상의 인덱스가 1이하이면(차트 맨 앞 첫구간을 의미)
JISU = C; //종가를 지수이동평균값으로 저장한다.
else //이외의 경우에는 (두번째 구간 부터는)
JISU = C * EP + PreJISU * (1-EP); //위 지수이평 계산식에 의해 계산된 값을 지수이평값으로 저장한다.
plot1(JISU,"지수이동평균"); //지수이동평균을 출력한다.
2.
input : P1(5),P2(20);
var : sumV1(0), maV1(0), count(0),sumv2(0),mav2(0);
sumV1 = 0;
sumv2 = 0;
for count = 0 to P2{
If count < P1 Then
sumV1 = sumV1+DayClose(count);
if count < P2 Then
sumv2 = sumv2+DayClose(count);
}
maV1 = sumV1/P1;
mav2 = sumv2/P2;
if CrossUp(C,maV2) Then
buy();
if CrossDown(c,mav1) Then
exitlong();
즐거운 하루되세요
> 휴식 님이 쓴 글입니다.
> 제목 : 간단한 질문.
> 일봉의 20일 이평을 분봉이 골든크로스시 매수 식입니다
input : P1(20);
var : sumV(0), maV(0), count(0);
sumV = 0;
for count = 0 to P1-1 {
sumV = sumV+DayClose(count);
}
maV = sumV / P1;
if CrossUp(C , maV) Then
buy();
1) 20 이평이 지수이평인가요 단순인가요?
2) 단순이라면 지수이평으로 바꾸려면 어떻게 해야하나요?
3) 아래식에 일봉의 5 이평을 하향 돌파시 청산 식을 추가해주세요.
input : P1(20);
var : sumV(0), maV(0), count(0);
sumV = 0;
for count = 0 to P1-1 {
sumV = sumV+DayClose(count);
}
maV = sumV / P1;
if CrossUp(C , maV) Then
buy();
날씨가 추우니 건강에 유의하세요.
다음글
이전글