예스스탁
예스스탁 답변
2022-03-11 09:42:23
안녕하세요
예스스탁입니다.
저희 프로그램이 제공되는 선물/증권사에서는
모두 거래소의 영업일 기준으로 일간시고저종가를 제공하고 있습니다.
항셍의 경우에는 해당 종목의 거래소에서는 새로운 영업일 변경을
한국시간 18시15분(거래소시간 17시 15분)을 기준으로 합니다.
거래소의 영업일 변경시간과 다른 시간을 하루기준으로 삼으시면
아래와 같이 별도로 시간을 지정해 일간시고저종가를 계산해 사용하셔야 합니다.
수식에 있는 선이 그려지는 종료시간은 사용자분이 별도로 조정하셔야 합니다.
1-1 항셍이 아닌경우
input : p(3),굵기(5),R(102),G(102),B(102);
var : cnt(0),sum(0),mav(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
sum = DayOpen(0);
if P >= 3 Then
{
For cnt = 1 to P-1
{
sum = sum + DayClose(cnt);
}
}
mav = sum/P;
if Index == 0 or (sTime >= 143000 and sTime[1] < 143000) Then
{
var1 = bDate;
Var2 = stime;
}
if Bdate != Bdate[1] Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,mav,sDate,sTime,mav);
TL_SetColor(TL1,RGB(R,G,B));
TL_SetSize(TL1, 굵기);
}
}
Else
{
if sTime < 113000 and Bdate > var1 Then
{
TL_SetBegin(TL1,var1,Var2,mav);
TL_SetEnd(TL1,sDate,sTime,mav);
}
}
1-2 항셍과 같이 별도시간을 기준으로 하는 경우
input : ntime(101500),p(3),굵기(5),R(102),G(102),B(102);
var : cnt(0),sum(0),mav(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
Array : DO[100](0),DC[100](0);
if (sdate != sDate[1] and sTime >= ntime) or
(sDate == sDate[1] and sTime >= ntime and sTime[1] < ntime) Then
{
DO[0] = O;
For cnt = 1 to 99
{
DO[cnt] = DO[cnt-1][1];
DC[cnt] = DC[cnt-1][1];
}
}
DC[0] = C;
sum = DO[0];
if P >= 3 Then
{
For cnt = 1 to P-1
{
sum = sum + DC[cnt];
}
}
mav = sum/P;
if Index == 0 or (sTime >= 143000 and sTime[1] < 143000) Then
{
var1 = bDate;
Var2 = stime;
}
if DO[P] > 0 Then
{
if (sdate != sDate[1] and sTime >= ntime) or
(sDate == sDate[1] and sTime >= ntime and sTime[1] < ntime) Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,mav,sDate,sTime,mav);
TL_SetColor(TL1,RGB(R,G,B));
TL_SetSize(TL1, 굵기);
}
}
Else
{
if sTime < 113000 and Bdate > var1 Then
{
TL_SetBegin(TL1,var1,Var2,mav);
TL_SetEnd(TL1,sDate,sTime,mav);
}
}
}
2-1 항셍이 아닌 경우
input : 색상1(green),색상2(RED),색상3(BLUE),색상4(BLACK),색상5(cyan);
input : 굵기1(0),굵기2(0),굵기3(0),굵기4(0),굵기5(5);
input : 폰트크기1(12),폰트크기2(12),폰트크기3(12),폰트크기4(12),폰트크기5(12);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var : Tx1(0),Tx2(0),Tx3(0),Tx4(0),Tx5(0);
if Index == 0 or (sTime >= 153000 and sTime[1] < 153000) Then
{
var1 = bDate;
Var2 = stime;
}
if Bdate != Bdate[1] Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,DayOpen(0),sDate,sTime,Dayopen(0));
TL2 = TL_New(var1,Var2,DayHigh(1),sDate,sTime,DayHigh(1));
TL3 = TL_New(var1,Var2,DayLow(1),sDate,sTime,DayLow(1));
TL4 = TL_New(var1,Var2,DayClose(1),sDate,sTime,DayClose(1));
TL5 = TL_New(var1,Var2,(DayHigh(1)+DayLow(1))/2,sDate,sTime,(DayHigh(1)+DayLow(1))/2);
#추세선 색상
TL_SetColor(TL1,색상1);
TL_SetColor(TL2,색상2);
TL_SetColor(TL3,색상3);
TL_SetColor(TL4,색상4);
TL_SetColor(TL5,색상5);
#추세선 굵기
TL_SetSize(TL1,굵기1);
TL_SetSize(TL2,굵기2);
TL_SetSize(TL3,굵기3);
TL_SetSize(TL4,굵기4);
TL_SetSize(TL5,굵기5);
tx1 = text_new(var1,Var2,DayOpen(0),"당일시가:"+NumToStr(DayOpen(0),2));
tx2 = text_new(var1,Var2,DayHigh(1),"전일고가:"+NumToStr(DayHigh(1),2));
tx3 = text_new(var1,Var2,DayLow(1),"전일저가:"+NumToStr(DayLow(1),2));
tx4 = text_new(var1,Var2,DayClose(1),"전일종가:"+NumToStr(DayClose(1),2));
tx5 = text_new(var1,Var2,(DayHigh(1)+DayLow(1))/2,"전일중심:"+NumToStr((DayHigh(1)+DayLow(1))/2,2));
#텍스트 색상
text_SetColor(tx1,색상1);
text_SetColor(tx2,색상2);
text_SetColor(tx3,색상3);
text_SetColor(tx4,색상4);
text_SetColor(tx5,색상5);
#텍스트 크기
Text_SetSize(Tx1,폰트크기1);
Text_SetSize(Tx2,폰트크기2);
Text_SetSize(Tx3,폰트크기3);
Text_SetSize(Tx4,폰트크기4);
Text_SetSize(Tx5,폰트크기5);
}
}
Else
{
if sTime < 093000 and bdate > var1 Then
{
TL_SetEnd(TL1,sDate,sTime,DayOpen(0));
TL_SetEnd(TL2,sDate,sTime,DayHigh(1));
TL_SetEnd(TL3,sDate,sTime,DayLow(1));
TL_SetEnd(TL4,sDate,sTime,DayClose(1));
TL_SetEnd(TL5,sDate,sTime,(DayHigh(1)+DayLow(1))/2);
}
}
2-2 항셍과 같이 별도시간을 기준으로 하는 경우
input : ntime(101500),색상1(green),색상2(RED),색상3(BLUE),색상4(BLACK),색상5(cyan);
input : 굵기1(0),굵기2(0),굵기3(0),굵기4(0),굵기5(5);
input : 폰트크기1(12),폰트크기2(12),폰트크기3(12),폰트크기4(12),폰트크기5(12);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var : Tx1(0),Tx2(0),Tx3(0),Tx4(0),Tx5(0);
var : cnt(0);
Array : DO[100](0),DC[100](0),DH[100](0),DL[100](0);
if Index == 0 or (sTime >= 153000 and sTime[1] < 153000) Then
{
var1 = bDate;
Var2 = stime;
}
if (sdate != sDate[1] and sTime >= ntime) or
(sDate == sDate[1] and sTime >= ntime and sTime[1] < ntime) Then
{
DO[0] = O;
DH[0] = H;
DL[0] = L;
For cnt = 1 to 99
{
DO[cnt] = DO[cnt-1][1];
DC[cnt] = DC[cnt-1][1];
DH[cnt] = DH[cnt-1][1];
DL[cnt] = DL[cnt-1][1];
}
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,DO[0],sDate,sTime,DO[0]);
TL2 = TL_New(var1,Var2,DH[1],sDate,sTime,DH[1]);
TL3 = TL_New(var1,Var2,DL[1],sDate,sTime,DL[1]);
TL4 = TL_New(var1,Var2,DC[1],sDate,sTime,DC[1]);
TL5 = TL_New(var1,Var2,(DH[1]+DL[1])/2,sDate,sTime,(DH[1]+DL[1])/2);
#추세선 색상
TL_SetColor(TL1,색상1);
TL_SetColor(TL2,색상2);
TL_SetColor(TL3,색상3);
TL_SetColor(TL4,색상4);
TL_SetColor(TL5,색상5);
#추세선 굵기
TL_SetSize(TL1,굵기1);
TL_SetSize(TL2,굵기2);
TL_SetSize(TL3,굵기3);
TL_SetSize(TL4,굵기4);
TL_SetSize(TL5,굵기5);
tx1 = text_new(var1,Var2,DO[0],"당일시가:"+NumToStr(DO[0],2));
tx2 = text_new(var1,Var2,DH[1],"전일고가:"+NumToStr(DH[1],2));
tx3 = text_new(var1,Var2,DL[1],"전일저가:"+NumToStr(DL[1],2));
tx4 = text_new(var1,Var2,DC[1],"전일종가:"+NumToStr(DC[1],2));
tx5 = text_new(var1,Var2,(DH[1]+DL[1])/2,"전일중심:"+NumToStr((DH[1]+DL[1])/2,2));
#텍스트 색상
text_SetColor(tx1,색상1);
text_SetColor(tx2,색상2);
text_SetColor(tx3,색상3);
text_SetColor(tx4,색상4);
text_SetColor(tx5,색상5);
#텍스트 크기
Text_SetSize(Tx1,폰트크기1);
Text_SetSize(Tx2,폰트크기2);
Text_SetSize(Tx3,폰트크기3);
Text_SetSize(Tx4,폰트크기4);
Text_SetSize(Tx5,폰트크기5);
}
}
Else
{
if sTime < 120000 and sDate > var1 Then
{
TL_SetEnd(TL1,sDate,sTime,DO[0]);
TL_SetEnd(TL2,sDate,sTime,DH[1]);
TL_SetEnd(TL3,sDate,sTime,DL[1]);
TL_SetEnd(TL4,sDate,sTime,DC[1]);
TL_SetEnd(TL5,sDate,sTime,(DH[1]+DL[1])/2);
}
}
if DH[0] > 0 and H > DH[0] Then
DH[0] = H;
if DL[0] > 0 and L < DL[0] Then
DL[0] = L;
DC[0] = C;
즐거운 하루되세요
> 포보스 님이 쓴 글입니다.
> 제목 : 검토 부탁드립니다.
> 다음 1.은 항생, 골드, 나스닥 등 붙, 틱챠트에서
전일 14:30분부터 장시작과 함께 시가를 기준으로 타주기(일봉) 3일선을 긋는 지표입니다. 맞는지 검토를 부탁드리며 혹시 정규장 외는 제외하는 것이 가능한지요?
다음 2는
역시 해외선물 시고저종중 가격을 장시작과 함께 표기하는 것입니다.
그런데 각 라인들이 시가기준이 아닌 듯 합니다.
검토를 부탁드립니다.
감사합니다.
1.
=================
input : p(3),굵기(5),R(102),G(102),B(102);
var : cnt(0),sum(0),mav(0);
var : TL1(0),TL2(0),TL3(0),TL4(0);
sum = DayOpen(0);
if P >= 3 Then
{
For cnt = 1 to P-1
{
sum = sum + DayClose(cnt);
}
}
mav = sum/P;
if Index == 0 or (sTime >= 143000 and sTime[1] < 143000) Then
{
var1 = sDate;
Var2 = stime;
}
if Bdate != Bdate[1] Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,mav,sDate,sTime,mav);
TL_SetColor(TL1,RGB(R,G,B));
TL_SetSize(TL1, 굵기);
}
}
Else
{
if sTime < 113000 Then
{
TL_SetBegin(TL1,var1,Var2,mav);
TL_SetEnd(TL1,sDate,sTime,mav);
}
}
2.==================
input : 색상1(green),색상2(RED),색상3(BLUE),색상4(BLACK),색상5(cyan);
input : 굵기1(0),굵기2(0),굵기3(0),굵기4(0),굵기5(5);
input : 폰트크기1(12),폰트크기2(12),폰트크기3(12),폰트크기4(12),폰트크기5(12);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0);
var : Tx1(0),Tx2(0),Tx3(0),Tx4(0),Tx5(0);
if Index == 0 or (sTime >= 153000 and sTime[1] < 153000) Then
{
var1 = sDate;
Var2 = stime;
}
if Bdate != Bdate[1] Then
{
if var1 > 0 and Var2 > 0 Then
{
TL1 = TL_New(var1,Var2,DayOpen(0),sDate,sTime,Dayopen(0));
TL2 = TL_New(var1,Var2,DayHigh(1),sDate,sTime,DayHigh(1));
TL3 = TL_New(var1,Var2,DayLow(1),sDate,sTime,DayLow(1));
TL4 = TL_New(var1,Var2,DayClose(1),sDate,sTime,DayClose(1));
TL5 = TL_New(var1,Var2,(DayHigh(1)+DayLow(1))/2,sDate,sTime,(DayHigh(1)+DayLow(1))/2);
#추세선 색상
TL_SetColor(TL1,색상1);
TL_SetColor(TL2,색상2);
TL_SetColor(TL3,색상3);
TL_SetColor(TL4,색상4);
TL_SetColor(TL5,색상5);
#추세선 굵기
TL_SetSize(TL1,굵기1);
TL_SetSize(TL2,굵기2);
TL_SetSize(TL3,굵기3);
TL_SetSize(TL4,굵기4);
TL_SetSize(TL5,굵기5);
tx1 = text_new(var1,Var2,DayOpen(0),"당일시가:"+NumToStr(DayOpen(0),2));
tx2 = text_new(var1,Var2,DayHigh(1),"전일고가:"+NumToStr(DayHigh(1),2));
tx3 = text_new(var1,Var2,DayLow(1),"전일저가:"+NumToStr(DayLow(1),2));
tx4 = text_new(var1,Var2,DayClose(1),"전일종가:"+NumToStr(DayClose(1),2));
tx5 = text_new(var1,Var2,(DayHigh(1)+DayLow(1))/2,"전일중심:"+NumToStr((DayHigh(1)+DayLow(1))/2,2));
#텍스트 색상
text_SetColor(tx1,색상1);
text_SetColor(tx2,색상2);
text_SetColor(tx3,색상3);
text_SetColor(tx4,색상4);
text_SetColor(tx5,색상5);
#텍스트 크기
Text_SetSize(Tx1,폰트크기1);
Text_SetSize(Tx2,폰트크기2);
Text_SetSize(Tx3,폰트크기3);
Text_SetSize(Tx4,폰트크기4);
Text_SetSize(Tx5,폰트크기5);
}
}
Else
{
if sTime < 093000 Then
{
TL_SetEnd(TL1,sDate,sTime,DayOpen(0));
TL_SetEnd(TL2,sDate,sTime,DayHigh(1));
TL_SetEnd(TL3,sDate,sTime,DayLow(1));
TL_SetEnd(TL4,sDate,sTime,DayClose(1));
TL_SetEnd(TL5,sDate,sTime,(DayHigh(1)+DayLow(1))/2);
}
}