커뮤니티
부탁 드립니다.
2017-10-27 13:13:44
167
글번호 113686
도움 주심에 감사 드립니다.
예를 들어 10분봉 차트에서
60분봉 지표(타주기, 변수 처리)를 보고 싶습니다.
미리 감사 드립니다.
input : Price(10000), Per(10),N(5);
var : cnt(0),cnt1(0),cnt2(0),idx(0);
Array : VV[50](0);
Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0);
Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0);
idx = idx+1;
for cnt = 1 to 49{
VV[cnt] = 0;
}
#N개값 출력
for cnt1 = 1 to N{
#차트 과거봉 전체 스캔
for cnt2 = 1 to idx{
#Price대비 +- Per%안에 종가가 형성된
if C[cnt2] <= Price*(1+Per/100) and C[cnt2] >= Price*(1-Per/100) and
V[cnt2] > VV[cnt1] and
(cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then{
VV[cnt1] = V[cnt2];
#거래량순 상위 cnt1번째 값추세선 출력
#시가선
TL_Delete(OTL[cnt1]);
OTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],O[cnt2],sdate,stime,O[cnt2]);
TL_SetExtLeft(OTL[cnt1],true);
TL_SetExtRight(OTL[cnt1],true);
#고가선
TL_Delete(HTL[cnt1]);
HTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],H[cnt2],sdate,stime,H[cnt2]);
TL_SetExtLeft(HTL[cnt1],true);
TL_SetExtRight(HTL[cnt1],true);
#저가선
TL_Delete(LTL[cnt1]);
LTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],L[cnt2],sdate,stime,L[cnt2]);
TL_SetExtLeft(LTL[cnt1],true);
TL_SetExtRight(LTL[cnt1],true);
#종가선
TL_Delete(CTL[cnt1]);
CTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],C[cnt2],sdate,stime,C[cnt2]);
TL_SetExtLeft(CTL[cnt1],true);
TL_SetExtRight(CTL[cnt1],true);
#거래량순 상위 cnt1번째 값텍스트 출력
#시가선값
Text_Delete(OTx[cnt1]);
OTx[cnt1] = Text_New(sdate,stime,O[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(O[cnt2],0));
Text_SetStyle(OTx[cnt1],0,0);
#고가선값
Text_Delete(HTx[cnt1]);
HTx[cnt1] = Text_New(sdate,stime,H[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(H[cnt2],0));
Text_SetStyle(HTx[cnt1],0,0);
#저가선값
Text_Delete(LTx[cnt1]);
LTx[cnt1] = Text_New(sdate,stime,L[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(L[cnt2],0));
Text_SetStyle(LTx[cnt1],0,0);
#종가선값
Text_Delete(CTx[cnt1]);
CTx[cnt1] = Text_New(sdate,stime,C[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(C[cnt2],0));
Text_SetStyle(CTx[cnt1],0,0);
#점출력
Text_Delete(Tx[cnt1]);
Tx[cnt1] = Text_New(sdate[cnt2],stime[cnt2],C[cnt2],"●"+NumToStr(cnt1,0));
Text_SetStyle(Tx[cnt1],2,2);
}
}
}
답변 1
예스스탁 예스스탁 답변
2017-10-27 16:30:31
안녕하세요
예스스탁입니다.
input : Price(10000), Per(10),N(5);
var : cnt(0),cnt1(0),cnt2(0),idx(0);
var : S1(0),D1(0),TM(0),TF(0),Tcond(false);
Array : VV[50](0);
Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0);
Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0);
Array : vol[1000](0),OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),dd[1000](0),tt[1000](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%60;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then{
idx = idx+1;
vol[0] = 0;
DD[0] = sdate;
TT[0] = stime;
OO[0] = O;
HH[0] = H;
LL[0] = L;
for cnt = 1 to 999{
vol[cnt] = vol[cnt-1][1];
dd[cnt] = dd[cnt-1][1];
tt[cnt] = tt[cnt-1][1];
oo[cnt] = oo[cnt-1][1];
hh[cnt] = hh[cnt-1][1];
ll[cnt] = ll[cnt-1][1];
cc[cnt] = cc[cnt-1][1];
}
for cnt = 1 to 49{
VV[cnt] = 0;
}
#N개값 출력
for cnt1 = 1 to N{
#차트 과거봉 전체 스캔
for cnt2 = 1 to idx{
#Price대비 +- Per%안에 종가가 형성된
if CC[cnt2] <= Price*(1+Per/100) and CC[cnt2] >= Price*(1-Per/100) and
Vol[cnt2] > VV[cnt1] and
(cnt1 == 1 or (cnt1 >= 2 and Vol[cnt2] < VV[cnt1-1])) Then{
VV[cnt1] = Vol[cnt2];
#거래량순 상위 cnt1번째 값추세선 출력
#시가선
TL_Delete(OTL[cnt1]);
OTL[cnt1] = TL_New(DD[cnt2],TT[cnt2],OO[cnt2],sdate,stime,OO[cnt2]);
TL_SetExtLeft(OTL[cnt1],true);
TL_SetExtRight(OTL[cnt1],true);
#고가선
TL_Delete(HTL[cnt1]);
HTL[cnt1] = TL_New(DD[cnt2],TT[cnt2],HH[cnt2],sdate,stime,HH[cnt2]);
TL_SetExtLeft(HTL[cnt1],true);
TL_SetExtRight(HTL[cnt1],true);
#저가선
TL_Delete(LTL[cnt1]);
LTL[cnt1] = TL_New(DD[cnt2],TT[cnt2],LL[cnt2],sdate,stime,LL[cnt2]);
TL_SetExtLeft(LTL[cnt1],true);
TL_SetExtRight(LTL[cnt1],true);
#종가선
TL_Delete(CTL[cnt1]);
CTL[cnt1] = TL_New(DD[cnt2],TT[cnt2],CC[cnt2],sdate,stime,CC[cnt2]);
TL_SetExtLeft(CTL[cnt1],true);
TL_SetExtRight(CTL[cnt1],true);
#거래량순 상위 cnt1번째 값텍스트 출력
#시가선값
Text_Delete(OTx[cnt1]);
OTx[cnt1] = Text_New(sdate,stime,OO[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt2],0));
Text_SetStyle(OTx[cnt1],0,0);
#고가선값
Text_Delete(HTx[cnt1]);
HTx[cnt1] = Text_New(sdate,stime,HH[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt2],0));
Text_SetStyle(HTx[cnt1],0,0);
#저가선값
Text_Delete(LTx[cnt1]);
LTx[cnt1] = Text_New(sdate,stime,LL[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt2],0));
Text_SetStyle(LTx[cnt1],0,0);
#종가선값
Text_Delete(CTx[cnt1]);
CTx[cnt1] = Text_New(sdate,stime,CC[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt2],0));
Text_SetStyle(CTx[cnt1],0,0);
#점출력
Text_Delete(Tx[cnt1]);
Tx[cnt1] = Text_New(dd[cnt2],TT[cnt2],CC[cnt2],"●"+NumToStr(cnt1,0));
Text_SetStyle(Tx[cnt1],2,2);
}
}
}
}
vol[0] = vol[0]+v;
CC[0] = C;
if H > HH[0] Then
HH[0] = h;
if L < LL[0] Then
LL[0] = L;
}
즐거운 하루되세요
> yes 님이 쓴 글입니다.
> 제목 : 부탁 드립니다.
> 도움 주심에 감사 드립니다.
예를 들어 10분봉 차트에서
60분봉 지표(타주기, 변수 처리)를 보고 싶습니다.
미리 감사 드립니다.
input : Price(10000), Per(10),N(5);
var : cnt(0),cnt1(0),cnt2(0),idx(0);
Array : VV[50](0);
Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0);
Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0);
idx = idx+1;
for cnt = 1 to 49{
VV[cnt] = 0;
}
#N개값 출력
for cnt1 = 1 to N{
#차트 과거봉 전체 스캔
for cnt2 = 1 to idx{
#Price대비 +- Per%안에 종가가 형성된
if C[cnt2] <= Price*(1+Per/100) and C[cnt2] >= Price*(1-Per/100) and
V[cnt2] > VV[cnt1] and
(cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then{
VV[cnt1] = V[cnt2];
#거래량순 상위 cnt1번째 값추세선 출력
#시가선
TL_Delete(OTL[cnt1]);
OTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],O[cnt2],sdate,stime,O[cnt2]);
TL_SetExtLeft(OTL[cnt1],true);
TL_SetExtRight(OTL[cnt1],true);
#고가선
TL_Delete(HTL[cnt1]);
HTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],H[cnt2],sdate,stime,H[cnt2]);
TL_SetExtLeft(HTL[cnt1],true);
TL_SetExtRight(HTL[cnt1],true);
#저가선
TL_Delete(LTL[cnt1]);
LTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],L[cnt2],sdate,stime,L[cnt2]);
TL_SetExtLeft(LTL[cnt1],true);
TL_SetExtRight(LTL[cnt1],true);
#종가선
TL_Delete(CTL[cnt1]);
CTL[cnt1] = TL_New(Sdate[cnt2],stime[cnt2],C[cnt2],sdate,stime,C[cnt2]);
TL_SetExtLeft(CTL[cnt1],true);
TL_SetExtRight(CTL[cnt1],true);
#거래량순 상위 cnt1번째 값텍스트 출력
#시가선값
Text_Delete(OTx[cnt1]);
OTx[cnt1] = Text_New(sdate,stime,O[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(O[cnt2],0));
Text_SetStyle(OTx[cnt1],0,0);
#고가선값
Text_Delete(HTx[cnt1]);
HTx[cnt1] = Text_New(sdate,stime,H[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(H[cnt2],0));
Text_SetStyle(HTx[cnt1],0,0);
#저가선값
Text_Delete(LTx[cnt1]);
LTx[cnt1] = Text_New(sdate,stime,L[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(L[cnt2],0));
Text_SetStyle(LTx[cnt1],0,0);
#종가선값
Text_Delete(CTx[cnt1]);
CTx[cnt1] = Text_New(sdate,stime,C[cnt2],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(C[cnt2],0));
Text_SetStyle(CTx[cnt1],0,0);
#점출력
Text_Delete(Tx[cnt1]);
Tx[cnt1] = Text_New(sdate[cnt2],stime[cnt2],C[cnt2],"●"+NumToStr(cnt1,0));
Text_SetStyle(Tx[cnt1],2,2);
}
}
}