커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6330
글번호 230811
아침 님에 의해서 삭제되었습니다.
2023-02-16
156
글번호 166411
아침 님에 의해서 삭제되었습니다.
2023-02-16
174
글번호 166410
답변완료
부탁 드립니다
수고하십니다
아래수식에서 삼각이작아서 보이지가않아서
상단 CrossDown,CrossUp 두개의 삼각은바꿨는데
하단 검정삼각은 바꾸지 못해서 크기조절 부탁드립니다
input : length(50),hh(8),mult(3);
var : k(2),src(0),n(0),tx(0),sume(0),i(0),j(0),y2(0),sum(0),sumw(0),w(0),mae(0);
src = Close;
n = barindex;
//if IsLastBar업데이트[영문으로는 쓰기금지라 한글로 씀] and barindex>length then
//y = 0
sume = 0;
for i = 0 to length-1
{
sum = 0;
sumw = 0;
for j = 0 to length-1
{
w = exp(-(pow(i-j,2)/(hh*hh*2)));
sum = sum+src[j]*w;
sumw = sumw+w;
}
y2 = sum/sumw;
sume = sume+abs(src[i] - y2);
}
mae = sume/length*mult;
if CrossDown(src,y2+mae) then
{
tx = Text_New_Self(sdate,stime,H,"▼");
Text_SetStyle(tx,2,1);
Text_SetColor(tx,Cyan);
Text_setsize(Tx,20);
}
if CrossUp(src,y2-mae) then
{
Text_New_Self(sdate,stime,L,"▲");
Text_SetStyle(tx,2,0);
Text_SetColor(tx,Blue);
Text_setsize(Tx,20);
}
Plot1(y2);
Plot2(y2+mae);
Plot3(y2-mae);
2023-02-16
935
글번호 166409
답변완료
수식부탁합니다
최근 6봉중 종가차이가 4틱 이하인 봉이 3개 이상이면
종가값을 각각 할당하라
감사합니다!
2023-02-16
1013
글번호 166408
답변완료
종목검색에서의 SymbolCode
종목검색 특정 종목은 검색되지 않게 하고 싶어서....
if ( DataCompress == 2 && date != date[1] && date == TargetDate) Then
{
bIsExcludeCode = False;
if ( SymbolCode == "003530" || SymbolName == "한화투자증권" ) Then
bIsExcludeCode = True;
if ( bIsExcludeCode == False ) Then
{
:
:
}
}
이런식으로 작성했는데.... 오류는 없는데 실제로 반영되지 않네요. 혹시 종목검색에서는 SymbolCode가 들어오지 않나요???
2023-02-16
1364
글번호 166407
신대륙발견 님에 의해서 삭제되었습니다.
2023-02-16
22
글번호 166397
답변완료
수식부탁드립니다
안녕하세요. '주봉상의 피봇중심선값을 일봉에 나타내는 수식'을
키움HTS 에서 '요일'함수를 이용해서 만든식입니다. 이 수식을 예스수식으로
부탁드립니다. 늘 항상 감사드립니다.
A=요일(date);
HH=
if(A(1)>A,H,
if(A(2)>A(1),Highest(H, 2),
if(A(3)>A(2),Highest(H, 3),
if(A(4)>A(3),Highest(H, 4),Highest(H, 5)))));
고=valuewhen(1, A(1)>A, HH(1));
LL=
if(A(1)>A,L,
if(A(2)>A(1),Lowest(L, 2),
if(A(3)>A(2),Lowest(L, 3),
if(A(4)>A(3),Lowest(L, 4), Lowest(L, 5)))));
저=valuewhen(1, A(1)>A, LL(1));
종=valuewhen(1, A(1)>A, C(1));
(고+저+종)/3
2023-02-16
902
글번호 166396
답변완료
박스 시작라인
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
956
글번호 166395
답변완료
Data1, Data2 신호 매수
시스템 운용시,
봉 완성시 매수 또는 매도 진입하게 되어있는데
Data2 신호 발생 즉시, Data1에서 바로 매수하는 방법은 없을까요~!?
2023-02-16
930
글번호 166394