예스스탁
예스스탁 답변
2023-01-25 09:46:39
안녕하세요
예스스탁입니다.
수식안에서 그래프모양을 지정할 수 없습니다.
파라볼릭과 같이 점으로 출력되는 지표는 지표속성에서
그래프모양을 설정해 주셔야 합니다.
또한 지표속성의 차트표시에서 각 지표 선택해
표시여부를 지정할 수 있지만
이름의 경우 텍스트함수로 출력되어 표시여부를 지정할 수 없습니다.
각 지표의 이름을 표시하지 않고자 하시면 수식안에서
주석이나 삭제처리하셔야 합니다.
1
input : af(0.02),maxaf(0.2);
input : p1(5),p2(20),p3(60),p4(120);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0);
var : tx6(0),tx7(0),tx8(0),tx9(0),tx10(0);
var : tx11(0),tx12(0),tx13(0),tx14(0);
var1 = sar(af,maxaf);
value1 = ma(c,p1);
value2 = ma(c,p2);
value3 = ma(c,p3);
value4 = ma(c,p4);
Plot1(DayOpen(0),"당일시가");
Plot2(DayHigh(0),"당일고가");
Plot3(DayLow(0),"당일저가");
Plot4((DayHigh(0)+DayLow(0))/2,"당일중심");
Plot5(DayOpen(1),"전일시가");
Plot6(DayHigh(1),"전일고가");
Plot7(DayLow(1),"전일저가");
Plot8((DayHigh(1)+DayLow(1))/2,"전일중심");
Plot9(DayClose(1),"전일종가");
Plot10(var1,"파라볼릭",IFf(C>var1,Red,Blue));
Plot11(value1,"이평1");
Plot12(value2,"이평2");
Plot13(value3,"이평3");
Plot14(value4,"이평4");
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
Text_Delete(tx7);
Text_Delete(tx8);
Text_Delete(tx9);
Text_Delete(tx10);
Text_Delete(tx11);
Text_Delete(tx12);
Text_Delete(tx13);
Text_Delete(tx14);
tx1 = Text_New(nextbarsdate,nextbarstime,DayOpen(0),"당일고가");
tx2 = Text_New(nextbarsdate,nextbarstime,DayHigh(0),"당일저가");
tx3 = Text_New(nextbarsdate,nextbarstime,DayLow(0),"당일종가");
tx4 = Text_New(nextbarsdate,nextbarstime,(DayHigh(0)+DayLow(0))/2,"당일중심");
tx5 = Text_New(nextbarsdate,nextbarstime,DayOpen(1),"전일고가");
tx6 = Text_New(nextbarsdate,nextbarstime,DayHigh(1),"전일저가");
tx7 = Text_New(nextbarsdate,nextbarstime,DayLow(1),"전일종가");
tx8 = Text_New(nextbarsdate,nextbarstime,(DayHigh(1)+DayLow(1))/2,"전일중심");
tx9 = Text_New(nextbarsdate,nextbarstime,var1,"파라볼릭");
tx10 = Text_New(nextbarsdate,nextbarstime,value1,NumToStr(P1,0)+"이평");
tx11 = Text_New(nextbarsdate,nextbarstime,value2,NumToStr(P2,0)+"이평");
tx12 = Text_New(nextbarsdate,nextbarstime,value3,NumToStr(P3,0)+"이평");
tx13 = Text_New(nextbarsdate,nextbarstime,value4,NumToStr(P4,0)+"이평");
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,2);
Text_SetStyle(tx3,0,2);
Text_SetStyle(tx4,0,2);
Text_SetStyle(tx5,0,2);
Text_SetStyle(tx6,0,2);
Text_SetStyle(tx7,0,2);
Text_SetStyle(tx8,0,2);
Text_SetStyle(tx9,0,2);
Text_SetStyle(tx10,0,2);
Text_SetStyle(tx11,0,2);
Text_SetStyle(tx12,0,2);
Text_SetStyle(tx13,0,2);
Text_SetStyle(tx14,0,2);
2
틱봉과 분봉의 일/주/월 이평수식이 같습니다.
수식이 계산되기 위해서는 차트에 해당 기간의 모든 데이타가 있어야 합니다.
각 이평은 차트에 해당 이평을 계산할만큼 충분한 데이타가 있어야 출력됩니다.
2-1 일
input : P1(5),P2(10),P3(20),P4(60),P5(120),P6(240);
var : cnt(0);
var : sumV1(0),sumV2(0),sumV3(0),sumV4(0),sumV5(0),sumV6(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
sumV4 = 0;
sumV5 = 0;
sumV6 = 0;
for cnt = 0 to P6
{
if cnt < P1 Then
sumV1 = sumV1+DayClose(cnt);
if cnt < P2 Then
sumV2 = sumV2+DayClose(cnt);
if cnt < P3 Then
sumV3 = sumV3+DayClose(cnt);
if cnt < P4 Then
sumV4 = sumV4+DayClose(cnt);
if cnt < P5 Then
sumV5 = sumV5+DayClose(cnt);
if cnt < P6 Then
sumV6 = sumV6+DayClose(cnt);
}
maV1 = sumV1 / P1;
maV2 = sumV2 / P2;
maV3 = sumV3 / P3;
maV4 = sumV4 / P4;
maV5 = sumV5 / P5;
maV6 = sumV6 / P6;
if DayClose(P1-1) > 0 Then
plot1(mav1,"이평1");
if DayClose(P2-1) > 0 Then
plot2(mav2,"이평2");
if DayClose(P3-1) > 0 Then
plot3(mav3,"이평3");
if DayClose(P4-1) > 0 Then
plot4(mav4,"이평4");
if DayClose(P5-1) > 0 Then
plot5(mav5,"이평5");
if DayClose(P6-1) > 0 Then
plot6(mav6,"이평6");
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
if mav1 > 0 Then
tx1 = Text_New(nextbarsdate,nextbarstime,mav1,NumToStr(P1,0)+"주");
if mav2 > 0 Then
tx2 = Text_New(nextbarsdate,nextbarstime,mav2,NumToStr(P2,0)+"주");
if mav3 > 0 Then
tx3 = Text_New(nextbarsdate,nextbarstime,mav3,NumToStr(P3,0)+"주");
if mav4 > 0 Then
tx4 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P4,0)+"주");
if mav5 > 0 Then
tx5 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P5,0)+"주");
if mav6 > 0 Then
tx6 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P6,0)+"주");
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,2);
Text_SetStyle(tx3,0,2);
Text_SetStyle(tx4,0,2);
Text_SetStyle(tx5,0,2);
Text_SetStyle(tx6,0,2);
2-2 주
input : P1(5),P2(10),P3(20),P4(60),P5(120),P6(200);
var : cnt(0),count(0);
var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
Array : CC[300](0);
if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then
{
for cnt = 299 downto 1
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1-1] > 0 Then
{
sum1 = 0;
for count = 0 to P1-1
{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;
plot1(mav1);
}
if CC[P2-1] > 0 Then
{
sum2 = 0;
for count = 0 to P2-1
{
sum2 = sum2+CC[count];
}
mav2 = sum2/P2;
plot2(mav2);
}
if CC[P3-1] > 0 Then
{
sum3 = 0;
for count = 0 to P3-1
{
sum3 = sum3+CC[count];
}
mav3 = sum3/P3;
plot3(mav3);
}
if CC[P4-1] > 0 Then
{
sum4 = 0;
for count = 0 to P4-1
{
sum4 = sum4+CC[count];
}
mav4 = sum4/P4;
plot4(mav4);
}
if CC[P5-1] > 0 Then
{
sum5 = 0;
for count = 0 to P5-1
{
sum5 = sum5+CC[count];
}
mav5 = sum5/P5;
plot5(mav5);
}
if CC[P6-1] > 0 Then
{
sum6 = 0;
for count = 0 to P6-1
{
sum6 = sum6+CC[count];
}
mav6 = sum6/P6;
plot6(mav6);
}
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
if mav1 > 0 Then
tx1 = Text_New(nextbarsdate,nextbarstime,mav1,NumToStr(P1,0)+"주");
if mav2 > 0 Then
tx2 = Text_New(nextbarsdate,nextbarstime,mav2,NumToStr(P2,0)+"주");
if mav3 > 0 Then
tx3 = Text_New(nextbarsdate,nextbarstime,mav3,NumToStr(P3,0)+"주");
if mav4 > 0 Then
tx4 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P4,0)+"주");
if mav5 > 0 Then
tx5 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P5,0)+"주");
if mav6 > 0 Then
tx6 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P6,0)+"주");
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,2);
Text_SetStyle(tx3,0,2);
Text_SetStyle(tx4,0,2);
Text_SetStyle(tx5,0,2);
Text_SetStyle(tx6,0,2);
2-3 월
input : P1(5),P2(10),P3(20),P4(60),P5(120),P6(200);
var : cnt(0),count(0);
var : sum1(0),sum2(0),sum3(0),sum4(0),sum5(0),sum6(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
Array : CC[300](0);
if Bdate > Bdate[1]+30 Then
{
for cnt = 299 downto 1
{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1-1] > 0 Then
{
sum1 = 0;
for count = 0 to P1-1
{
sum1 = sum1+CC[count];
}
mav1 = sum1/P1;
plot1(mav1);
}
if CC[P2-1] > 0 Then
{
sum2 = 0;
for count = 0 to P2-1
{
sum2 = sum2+CC[count];
}
mav2 = sum2/P2;
plot2(mav2);
}
if CC[P3-1] > 0 Then
{
sum3 = 0;
for count = 0 to P3-1
{
sum3 = sum3+CC[count];
}
mav3 = sum3/P3;
plot3(mav3);
}
if CC[P4-1] > 0 Then
{
sum4 = 0;
for count = 0 to P4-1
{
sum4 = sum4+CC[count];
}
mav4 = sum4/P4;
plot4(mav4);
}
if CC[P5-1] > 0 Then
{
sum5 = 0;
for count = 0 to P5-1
{
sum5 = sum5+CC[count];
}
mav5 = sum5/P5;
plot5(mav5);
}
if CC[P6-1] > 0 Then
{
sum6 = 0;
for count = 0 to P6-1
{
sum6 = sum6+CC[count];
}
mav6 = sum6/P6;
plot6(mav6);
}
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
Text_Delete(tx4);
Text_Delete(tx5);
Text_Delete(tx6);
if mav1 > 0 Then
tx1 = Text_New(nextbarsdate,nextbarstime,mav1,NumToStr(P1,0)+"월");
if mav2 > 0 Then
tx2 = Text_New(nextbarsdate,nextbarstime,mav2,NumToStr(P2,0)+"월");
if mav3 > 0 Then
tx3 = Text_New(nextbarsdate,nextbarstime,mav3,NumToStr(P3,0)+"월");
if mav4 > 0 Then
tx4 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P4,0)+"월");
if mav5 > 0 Then
tx5 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P5,0)+"월");
if mav6 > 0 Then
tx6 = Text_New(nextbarsdate,nextbarstime,mav4,NumToStr(P6,0)+"월");
Text_SetStyle(tx1,0,2);
Text_SetStyle(tx2,0,2);
Text_SetStyle(tx3,0,2);
Text_SetStyle(tx4,0,2);
Text_SetStyle(tx5,0,2);
Text_SetStyle(tx6,0,2);
3
오타가 있었습니다.
ntime을 starttime으로 변경해 주시면 됩니다.
4
답변드린 내용을 시스템식에 추가해 적용해 보았지만
"0틱"으로 표시되는 봉이 보이지 않습니다.
수식내 조건문에 pp > 0 조건을 추가해 보시기 바랍니다.
if pp > pp[1] and pp > 0 Then
즐거운 하루되세요
> chochobo 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 수고가 많으십니다.
예스랭귀지 초보인지라 몇가지 문의를 드리고자 합니다.
1-1. 당일과 전일의 주요 지표값 등 출력
①당일 시가
②당일 고가
③당일 저가
④당일 중앙선(당일 저점과 당일 고점의 중간값)
⑤전일 시가
⑥전일 고가
⑦전일 저가
⑧전일 중앙선
⑨전일 종가
를 차트에 선으로 출력하고, 당일 시가, 당일 고가 등등으로 표식도 함께 출력하고 싶습니다.
⑩파라볼릭(종가) ==> 기본지표에 있는 파라볼릭(종가)임
⑪ 5 이평선
⑫ 20 이평선
⑬ 60 이평선
⑭ 120 이평선
은 텍스트 표식없이 함께 출력하고싶습니다.
(파라볼릭은 원본 그대로 캔들주변의 작은 점으로 표기하되, 색상과 두께 조절이 가능하게, 변수인 af 와 maxAf 는 변수편집 기능까지 가능하게)
(5/10/20/60/120 기본 이평선은 필요시 10, 30, 200 이평선 등등으로 이평선을 조정할 수 있도록 변수? 취급하여 편집기능까지)
== > 결론: 위의 지표들을 하나의 세트로 묶고자 함
1-2. 위 "1-1" 의 당일/전일 주요 지표값 등의 전부를
"지표속성"의 "차트표시"에서 체크박스로 만들어서 선택적으로 출력하고 싶고,
라인색과 두께도 함께 조절하고 싶습니다.
2-1. 당일과 전일의 일봉/주봉/월봉 값을 차트에 출력하고 싶습니다.
①"틱"차트에서 당일의 일봉(5일, 10일, 20일, 60일, 120일, 200일)
주봉(5주, 10주, 20주, 60주, 120주, 200주)
월봉(5월, 10월, 20월, 60월, 120월, 200월)
②"분"차트에서 당일의 일봉(5일, 10일, 20일, 60일, 120일, 200일)
주봉(5주, 10주, 20주, 60주, 120주, 200주)
월봉(5월, 10월, 20월, 60월, 120월, 200월)
==> 위 2-1의 ①, ② 경우, 차트 우측에 5일, 10일, 20일.... 5주, 10주, 20주.. 5월, 10월 20월... 등의 표식도 함께 출력하고 싶습니다.
2-2. 아울러 앞의 사례와 마찬가지로,
일봉(5일, 10일, 20일, 60일, 120일, 200일)/ 주봉(5주, 10주, 20주, 60주, 120주, 200주)/ 월봉(5월, 10월, 20월, 60월, 120월, 200월) 값을
"지표속성"의 "차트표시"에서 체크박스로 만들어서 선택적으로 출력하고 싶고,
라인색과 두께도 함께 조절하고 싶습니다.
3-1. 그리고 끝으로 저번 80428 에 대한 추가 질의를 드리고자 합니다.
원 질의(80428)에서 "3-1" 실행시 에러가 나는데요..
(첨부된 그림 화일 참조)
[답변 내용중 일부 발췌]
3-1
아래 구조로 식을 작성하시면
10시15분에 시작해서 03시 50분 청산하게 됩니다.
input : ntime(101500),EndTime(35000);
var : Tcond(false);
====> 여기서 첫줄. input문을
input : StartTime(101500),EndTime(035000);
이렇게 수정하니 에러가 안나는데..
이렇게 수정해서 사용하는게 맞는거죠? ^^
3-2. 아울러 답변으로 올려주신 수식은 다 잘 되는데.. 가끔 "0틱 수익"이 찍힙니다. 이건 어떻게 잡아야 될까요?