커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5562
글번호 230811
답변완료
지표 수정
78096번 단순이평에서지수이평으로변경요청합니다
늘 감사합니다
2023-03-05
976
글번호 166926
답변완료
봉갯수만큼 박스처리
안녕하세요~
봉갯수 만큼 박스를 그려주세요. 해외선물 당일 첫봉부터 카운트해서 n(20)개 봉이 완료되면 n(20)개 봉의 고점 저점을 감싸는 박스를 최종적으로 완료해주세요.
*그이전에는 n(2)개 부터 n(19)개 까지 그렸다가 사라지도록 해주시고 n(20)개 박스만 최
종 굵게 표시해 남겨주세요.
*과거 box 마지막봉 종가기준으로 변화한 틱값을 박스 상단, 하단에 txt 표기.
감사합니다.
2023-03-05
955
글번호 166925
답변완료
문의 드립니다.
20 이평 120 이평 정배열이고 주가가 20 이평 위든 아래든 음봉에서 양봉 발생 시 매수
청산은 음봉 발생 시 매도 청산 완료
20 이평 120 이평 역배열이고 주가가 20 이평 위든 아래든 양봉에서 음봉 발생 시 매도
청산은 양봉 발생 시 매수 청산 완료
부탁드립니다.
2023-03-05
830
글번호 166924
답변완료
해결 방법이 무엇일까요?
수정 부탁드립니다
감사힙니다
순매수 체결량
//Upvol "상승형 체결거래량";
//DownVol "하락형 체결거래량"
input: 막대굵기 (1);
var : sumPL(0);
if sDate = sDate[1] Then
{
sumPL = 0;
}
Else
{
sumPL = sumPL + (Upvol-DownVol);
If sumPL > 0 Then
Plot1(sumPL, "순매수체결량",RgB(255,0,0),Def,막대굵기);
Else
Plot1(sumPL, "순매수체결량",RgB(0,0,255),Def,막대굵기 );
}
PlotBaseLine1(0, "기준선0");
11번째줄 5열 값을 대입할 수 있는 변수나 배열의 요소, 입력변수, ....라고 뜹니다
수정 부탁드립니다
2023-03-04
778
글번호 166923
답변완료
해결 방법이 무엇일까요?
도움을 주셔서 많은 도움이 되고 있습니다
감사합니다
RSI밴드 수식
Input:Length(14),UpLevel(70),DnLevel(30);
Var:Upband(0),DnBand(0),MidLine(0);
RSI_BAND(Length,UpLevel,DnLevel,0,UpBand,DnBand,MidLine); // 현재 봉에서의 밴드 값
Plot1(UpBand);
Plot2(MidLine);
Plot3(DnBand);
오류창에
7번째줄 1열에 선언되지 않은 이름 'RSI_BAND'가 사용되었습니다-라고 뜹니다
수정을 부탁드립니다
행복한 하루 되세요
2023-03-04
1037
글번호 166922
답변완료
고가,저가
분봉에서 당일고가,당일저가 가 생긴 캔들의 고가을 이은선, 저가를 이은선 부탁합니다
당일고가 DayHigh() > DayHigh()[1]
당일저가 DayLow() < DayLow()[1]
2023-03-04
1368
글번호 166921
답변완료
등가 수식 추가
늘 감사합니다.
수식은 유익하게 잘 쓰고 있습니다.
아래의 수식에 다음 사항을 추가해 주세요.
--------------
Plot6(Var4,"첫날시가");와 같은 방식으로
첫날 시가의 ATM 등가를 추가해 주세요
---------------
var : month(0),nday(0),week(0);
var :EX(false),HH(0),LL(0),DD(0),HH1(0),LL1(0);
var : t1(0),t2(0),t3(0),t4(0),t5(0),t6(0),t7(0),t8(0),t9(0),t10(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
#선물만기
#if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
if nday >= 8 and nday <= 14 and week == 4 then#옵션만기
EX = true;
Else
EX = false;
if EX == false and EX[1] == true Then{
Condition1 = true;
DD = sDate;
HH = H;
LL = L;
HH1 = HH[1];
LL1 = LL[1];
}
if Condition1 == true then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = HH;
var2 = LL;
var3 = var1-var2;
plot1(var1,"Maxi");
plot2(var2+var3*0.618,"되돌림");
plot3(var2+var3*0.500,"중심");
plot4(var2+var3*0.382,"축소");
plot5(var2,"Mini");
if sDate == DD Then
{
Var4 = DayOpen;
Var5 = DayHigh;
Var6 = DayLow;
}
Plot6(Var4,"첫날시가");
Plot7(Var5,"첫날고가");
Plot8(Var6,"첫날저가");
if HH1 > 0 and LL1 > 0 Then
{
Plot9(HH1,"전월물최고");
Plot10(LL1,"전월물최저");
Plot11((HH1+LL1)/2,"전월물중간");
}
}
2023-03-04
961
글번호 166920
사이버 님에 의해서 삭제되었습니다.
2023-03-04
6
글번호 166919
답변완료
박스 변색
input : Period(120),폭1(0.9),폭2(1.3),폭3(1.7),폭4(0.9);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0);
var : TL(0),TL1(0),tl2(0),tl3(0),TX(0),tl4(0),tl5(0),tl9(0),dl(0);
var : box(0),box1(0),txx(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
Plot1(value12);
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
}
LoVal[0] = L;
LoBar[0] = 0;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
box = box_new(date11,time11,Value11,date12,time12,Value12);
Condition1 = False;
if Condition1 == False and Value12 <= value11-폭1 Then
{
Condition1 = true;
}
Condition3 = False;
if Condition3 == False and Value12 <= value11-폭2 Then
{
Condition3 = true;
}
Condition4 = False;
if Condition4 == False and Value12 <= value11-폭3 Then
{
Condition4 = true;
}
Text_SetSize(tx,25);
Text_SetColor(Tx,Red);
Text_SetStyle(tx,1,1);
Text_SetBold(tx,1);
if abs(value12[1]-value11[1]) < 0.5 Then
Text_Delete(tx);
tx = text_new(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Black);
Text_SetStyle(tx,1,0);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
date22 = date[0];
time22 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
if Condition1 == False and Value12 <= value11-폭1 Then
{
Condition1 = true;
TL9 = TL_New(sDate,sTime,value12,sDate,sTime,99999);
TL_SetColor(TL9,Magenta);
TL_SetSize(TL9,1);
}
if Condition3 == False and Value12 <= value11-폭2 Then
{
Condition3 = true;
TL9 = TL_New(sDate,sTime,value12,sDate,sTime,99999);
TL_SetColor(TL9,Magenta);
TL_SetSize(TL9,1);
}
if Condition4 == False and Value12 <= value11-폭3 Then
{
Condition4 = true;
TL9 = TL_New(sDate,sTime,value12,sDate,sTime,99999);
TL_SetColor(TL9,Red);
TL_SetSize(TL9,1);
}
Text_SetString(tx,NumToStr(value12-value11,2)+" ");
Text_SetLocation(tx,sDate,sTime,value12);
}
if value12 <= value11-0.9 Then
{
Box_SetColor(box,Lime);
Box_SetFill(box,true,55);
}
Else
{
Box_SetColor(box,LCyan);
Box_SetFill(box,true,25);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
}
HiVal[0] = H;
HiBar[0] = 0;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
box = box_new(date11,time11,Value11,date12,time12,Value12);
Condition2 = False;
if Condition2 == False and Value12 >= value11+폭4 Then
{
Condition2 = true;
}
Text_SetSize(tx,25);
Text_SetColor(Tx,Blue);
Text_SetStyle(tx,1,0);
Text_SetBold(tx,1);
if abs(value12[1]-value11[1]) < 0.5 Then
Text_Delete(tx);
tx = text_new(sDate,stime,value12,NumToStr(value12-value11,2));
Text_SetColor(Tx,Black);
Text_SetStyle(tx,1,1);
Text_SetSize(tx,30);
Text_SetBold(tx,1);
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
date32 = date[0];
time32 = stime[0];
Box_SetEnd(box,date12,time12,Value12);
if Condition2 == False and Value12 >= value11+폭4 Then
{
Condition2 = true;
TL9 = TL_New(sDate,sTime,0,sDate,sTime,99999);
TL_SetColor(TL9,Cyan);
TL_SetSize(TL9,1);
}
Text_SetString(tx,NumToStr(value12-value11,2)+" ");
Text_SetLocation(tx,sDate,sTime,value12);
}
if Value12 >= value11+0.9 Then
{
Box_SetColor(box,Magenta);
Box_SetFill(box,true,30);
}
Else
{
Box_SetColor(box,Orange);
Box_SetFill(box,true,30);
}
}
박스 크기가 0.9p에 도달하면 색상을 바꾸는 부분에서,
바뀐 후에 상승 박스는 변화 없고, 0.9p ~ 1.3p 하락 박스도 1차로 바뀐 색 그대로 유지.
하락 박스만, 크기가 1.3p에 도달하면 그 박스만 2차로 다른 색으로 바꿔주고, 1.7p에 도달하면 해당 박스만 다시 한번 더 (3차) 다른 색으로 변경.
(크기에 따라, 상승 박스는 두가지 색, 하락 박스는 네가지 색.) 감사합니다.
2023-03-05
1123
글번호 166918