예스스탁
예스스탁 답변
2023-12-19 14:59:34
안녕하세요
예스스탁입니다.
현재 사용하시는 차트가 틱봉인것 같습니다.
현재 답변드린 수식이 기본종목 참조종목 모두
분봉이상의 주기이면 첨부된 그림과 같이 정상적으로 그려지게 됩니다.
모든 수식은 기본차트(data1)이 기준입니다.
plot함수도 기본차트의 봉이 있을때만 그려지고
참조데이터의 봉인 있지만 기본차트의 봉이 없으면 그리지 못합니다.
추세선이나 박스함수도 마찬가지로
날짜와 시간을 지정하면 기본차트의 봉에서 지정한 날짜와 시간이 있는 봉이 있어야 그리게 됩니다.
차트가 틱봉이면 기본차트와 참조데이터가 동일시간에 봉이 있지 않으므로
그리지 못하는 봉들이 많이 생기게 되는데 이는 수식에서 해결이 가능하지 않습니다.
정리하면 data2로 변환하는 현재 수식의 내용이
정확히 data2의 고점과 저점을 기준으로 출력되어야 하는데
data2의 고점이나 저점이 생긴봉과 일치하는 기본차트의 봉이 없으면 그릴수 없기 때문에
가능하지 않습니다.
즐거운 하루되세요
> 고성 님이 쓴 글입니다.
> 제목 : 전환비율 data2
> Input:전환비율(0.5);
Var : j(0,Data2),jj(0,Data2),HH(0,Data2),LL(0,Data2),hiBar(0,Data2),loBar(0,Data2),최종꼭지점("",Data2),처리구분("",Data2);
var : TL1(0,Data2),Box(0,Data2);
var : cond1(False,Data2),cond2(False,Data2);
Array:고[10,4](0,Data2),저[10,4](0,Data2);
HH=data2(H);
LL=data2(L);
If data2(Index==0) Then
{
고[1,1]=HH;
고[1,2]=0;
고[1,3]=data2(sDate);
고[1,4]=data2(sTime);
저[1,1]=LL;
저[1,2]=0;
저[1,3]=data2(sDate);
저[1,4]=data2(sTime);
}
If data2(Index>0) Then
{
hiBar=hiBar+1;
loBar=loBar+1;
}
If HH[hiBar]<HH Then hiBar=0;
If LL[loBar]>LL Then loBar=0;
cond1=저[1,1]*(1+(전환비율/100))<HH and hiBar==0;
cond2=고[1,1]*(1-(전환비율/100))>LL and loBar==0;
처리구분="";
If cond1 and cond2 Then//고점과저점조건동시만족
{
If 최종꼭지점=="저점" Then
{
If 저[1,1]>LL Then 처리구분="저점처리";
Else 처리구분="고점처리";
}
Else If 최종꼭지점=="고점" Then
{
If 고[1,1]<HH Then 처리구분="고점처리";
Else 처리구분="저점처리";
}
}
Else If cond1 Then 처리구분="고점처리";
Else If cond2 Then 처리구분="저점처리";
If 처리구분=="고점처리" Then
{
If 최종꼭지점=="저점" Then
{
For j=10 DownTo 2
{
For jj=1 To 4
{
고[j,jj]=고[j-1,jj];
}
}
고[1,1]=HH[hiBar];
고[1,2]=data2(Index)-hiBar;
고[1,3]=data2(sDate[hiBar]);
고[1,4]=data2(sTime[hiBar]);
hiBar=-1;
loBar=-1;
TL1=TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,RED);
Box_Delete(Box);
box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]);
box_SetColor(Box,RED);
Box_SetFill(Box,true);
}
Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현
{
고[1,1]=HH[hiBar];
고[1,2]=data2(Index)-hiBar;
고[1,3]=data2(sDate[hiBar]);
고[1,4]=data2(sTime[hiBar]);
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
Box_SetEnd(Box,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점="고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분=="저점처리" Then
{
If 최종꼭지점=="고점" Then
{
For j=10 DownTo 2
{
For jj=1 To 4
{
저[j,jj]=저[j-1,jj];
}
}
저[1,1]=LL[loBar];
저[1,2]=data2(Index)-loBar;
저[1,3]=data2(sDate[loBar]);
저[1,4]=data2(sTime[loBar]);
hiBar=-1;
loBar=-1;
TL1=TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLUE);
Box_Delete(Box);
box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]);
box_SetColor(Box,Blue);
Box_SetFill(Box,true);
}
Else If 저[1,1]>LL[loBar] Then
{
저[1,1]=LL[loBar];
저[1,2]=data2(Index)-loBar;
저[1,3]=data2(sDate[loBar]);
저[1,4]=data2(sTime[loBar]);
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
Box_SetEnd(Box,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점="저점";
Plot2(저[1,1]);
NoPlot(1);
}
박스 생성이 안되기도하고, 박스 크기도 일부 작고, 삭제도 몇군데 안됩니다.
오류 부분에서는 추세선도 이상합니다. 하락박스의 시작점에서 저를 고로 바꾸니 약간 수정되나 비슷합니다. 오류 수정 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 전환비율 data2
> 안녕하세요
예스스탁입니다.
현재 사용하시는 차트가 틱봉인것 같습니다.
현재 답변드린 수식이 기본종목 참조종목 모두
분봉이상의 주기이면 첨부된 그림과 같이 정상적으로 그려지게 됩니다.
모든 수식은 기본차트(data1)이 기준입니다.
plot함수도 기본차트의 봉이 있을때만 그려지고
참조데이터의 봉인 있지만 기본차트의 봉이 없으면 그리지 못합니다.
추세선이나 박스함수도 마찬가지로
날짜와 시간을 지정하면 기본차트의 봉에서 지정한 날짜와 시간이 있는 봉이 있어야 그리게 됩니다.
차트가 틱봉이면 기본차트와 참조데이터가 동일시간에 봉이 있지 않으므로
그리지 못하는 봉들이 많이 생기게 되는데 이는 수식에서 해결이 가능하지 않습니다.
정리하면 data2로 변환하는 현재 수식의 내용이
정확히 data2의 고점과 저점을 기준으로 출력되어야 하는데
data2의 고점이나 저점이 생긴봉과 일치하는 기본차트의 봉이 없으면 그릴수 없기 때문에
가능하지 않습니다.
즐거운 하루되세요
> 고성 님이 쓴 글입니다.
> 제목 : 전환비율 data2
> Input:전환비율(6);
Var : j(0,Data2),jj(0,Data2),HH(0,Data2),LL(0,Data2),hiBar(0,Data2),loBar(0,Data2),최종꼭지점("",Data2),처리구분("",Data2);
var : TL1(0,Data2),Box(0,Data2);
var : cond1(False,Data2),cond2(False,Data2);
Array:고[10,4](0,Data2),저[10,4](0,Data2);
HH=data2(H);
LL=data2(L);
If data2(Index==0) Then
{
고[1,1]=HH;
고[1,2]=0;
고[1,3]=data2(sDate);
고[1,4]=data2(sTime);
저[1,1]=LL;
저[1,2]=0;
저[1,3]=data2(sDate);
저[1,4]=data2(sTime);
}
If data2(Index>0) Then
{
hiBar=hiBar+1;
loBar=loBar+1;
}
If HH[hiBar]<HH Then hiBar=0;
If LL[loBar]>LL Then loBar=0;
cond1=저[1,1]*(1+(전환비율/100))<HH and hiBar==0;
cond2=고[1,1]*(1-(전환비율/100))>LL and loBar==0;
처리구분="";
If cond1 and cond2 Then//고점과저점조건동시만족
{
If 최종꼭지점=="저점" Then
{
If 저[1,1]>LL Then 처리구분="저점처리";
Else 처리구분="고점처리";
}
Else If 최종꼭지점=="고점" Then
{
If 고[1,1]<HH Then 처리구분="고점처리";
Else 처리구분="저점처리";
}
}
Else If cond1 Then 처리구분="고점처리";
Else If cond2 Then 처리구분="저점처리";
If 처리구분=="고점처리" Then
{
If 최종꼭지점=="저점" Then
{
For j=10 DownTo 2
{
For jj=1 To 4
{
고[j,jj]=고[j-1,jj];
}
}
고[1,1]=HH[hiBar];
고[1,2]=data2(Index)-hiBar;
고[1,3]=data2(sDate[hiBar]);
고[1,4]=data2(sTime[hiBar]);
hiBar=-1;
loBar=-1;
TL1=TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,RED);
Box_Delete(Box);
box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]);
box_SetColor(Box,RED);
Box_SetFill(Box,true);
}
Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현
{
고[1,1]=HH[hiBar];
고[1,2]=data2(Index)-hiBar;
고[1,3]=data2(sDate[hiBar]);
고[1,4]=data2(sTime[hiBar]);
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
Box_SetEnd(Box,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점="고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분=="저점처리" Then
{
If 최종꼭지점=="고점" Then
{
For j=10 DownTo 2
{
For jj=1 To 4
{
저[j,jj]=저[j-1,jj];
}
}
저[1,1]=LL[loBar];
저[1,2]=data2(Index)-loBar;
저[1,3]=data2(sDate[loBar]);
저[1,4]=data2(sTime[loBar]);
hiBar=-1;
loBar=-1;
TL1=TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLUE);
Box_Delete(Box);
box=box_New_self(저[1,3],저[1,4],저[1,1],Data2(NextBarSdate),Data2(NextBarStime),고[1,1]);
box_SetColor(Box,Blue);
Box_SetFill(Box,true);
}
Else If 저[1,1]>LL[loBar] Then
{
저[1,1]=LL[loBar];
저[1,2]=data2(Index)-loBar;
저[1,3]=data2(sDate[loBar]);
저[1,4]=data2(sTime[loBar]);
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
Box_SetEnd(Box,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점="저점";
Plot2(저[1,1]);
NoPlot(1);
}
박스 생성이 안되기도하고, 박스 크기도 일부 작고, 삭제도 몇군데 안됩니다.
오류 부분에서는 추세선도 이상합니다. 하락박스의 시작점에서 저를 고로 바꾸니 약간 수정되나 비슷합니다. 오류 수정 부탁드립니다.
재문의
틱봉 아니고 20초봉입니다. 차트는 선물이고 data2는 미니 kp 선물호가총건수입니다.