답변완료
복합분봉에 일봉 MACD 표시
복합 분봉에 일봉 MACD를 표시하려구 하였습니다.
그러나 초기 3개월 가량이 값이 너무 크게 나와 수식에 포함 시킬 수가 없습니다.
아마 설정된 기간보다 짧은 데이타가 문제 아닌가 싶습니다.
어떻게 수정해야 할지 몰라 도움을 구합니다.
감사합니다.
# ===<<< 분봉 차트에서 일봉 시고저종 계산 >>>===========================================
Arrays : 일봉_시가[20](0), 일봉_고가[20](0), 일봉_저가[20](0), 일봉_종가[20](0);
Variables : cnt(0), sum(0);
If sTime[1] < 080000 And 080000 <= sTime Then Begin
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If sTime[1] < 170000 And 170000 <= sTime Then Begin
For cnt = 19 DownTo 1 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1]; 일봉_고가[cnt] = 일봉_고가[cnt-1];
일봉_저가[cnt] = 일봉_저가[cnt-1]; 일봉_종가[cnt] = 일봉_종가[cnt-1];
End;
일봉_시가[0] = Open; 일봉_고가[0] = High;
일봉_저가[0] = Low; 일봉_종가[0] = Close;
End;
If 일봉_고가[0] < High Then 일봉_고가[0] = High;
If 일봉_저가[0] > Low Then 일봉_저가[0] = Low;
일봉_종가[0] = Close;
# ===<<< 분봉 차트에서 일봉 MACD (Moving Average Convergence & Divergence) 계산 >>>=========================================
Arrays : 지수이동평균1[26](0), 지수이동평균2[26](0), MACD_[26](0), MACD_Signal[26](0);
Variables : len1(12), len2(26), len3(9);
Variables : 평활계수1(0), 평활계수2(0), 평활계수3(0);
평활계수1 = 2 / (len1 + 1);
평활계수2 = 2 / (len2 + 1);
평활계수3 = 2 / (len3 + 1);
지수이동평균1[0] = (일봉_종가[0] * 평활계수1) + (지수이동평균1[1] * (1 - 평활계수1));
지수이동평균2[0] = (일봉_종가[0] * 평활계수2) + (지수이동평균2[1] * (1 - 평활계수2));
MACD_[0] = 지수이동평균1[0] - 지수이동평균2[0];
MACD_Signal[0] = (MACD_[0] * 평활계수3) + (MACD_[1] * (1 - 평활계수3));
# MACD 배열 이동
If sTime[1] < 170000 And 170000 <= sTime Then Begin
For cnt = 26 DownTo 1 Begin
지수이동평균1[cnt] = 지수이동평균1[cnt-1];
지수이동평균2[cnt] = 지수이동평균2[cnt-1];
MACD_[cnt] = MACD_[cnt-1];
MACD_Signal[cnt] = MACD_Signal[cnt-1];
End;
End;
# ===<<< 분봉 차트에서 일봉 MACD 화면 출력 >>>========================================
If MACD_[1] < MACD_[0] Then Plot1(MACD_[0],"MACD_", RED);
Else If MACD_[1] > MACD_[0] Then Plot1(MACD_[0],"MACD_", BLUE);
If MACD_Signal[1] < MACD_Signal[0] Then Plot2(MACD_Signal[0],"MACD_Signal", RED);
Else If MACD_Signal[1] > MACD_Signal[0] Then Plot2(MACD_Signal[0],"MACD_Signal", BLUE);
# ===<<< MACD 기준선 화면 출력 >>>========================================
PlotBaseLine1(0,"0", GRAY);
2020-03-29
623
글번호 137292
지표
답변완료
지표식수정부탁드립니다
안녕하세요 관리자님!!
아래지표는 관리자님이 작성해주신 수식인데요 period를 이평이 아닌 (새로운고가+당일시가)/2,(새로운저가+당일시가)/2 의 값으로 지정할수있게 수정부탁드립니다.
번거롭게 해드려 죄송합니다. 도와주세요!!
- 아 래 -
input : P(20),Dv(6),ntime(60);
var : hh(0),ll(0),S1(0),D1(0),TM(0),ii(0),cnt(0);
var1 = BollBandUp(P,dv);
var2 = BollBandDown(P,dv);
if bdate != bdate[1] Then
{
hh = h;
ll = l;
S1 = TimeToMinutes(stime);
D1 = sdate;
value1 = var1;
value2 = var2;
ii = 0;
}
Else
ii = ii+1;
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
if bdate == bdate[1] then
{
hh = h[1];
ll = l[1];
for cnt = 1 to ii
{
if h[cnt] > hh and TM[cnt] > TM[cnt]-ntime Then
hh = h[cnt];
if l[cnt] < ll and TM[cnt] > TM[cnt]-ntime Then
ll = l[cnt];
if TM[cnt] <= TM[cnt]-ntime Then
cnt = ii+1;
}
if h > hh Then
{
value1 = var1;
value2 = var2;
}
if l < ll Then
{
value1 = var1;
value2 = var2;
}
}
plot1(value1,"상한");
plot2(value2,"하한");
}
2020-03-28
534
글번호 137287
지표