커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1555
글번호 230811
답변완료
박스 시작라인
input : Period(120),틱1(4),틱2(5);
Var:j(0),T(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),tl9(0),
date21(0),date22(0),time21(0),time22(0),txx(0), vTL(0), vTL9(0),txxx(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0),tx4(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0);
var : upt(0),dnt(0),box(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];
Condition3 = False;
if Condition3 == False and Value12 <= value11-0.5 and value12 < DayHigh-0.8 Then
{
Tx4=Text_New(date11,time11,value11+PriceScale*2,"●");
Condition3 = true;
Text_SetStyle(tx4,2,2);
Text_SetColor(tx4,Black);
Text_SetSize(tx4,35);
}
Txx = Text_New(date11,time11,loval[0]-PriceScale*8,"●");
Condition99 = true;
Text_SetColor(Txx,Red);
Text_SetStyle(Txx,2,2);
Text_SetSize(txx,30);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
PlaySound("C:₩예스트레이더₩data₩Sound₩reject.wav");
}
Text_Delete(dnt);
var1 = loval[0]-loval[1];
dnt = Text_New(date12,time12,value12,NewLine+NumToStr(abs(var1/PriceScale),0)+" ");
Text_SetColor(dnt,iff(var1>0,Red,Blue));
Text_SetStyle(dnt,1,1);
Text_SetSize(dnt,35);
Text_SetBold(dnt,1);
Box_Delete(box);
Condition88 = False;
if Condition88 ==False Then
{
if value12 <= value11-0.9 Then
{
Condition88 = true;
box = Box_New(date11,time11,value11,date12,time12,value12);
Box_SetColor(box,Lime);
Box_SetFill(box,true,30);
Box_SetExtFill(box,true);
}
}
}
Else
{
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];
var1 = loval[0]-loval[1];
Text_SetLocation(dnt,date12,time12,value12);
Text_SetString(dnt,NewLine+NumToStr(abs(var1/PriceScale),0)+" ");
Text_SetColor(dnt,iff(var1>0,Red,Blue));
Text_SetStyle(dnt,1,1);
Text_SetSize(dnt,35);
Text_SetBold(dnt,1);
if Condition88 ==False Then
{
if value12 <= value11-0.9 Then
{
Condition88 = true;
box = Box_New(date11,time11,value11,date12,time12,value12);
Box_SetColor(box,Lime);
Box_SetFill(box,true,30);
Box_SetExtFill(box,true);
}
}
Else
Box_SetEnd(box,date12,time12,Value12);
}
if Condition3 == False and Value12 <= value11-0.5 and value12 < DayHigh-0.8 Then
{
Tx4 =Text_New(date11,time11,value11+PriceScale*2,"●");
Condition3 = true;
Text_SetColor(Tx4,Black);
Text_SetStyle(tx4,2,2);
Text_SetSize(tx4,35);
}
TL_Delete(tl);
if Condition99 == true and Loval[0] <= loval[1]-PriceScale*틱2 Then
{
Condition99 = False;
Text_Delete(txx);
PlaySound("C:₩예스트레이더₩data₩Sound₩reject.wav");
}
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
if Condition3 == true Then
Text_Delete(tx4);
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];
if Condition99 == true and Loval[0] >= Loval[1]-PriceScale*틱1 Then
{
Condition99 = False;
Text_Delete(txx);
}
Text_Delete(upt);
var1 = hival[0]-hival[1];
upt = Text_New(date12,time12,value12,NumToStr(abs(var1/PriceScale),0)+" "+NewLine);
Text_SetColor(upt,iff(var1>0,Red,Blue));
Text_SetStyle(upt,2,0);
Text_SetSize(upt,35);
Text_SetBold(upt,1);
Box_Delete(box);
Condition88 = False;
if Condition88 ==False Then
{
if value12 >= value11+0.9 Then
{
Condition88 = true;
box = Box_New(date11,time11,value11,date12,time12,value12);
Box_SetColor(box,Magenta);
Box_SetFill(box,true,30);
Box_SetExtFill(box,true);
}
}
}
Else
{
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];
var1 = hival[0]-hival[1];
Text_SetLocation(upt,date12,time12,value12);
Text_SetString(upt,NumToStr(abs(var1/PriceScale),0)+" "+NewLine);
Text_SetColor(upt,iff(var1>0,Red,Blue));
Text_SetStyle(upt,2,0);
Text_SetSize(upt,35);
Text_SetBold(upt,1);
if Condition88 == False Then
{
if value12 >= value11+0.9 Then
{
Condition88 = true;
box = Box_New(date11,time11,value11,date12,time12,value12);
Box_SetColor(box,Magenta);
Box_SetFill(box,true,30);
Box_SetExtFill(box,true);
}
}
Else
Box_SetEnd(box,date12,time12,Value12);
}
}
}
박스가 시작되는 왼쪽 라인을 추세선 시작지점부터가 아니고, 이후에 0.9p 도달된 지점부터 박스 표시.
0.9p 변동시에 박스 표시가 아님 (추세선 전체 박스가 아님). 표시 시점이 아닌 표시 지점이 중요.
0.9p 변화 이전 부분은 무표시이고 0.9p 변화 이후 부분만 박스 표시 부탁드립니다. 자꾸 죄송합니다
2023-02-16
893
글번호 166395
답변완료
Data1, Data2 신호 매수
시스템 운용시,
봉 완성시 매수 또는 매도 진입하게 되어있는데
Data2 신호 발생 즉시, Data1에서 바로 매수하는 방법은 없을까요~!?
2023-02-16
875
글번호 166394
신대륙발견 님에 의해서 삭제되었습니다.
2023-02-16
19
글번호 166393
답변완료
문의드립니다
input : Period(9);
var1 = PVI+NVI;
Var2 = ma(PVI,Period)+ma(NVI,Period);
Var3 = min(var1,Var2);
Plot1(var1);
Plot2(var2);
Plot3(var3);
수고고하십니다
일전에 알려주신 지표인데 시스템식을 부탁드립니다
Plot1이 Plot2 보다 골드면 매수진입 매도청산
Plot1이 Plot2 보다 데드면 매도진입 매수청산
이런 시스템을 부탁 드립니다
항상 감사합니다
2023-02-16
918
글번호 166392
답변완료
문의 드립니다.
20 이평선 120 이평선 정배열이면서 120이평선 기울기가 상향 이어야 하고
주가가 20 이평선 아래서 위로 돌파 시 매수 진입
청산은 주가가 20이평선 아래로 돌파 시 매도 청산 완료
20 이평선 120 이평선 역배열이면서 120이평선 기울기가 하향 이어야 하고
주가가 20 이평선 위에서 아래로 돌파 시 매도 진입
청산은 주가가 20이평선 아래로 돌파 시 매수 청산 완료
부탁드립니다.
2023-02-16
1128
글번호 166391
답변완료
문의드립니다.
안녕하세요.
매수:
음봉 뒤에 ( 첫양봉 종가 < 2번째 양봉 종가)를 만족하는 양봉 2개가 연속 발생하면
제 1 대양봉 이라고 정의 합니다.
이 때 대양봉 시가 = 첫양봉 시가
대양봉 종가 = 두번쩨 양봉 종가
대양봉 몸통 길이 = 대양봉 종가 - 대양봉 시가
대양봉 중간 값 A = 대양봉 시가 + (대양봉 몸통 길이)/2 라고 합니다.
제1 대양봉이 만들어진 이후에 음봉이 발생하고 응봉의 시가가 대음봉 중간값 A를
하방으로 깨면 제 1 대양봉은 성립이 취소 됩니다.
제1 대양봉이 성립되고 다시 음봉 뒤에 양봉이 2개 연속인 제 1 대양봉 같은 제2 대양봉이 생기면 매수합니다.
청산:
매수 후에 가장 최근에 발생한 양봉의 종가를 2개 구합니다. 최근 양봉A 종가> 2번째 최근 양봉B 종가 를 만족하는
최근 양봉 2개의 중간값C = 2번째 최근 양봉B 시가 + ( 최근 양봉A 종가- 2번째 최근 양봉B 시가)/2
매수후에 종가가 아닌 현재가가 최근 양봉 2개의 중간값C 를 하방으로 깨면 청산합니다.
매도:반대 논리로 부탁드립니다.
2023-02-16
953
글번호 166390
답변완료
타 PC간 데이터 문제.
안녕하세요 현재 2개의 PC로 전략을 검증하고 있는데.
괴리감이 너무 커서 이렇게 질문을 드립니다.
현재 마이크로나스닥 틱을 통해 거래하고자 하여,
차트 셋팅시,
시장시간 기준 으로 체크하고, 캔들로드갯수 (분봉도 마찬가지) 동일,
틱데이터의 주기 또한 동일하게 A컴퓨터,B컴퓨터 셋팅하여
동일전략 (봉완성시 기준)으로 처리 하였으나,
수익률에 대한 차이가 엄청납니다... A,B 각각 PC의 데이터를 동일화 시킬 방법이 뭐가 있을까요??
2023-02-16
849
글번호 166389
답변완료
함수요청
안녕하세요?
매수 진입가보다 낮으면 매수청산
매도 진입가보다 높으면 매도청산
을 청산조건에 포함하고 싶습니다.
2023-02-16
1269
글번호 166385
답변완료
문의드립니다.
안녕하세요
나스닥 60분봉을 테스트 중인데 최대 기간이 2016년으로 지정되어있습니다
예스스탁이 만들어 진지가 2000년 초반인데 혹시 나스닥 60분봉을 16년 보다 더 앞쪽부터
받을 수 있을까요?? 혹은 구매가 가능한가요??
추가 기간을 더 테스트 하고싶은데 없어서요..
2023-02-16
1519
글번호 166381