커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7708
글번호 230811
답변완료
지표재문의
주봉과 분봉의 각 plot 값이 다르게 나옵니다
확인 부탁드립니다
주봉의 price channel 과 볼리저밴드는 1봉전 수치이고
주봉의 중간값은 현재봉입니다
안녕하세요
예스스탁입니다.
input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60),
Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60);
var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0),cnt(0);
Var : Sum1(0), Counter1(0), CSum1(0),Wma1(0),SumSqrt1(0),Std1(0);
Var : Sum2(0), Counter2(0), CSum2(0),Wma2(0),SumSqrt2(0),Std2(0);
Var : Sum3(0), Counter3(0), CSum3(0),Wma3(0),SumSqrt3(0),Std3(0);
Var : Sum4(0), Counter4(0), CSum4(0),Wma4(0),SumSqrt4(0),Std4(0);
Var : Sum5(0), Counter5(0), CSum5(0),Wma5(0),SumSqrt5(0),Std5(0);
Var : Sum6(0), Counter6(0), CSum6(0),Wma6(0),SumSqrt6(0),Std6(0);
Array : HH[70](0),CC[70](0),LL[70](0);
if DayOfWeek(sdate) <= DayOfWeek(sdate[1]) and sdate > sdate[1] Then{
HH[0] = H;
for cnt = 1 to 61{
HH[cnt] = HH[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
var1 = value1[1];
var2 = value2[1];
var3 = value3[1];
var4 = value4[1];
var5 = value5[1];
var6 = value6[1];
}
if H > HH[0] Then HH[0] = H;
if L < LL[0] Then LL[0] = L;
CC[0] = C;
TCHAN1 = HH[1];
for cnt = 1 to LENGTH1 {
if HH[cnt] > TCHAN1 Then
TCHAN1 = HH[cnt];
}
TCHAN2 = HH[1];
for cnt = 1 to LENGTH2 {
if HH[cnt] > TCHAN2 Then
TCHAN2 = HH[cnt];
}
TCHAN3 = HH[1];
for cnt = 1 to LENGTH3 {
if HH[cnt] > TCHAN3 Then
TCHAN3 = HH[cnt];
}
TCHAN4 = HH[1];
for cnt = 1 to LENGTH4 {
if HH[cnt] > TCHAN4 Then
TCHAN4 = HH[cnt];
}
TCHAN5 = HH[1];
for cnt = 1 to LENGTH5 {
if HH[cnt] > TCHAN5 Then
TCHAN5 = HH[cnt];
}
TCHAN6 = HH[1];
for cnt = 1 to LENGTH6 {
if HH[cnt] > TCHAN6 Then
TCHAN6 = HH[cnt];
}
Sum1 = 0;
CSum1 = 0;
For counter1 = 0 To Period1 - 1 {
Sum1= Sum1 + CC[counter1] * (Period1 - counter1);
CSum1 = CSum1 + Period1 - counter1;
}
WMA1 = Sum1/ CSum1;
SumSqrt1 = 0;
For Counter1 = 0 To Period1 - 1 {
SumSqrt1 = SumSqrt1 + (CC[Counter1] - WMA1) * (CC[Counter1] - WMA1);
}
Std1 = SquareRoot(SumSqrt1 / Period1);
Sum2 = 0;
CSum2 = 0;
For counter2 = 0 To Period2 - 1 {
Sum2 = Sum2 + CC[counter2] * (Period2 - counter2);
CSum2 = CSum2 + Period2 - counter2;
}
WMA2 = Sum2/ CSum2;
SumSqrt2 = 0;
For Counter2 = 0 To Period2 - 1 {
SumSqrt2 = SumSqrt2 + (CC[Counter2] - WMA2) * (CC[Counter2] - WMA2);
}
Std2 = SquareRoot(SumSqrt2 / Period2);
Sum3 = 0;
CSum3 = 0;
For counter3 = 0 To Period3 - 1 {
Sum3 = Sum3 + CC[counter3] * (Period3 - counter3);
CSum3 = CSum3 + Period3 - counter3;
}
WMA3 = Sum3/ CSum3;
SumSqrt3 = 0;
For Counter3 = 0 To Period3 - 1 {
SumSqrt3 = SumSqrt3 + (CC[Counter3] - WMA3) * (CC[Counter3] - WMA3);
}
Std3 = SquareRoot(SumSqrt3 / Period3);
Sum4 = 0;
CSum4 = 0;
For counter4 = 0 To Period4 - 1 {
Sum4 = Sum4 + CC[counter4] * (Period4 - counter4);
CSum4 = CSum4 + Period4 - counter4;
}
WMA4 = Sum4/ CSum4;
SumSqrt4 = 0;
For Counter4 = 0 To Period4 - 1 {
SumSqrt4 = SumSqrt4 + (CC[Counter4] - WMA4) * (CC[Counter4] - WMA4);
}
Std4 = SquareRoot(SumSqrt4 / Period4);
Sum5 = 0;
CSum5 = 0;
For counter5 = 0 To Period5 - 1 {
Sum5 = Sum5 + CC[counter5] * (Period5 - counter5);
CSum5 = CSum5 + Period5 - counter5;
}
WMA5 = Sum5/ CSum5;
SumSqrt5 = 0;
For Counter5 = 0 To Period5 - 1 {
SumSqrt5 = SumSqrt5 + (CC[Counter5] - WMA5) * (CC[Counter5] - WMA5);
}
Std5 = SquareRoot(SumSqrt5 / Period5);
Sum6 = 0;
CSum6 = 0;
For counter6 = 0 To Period6 - 1 {
Sum6 = Sum6 + CC[counter6] * (Period6 - counter6);
CSum6 = CSum6 + Period6 - counter6;
}
WMA6 = Sum6/ CSum6;
SumSqrt6 = 0;
For Counter6 = 0 To Period6 - 1 {
SumSqrt6 = SumSqrt6 + (CC[Counter6] - WMA6) * (CC[Counter6] - WMA6);
}
Std6 = SquareRoot(SumSqrt6 / Period6);
value1 = wma1+(p1*STD1);
value2 = wma2+(p1*STD2);
value3 = wma3+(p1*STD3);
value4 = wma4+(p1*STD4);
value5 = wma5+(p1*STD5);
value6 = wma6+(p1*STD6);
var7 = (HH[0]+LL[0])/2; ##주봉 중간값
Value1 = Max((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3);
Value2 = Min((HH[1]+LL[1])/2,(HH[1]+LL[1]+CC[1])/3,(HH[2]+LL[2])/2,(HH[2]+LL[2]+CC[2])/3);
Value3 = (MAX(HH[1],HH[2])+Min(LL[1],LL[2])+CC[1])/3;
Value4 = Value1+Value2+Value3;
Plot1(TCHAN1, "pc3[1]");
Plot2(TCHAN2, "pc5[1]");
Plot3(TCHAN3, "pc10[1]");
Plot4(TCHAN4, "pc20[1]");
Plot5(TCHAN5, "pc40[1]");
Plot6(TCHAN6, "pc60[1]");
Plot7(var1, "bb3[1]");
Plot8(var2, "bb5[1]");
Plot9(var3, "bb10[1]");
Plot10(var4, "bb20[1]");
Plot11(var5, "bb40[1]");
Plot12(var6, "bb60[1]");
Plot13(Value1, "1");
Plot14(Value2, "2");
Plot15(Value3, "3");
Plot16(Value4, "4");
즐거운 하루되세요
> 맥스 님이 쓴 글입니다.
> 제목 : 지표식 문의
> 문의드립니다.
아래의 수식은 주봉의 수식입니다. 구하고자 하는 값은 일봉 및 분봉에서 주봉의 각 plot 값입니다.
1. 아래주봉의 각 plot 값을 일봉 및 20분봉에서 지표로 나타내기
2. 아래주봉의 수식을 일봉의 수식으로 간주하고 20분봉에서 일봉의 각 plot 값을
지표로 나타내기(var7 = (DayHigh+DayLow)/2; 일봉중간값)
input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60),
Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60);
var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0);
TCHAN1 = HIGHEST(High, LENGTH1)[1];
TCHAN2 = HIGHEST(High, LENGTH2)[1];
TCHAN3 = HIGHEST(High, LENGTH3)[1];
TCHAN4 = HIGHEST(High, LENGTH4)[1];
TCHAN5 = HIGHEST(High, LENGTH5)[1];
TCHAN6 = HIGHEST(High, LENGTH6)[1];
var1 = wma(C, period1)[1]+(p1*stdw(C, period1)[1]);
var2 = wma(C, period2)[1]+(p1*stdw(C, period2)[1]);
var3 = wma(C, period3)[1]+(p1*stdw(C, period3)[1]);
var4 = wma(C, period4)[1]+(p1*stdw(C, period4)[1]);
var5 = wma(C, period5)[1]+(p1*stdw(C, period5)[1]);
var6 = wma(C, period6)[1]+(p1*stdw(C, period6)[1]);
var7 = (H+L)/2; ##주봉 중간값
Value1 = Max((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3);
Value2 = Min((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3);
Value3 = (MAX(H[1],H[2])+Min(L[1],L[2])+C[1])/3;
Value4 = Value1+Value2+Value3;
Plot1(TCHAN1, "pc3[1]");
Plot2(TCHAN2, "pc5[1]");
Plot3(TCHAN3, "pc10[1]");
Plot4(TCHAN4, "pc20[1]");
Plot5(TCHAN5, "pc40[1]");
Plot6(TCHAN6, "pc60[1]");
Plot7(var1, "bb3[1]");
Plot8(var2, "bb5[1]");
Plot9(var3, "bb10[1]");
Plot10(var4, "bb20[1]");
Plot11(var5, "bb40[1]");
Plot12(var6, "bb60[1]");
Plot13(Value1, "1");
Plot14(Value2, "2");
Plot15(Value3, "3");
Plot16(Value4, "4");
2011-08-10
674
글번호 41828
답변완료
Data2의 값이 Data1의 주기에 따라 달라지는 이유는?
Data1: 5분봉
Data2: 일봉
Variables: SMIK(0, Data2);
SMIK = Data2(SMI(13,24,2));
의 경우 8/10일 현재의 SMIK값은 37.40으로 항상 같은 값이 나옵니다.
그런데 아래와같이 바꾸면
Data1: 일봉
Data2: 일봉
Variables: SMIK(0, Data2);
SMIK = Data2(SMI(13,24,2));
Data1과 Data2가 같이 일봉일 경우 SMIK는 현재의 값이 40.74, 40.72, 40.70등 Realtime으로 값이 나옵니다.
두번째의 경우 처럼 현재값을 Realtime으로 알고 싶은데요.
저의 경우는 Data1을 5분봉으로 Data2는 일봉으로 해야 되거든요.
이렇게 Data1의 주기가 Data2의 주기보다 짧을 경우 현재값을 정확히 구할 수 없는 것인가요?
2011-08-10
625
글번호 41824
답변완료
참조 차트 연동은 안되나요?
차트 #1
참조차트 #2
참조차트 #3
인 상태에서 차트 #1의 종목을 바꾸면
참조차트 #2,#3도 같은 종목으로 바뀌도록
연동 할수 있는 방법은 없는지요
2011-08-10
628
글번호 41823
답변완료
지표 문의 드립니다~
일봉상(특히, 점 하한가)의 매도 잔량의 금액을
나타내는 지표 부탁합니다~
2011-08-10
689
글번호 41822
답변완료
수식문의
안녕하세요 수식문의드립니다.
매수
120개봉 최저가 에서 6%~9% 사이까지 상승한후
최고가 대비 3% 하락시 매수 2계약
추가매수조건
매수후 익절없이 하락할 경우만 추가매수
매수가 대비 1% 하락시 2계약 추가매수
익절1(추가매수 없는경우)
1> 진입가 대비 1% 수익시 1계약 청산
2> 진입가 대비 2% 수익시 1계약 청산
(1계약 청산후 1% 더 상승하지 못하고 하락시
최대수익대비 50% 감소시 나머지 1계약 청산)
익절2(추가매수 있는경우)
1> 진입가 대비 1% 수익시 2계약 청산
2> 진입가 대비 2% 수익시 1계약 청산
3> 진입가 대비 3% 수익시 1계약 청산
(최대수익대비 50%감소시 전량 청산)
손절
추가매수 한가격에서 2% 하락시 전량청산
변수로 처리 부탁드립니다. 감사합니다. 수고하세요
2011-08-10
666
글번호 41817
답변완료
FX 시간대에 맞게 지표식을 수정하려면?
현재 우리나라 옵션의 경우 09:00~15:15분까지 하루가 설정되어 있는데...
FX는 17:00~16:00 으로 23시간 거래가 되는 것으로 알고 있습니다.
17:00를 시작으로 다음날 16:00에 끝나도록 당일 지표식을 수정하려면 어떻게 해야 하는지요?
var1 = ma(C,dayindex()+1);
예를 들면 이런 경우 수정을 어떻게 해야 할지요?
if dayindex == 0 Then{
많아서... 자세한 설명 부탁드립니다.
그럼 수고하세요...
2011-08-10
649
글번호 41816
답변완료
문의드립니다.
더운데 수고하십니다.
선물보고 옵션거래합니다. 옵션거래에서요...
선물 상한가/하한가시 청산 후 당일 진입 금지 (옵션이 아니라 선물기준입니다.)
onclose 청산하게 해주세요.
선물 상한가 근처 (상한가-0.5 point)에서는 콜매수진입금지
선물 하한가 근처 (하한가+0.5 point)에서는 풋매수진입금지
잘 부탁드립니다.
2011-08-10
633
글번호 41814
답변완료
지표식 문의
문의드립니다.
아래의 수식은 주봉의 수식입니다. 구하고자 하는 값은 일봉 및 분봉에서 주봉의 각 plot 값입니다.
1. 아래주봉의 각 plot 값을 일봉 및 20분봉에서 지표로 나타내기
2. 아래주봉의 수식을 일봉의 수식으로 간주하고 20분봉에서 일봉의 각 plot 값을
지표로 나타내기(var7 = (DayHigh+DayLow)/2; 일봉중간값)
input : p1(2),LENGTH1(3),LENGTH2(5),LENGTH3(10),LENGTH4(20),LENGTH5(40),LENGTH6(60),
Period1(3),Period2(5),Period3(10),Period4(20),Period5(40),Period6(60);
var : TCHAN1(0),TCHAN2(0),TCHAN3(0),TCHAN4(0),TCHAN5(0),TCHAN6(0);
TCHAN1 = HIGHEST(High, LENGTH1)[1];
TCHAN2 = HIGHEST(High, LENGTH2)[1];
TCHAN3 = HIGHEST(High, LENGTH3)[1];
TCHAN4 = HIGHEST(High, LENGTH4)[1];
TCHAN5 = HIGHEST(High, LENGTH5)[1];
TCHAN6 = HIGHEST(High, LENGTH6)[1];
var1 = wma(C, period1)[1]+(p1*stdw(C, period1)[1]);
var2 = wma(C, period2)[1]+(p1*stdw(C, period2)[1]);
var3 = wma(C, period3)[1]+(p1*stdw(C, period3)[1]);
var4 = wma(C, period4)[1]+(p1*stdw(C, period4)[1]);
var5 = wma(C, period5)[1]+(p1*stdw(C, period5)[1]);
var6 = wma(C, period6)[1]+(p1*stdw(C, period6)[1]);
var7 = (H+L)/2; ##주봉 중간값
Value1 = Max((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3);
Value2 = Min((H[1]+L[1])/2,(H[1]+L[1]+C[1])/3,(H[2]+L[2])/2,(H[2]+L[2]+C[2])/3);
Value3 = (MAX(H[1],H[2])+Min(L[1],L[2])+C[1])/3;
Value4 = Value1+Value2+Value3;
Plot1(TCHAN1, "pc3[1]");
Plot2(TCHAN2, "pc5[1]");
Plot3(TCHAN3, "pc10[1]");
Plot4(TCHAN4, "pc20[1]");
Plot5(TCHAN5, "pc40[1]");
Plot6(TCHAN6, "pc60[1]");
Plot7(var1, "bb3[1]");
Plot8(var2, "bb5[1]");
Plot9(var3, "bb10[1]");
Plot10(var4, "bb20[1]");
Plot11(var5, "bb40[1]");
Plot12(var6, "bb60[1]");
Plot13(Value1, "1");
Plot14(Value2, "2");
Plot15(Value3, "3");
Plot16(Value4, "4");
2011-08-10
689
글번호 41809
답변완료
관심종목 설정 문의
10% 이상 당일 급등한 종목을 20일 단위로 모아서 관심종목으로
등록해 놓고 (예를 들어 " A 그룹"으로 등록) 결과내 검색으로 몇가지 다른
조건검색식들을 적용해 A그룹 종목에서 해당되는 종목을 찾으려 합니다
1. 10% 이상 종목 검색식
if C > O and C > C[1]*1.1 then
find(1);
이 경우 일봉 종목 검색식을 20번을 적용해야 하는데 위식에서
한번 검색으로 20일치 10% 이상 종목이 다 나올수 있는 검색식 부탁합니다
2. 엑셀로 모아둔 종목을 관심종목으로 설정하고 싶은데 PC에
엑셀로 저장된 종목을 관심종목으로 등록하는 방법 알려주세요.
2011-08-10
674
글번호 41808