커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1620
글번호 230811
답변완료
수식문의
선생님,
1) 타주기 월봉, 주봉 일목균형표 지표를 일봉챠트에 적용하면 화면상 지표 출력안됩니다.
2) 타주기 월봉 일목균형표를 주봉챠트에 적용하면 월봉일목이 출력됩니다.
3) 타주기 주봉 일목균형표를 주봉챠트에 적용해도 월봉일목이 출력됩니다.
4) 타주기 월봉 일목균형표를 월봉챠트에 적용하면 월봉일목이 출력됩니다.
5) 타주기 주봉 일목균형표를 월봉챠트에 적용하면 월봉일목이 출력됩니다.
결론 말씀드리면 일봉챠트에서 두 지표가 다 출력 되지않습니다.
수정 또는 이유를 알려주세요.
감사합니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 수식문의
>
안녕하세요
예스스탁입니다.
후행스팬은 표시하지 못합니다.
또한 차트 오른쪽 여백에 수평이동한 선행스팬들은 그리지 못합니다.
현재봉 기준 26기간 전으로 계산된 선행스팬들이 표시됩니다.
1 월
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : cnt(0);
var : mH1(0),mL1(0),mH11(0),mL11(0),mH2(0),mL2(0),mH22(0),mL22(0),mH3(0),mL3(0);
var : m전환선(0),m기준선(0),m선행스팬1(0),m선행스팬2(0);
Array : MH[100](0),ML[100](0);
if Bdate > Bdate[1]+30 Then
{
MH[0] = H;
ML[0] = L;
for cnt = 1 to 99{
MH[cnt] = MH[cnt-1][1];
ML[cnt] = ML[cnt-1][1];
}
}
if H > MH[0] Then
MH[0] = H;
if L < ML[0] Then
ML[0] = L;
if MH[선행스팬2기간+25] > 0 and ML[선행스팬2기간+25] > 0 then
{
mH1 = MH[0];
mL1 = ML[0];
mH11 = MH[25];
mL11 = ML[25];
mH2 = MH[0];
mL2 = ML[0];
mH22 = MH[25];
mL22 = ML[25];
mH3 = MH[25];
mL3 = ML[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if MH[cnt] > mH1 Then
mH1 = MH[cnt];
if ML[cnt] < mL1 Then
mL1 = ML[cnt];
if MH[cnt+25] > mH11 Then
mH11 = MH[cnt+25];
if ML[cnt+25] < mL11 Then
mL11 = ML[cnt+25];
}
if cnt < 기준선기간 Then{
if MH[cnt] > mH2 Then
mH2 = MH[cnt];
if ML[cnt] < mL2 Then
mL2 = ML[cnt];
if MH[cnt+25] > mH22 Then
mH22 = MH[cnt+25];
if ML[cnt+25] < mL22 Then
mL22 = ML[cnt+25];
}
if MH[cnt+25] > mH3 Then
mH3 = MH[cnt+25];
if ML[cnt+25] < mL3 Then
mL3 = ML[cnt+25];
}
m전환선 = (mH1 + mL1)/2;
m기준선 = (mH2 + mL2)/2;
m선행스팬1 = ((mH11+mL11)/2 + (mH22+mL22)/2) / 2 ;
m선행스팬2 = (mH3+mL3) / 2;
plot1(m전환선);
plot2(m기준선);
plot3(m선행스팬1);
plot4(m선행스팬2);
}
2 주
input : 전환선기간(9),기준선기간(26),선행스팬2기간(52);
var : cnt(0);
var : wH1(0),wL1(0),wH11(0),wL11(0),wH2(0),wL2(0),wH22(0),wL22(0),wH3(0),wL3(0);
var : w전환선(0),w기준선(0),w선행스팬1(0),w선행스팬2(0);
Array : wH[100](0),wL[100](0);
if Bdate > Bdate[1]+30 Then
{
wH[0] = H;
wL[0] = L;
for cnt = 1 to 99
{
wH[cnt] = wH[cnt-1][1];
wL[cnt] = wL[cnt-1][1];
}
}
if H > wH[0] Then
wH[0] = H;
if L < wL[0] Then
wL[0] = L;
if wH[선행스팬2기간+25] > 0 and wL[선행스팬2기간+25] > 0 then
{
wH1 = wH[0];
wL1 = wL[0];
wH11 = wH[25];
wL11 = wL[25];
wH2 = wH[0];
wL2 = wL[0];
wH22 = wH[25];
wL22 = wL[25];
wH3 = wH[25];
wL3 = wL[25];
for cnt = 0 to 선행스팬2기간-1{
if cnt < 전환선기간 Then{
if wH[cnt] > wH1 Then
wH1 = wH[cnt];
if wL[cnt] < wL1 Then
wL1 = wL[cnt];
if wH[cnt+25] > wH11 Then
wH11 = wH[cnt+25];
if wL[cnt+25] < wL11 Then
wL11 = wL[cnt+25];
}
if cnt < 기준선기간 Then{
if wH[cnt] > wH2 Then
wH2 = wH[cnt];
if wL[cnt] < wL2 Then
wL2 = wL[cnt];
if wH[cnt+25] > wH22 Then
wH22 = wH[cnt+25];
if wL[cnt+25] < wL22 Then
wL22 = wL[cnt+25];
}
if wH[cnt+25] > wH3 Then
wH3 = wH[cnt+25];
if wL[cnt+25] < wL3 Then
wL3 = wL[cnt+25];
}
w전환선 = (wH1 + wL1)/2;
w기준선 = (wH2 + wL2)/2;
w선행스팬1 = ((wH11+wL11)/2 + (wH22+wL22)/2) / 2 ;
w선행스팬2 = (wH3+wL3) / 2;
plot1(w전환선);
plot2(w기준선);
plot3(w선행스팬1);
plot4(w선행스팬2);
}
즐거운 하루되세요
> knb 님이 쓴 글입니다.
> 제목 : 수식문의
> 안녕하세요, 선생님,
소중한 답변 늘 감사합니다.
문의 :
1) 월봉 일목균형표 -> 일봉챠트에적용;
2) 주봉 일목균형표 -> 일봉챠트에 적용;
감사합니다.
2022-11-24
914
글번호 164145
답변완료
수식요청드립니다
if MarketPosition == 1 Then
{
if highest(H,BarsSinceEntry) >= EntryPrice*revenue Then
{
value1 = CurrentContracts;
Value2 = value1/8;
ExitLong("bx1",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx2",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx3",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx4",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx5",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx6",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx7",AtStop,highest(H,BarsSinceEntry)*0.99,"",Value2,1);
ExitLong("bx8",AtStop,highest(H,BarsSinceEntry)*0.99,"",value1-(Value2*7),1);
}
}
이거 계약기준은 작동하는데
고정자산기준으로 설정하면 작동이 안됩니다ㅜ
고정자산기준으로 작동되게 정정부탁드립니다
2022-11-24
935
글번호 164131
답변완료
수식요청합니다.
지그재그차트 지표입니다.
최종꼭지점 저점기준에서 +5%되는선과
최종꼭지점 고점기준에서 -5%되는선이나타나도록 수정부탁합니다.
(즉, 변곡점 기준 +5%.-5%수평선)
Input:전환비율(5);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),TL1(0),Text1(0),ADXV1(0);
Array:고[10,4](0),저[10,4](0);
HH=H;
LL=L;
If Index==0 Then
{
고[1,1]=HH;
고[1,2]=0;
고[1,3]=sDate;
고[1,4]=sTime;
저[1,1]=LL;
저[1,2]=0;
저[1,3]=sDate;
저[1,4]=sTime;
}
If Index>0 Then
{
hiBar=hiBar+1;
loBar=loBar+1;
}
If HH[hiBar]<HH Then hiBar=0;
If LL[loBar]>LL Then loBar=0;
Condition1=저[1,1]*(1+(전환비율/100))<HH and hiBar==0;
Condition2=고[1,1]*(1-(전환비율/100))>LL and loBar==0;
처리구분="";
If Condition1 and Condition2 Then//고점과저점조건동시만족
{
If 최종꼭지점=="저점" Then
{
If 저[1,1]>LL Then 처리구분="저점처리";
Else 처리구분="고점처리";
}
Else If 최종꼭지점=="고점" Then
{
If 고[1,1]<HH Then 처리구분="고점처리";
Else 처리구분="저점처리";
}
}
Else If Condition1 Then 처리구분="고점처리";
Else If Condition2 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]=Index-hiBar;
고[1,3]=sDate[hiBar];
고[1,4]=sTime[hiBar];
hiBar=-1;
loBar=-1;
TL1=TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,RED);
}
Else If 고[1,1]<HH[hiBar] Then//1번고점보다높은고가출현
{
고[1,1]=HH[hiBar];
고[1,2]=Index-hiBar;
고[1,3]=sDate[hiBar];
고[1,4]=sTime[hiBar];
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점="고점";
}
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]=Index-loBar;
저[1,3]=sDate[loBar];
저[1,4]=sTime[loBar];
hiBar=-1;
loBar=-1;
TL1=TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLUE);
}
Else If 저[1,1]>LL[loBar] Then
{
저[1,1]=LL[loBar];
저[1,2]=Index-loBar;
저[1,3]=sDate[loBar];
저[1,4]=sTime[loBar];
hiBar=-1;
loBar=-1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점="저점";
}
2022-11-24
974
글번호 164126
답변완료
분봉최대거래양 문의요~
안녕하세요~
키움영웅문에서 분봉최대거래량의 15%를 거래량그래프에서 가로선으로 표현했는데
요걸 예스차트에서도 구현이 가능할까요?
a=highestSince(1,date(1)!=date,v)
2022-11-24
864
글번호 164120
답변완료
잔량문의
늘 감사합니다.
잔량 var1 = Bids-Asks의 값을 기준으로
1. data2의 식으로 만들어 주세요
2. var1의 값이 +1000일 때 빨강색으로
var1의 값이 -1000일 때 파란색으로 각각
3. data1에 수평선으로 하나의 선으로 당일 당일로 표시할 수 있는 수식
감사합니다.
2022-11-24
1131
글번호 164119
답변완료
79716 수식 재문의(내용무)
79716 수식 재문의 드립니다.
감사합니다.
2022-11-24
998
글번호 164117
답변완료
청산 함수 관련 질문입니다.
IF marketposition == 1 and EntryDate(0) != sdate Then
ExitLong("bx",AtMarket,def,"",1);
위의 식은 분봉에서 진입 다음날 청산하는 식인데
2일후 아침에 청산하는 식은 만들 수 있나요?
+-를 썼을 경우에는 날짜는 맞아 떨어지지 않을 것 같아서 질문드립니다.
2022-11-24
1134
글번호 164115
답변완료
문의드립니다
파라볼릭 매수매도식인데요
조건을 추가하고 싶습니다
매도신호: 파라볼릭 신호 & 현재봉 고가가 이전 봉 고가보다 클때
매수신호: 파라볼릭 신호 & 현재봉 저가가 이전봉 저가보다 작을때
감사합니다
2022-11-24
1014
글번호 164105
답변완료
시스템 수식 부탁드립니다.
진입과 청산시기 시간대를 달리 해서 수식 부탁드립니다.
예) input : StartTime(093000),EndTime(000000);
현재 위와같이 하나의 시간대로 시스템매매를 하다보니 위 시간대에 진입이 되었으나
위 시간대를 벗어났을 때에는 청산 조건이 되어도 적용이 안됩니다.
진입과 청산시간대를 함수조건으로 달리하여 수식 부탁드립니다.
가정) 진입은 input : StartTime(093000),EndTime(000000);
청산은 지정 시간대를 무시하고 조건 만족시 무조건 청산
2022-11-24
832
글번호 164100