커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1592
글번호 230811
답변완료
종목검색식 부탁드립니다.
아래 수식을 예스트레이딩 종목검색식으로 변환 부탁드립니다.
A=NVI(c)>=eavg(NVI(c), Period);
B=NVI(c)<eavg(NVI(c), Period);
D=PVI(C)+NVI(C);
E=Avg(PVI(C), Period)+Avg(NVI(C), Period);
Gs=A && D>=E;
Gw=B && D<E;
((Gw(1) or !Gw(1)) && !Gs(1)) && Gs
(지표조건) Period: 25
2025-02-26
503
글번호 188576
답변완료
시스템 변경 부탁드립니다
input : 주간장시작(90000),주간장종료(153400);
var : Tcond(false);
if (sdate != sdate[1] and stime >= 주간장시작) or
(sdate == sdate[1] and stime >= 주간장시작 and stime[1] < 주간장시작) Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= 주간장종료) or
(sdate == sdate[1] and stime >= 주간장종료 and stime[1] < 주간장종료) Then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong();
if MarketPosition == -1 Then
ExitShort();
}
if Tcond == true then
Var4 = data3(c)-data4(c);
Var2 = data2(c);
input :
수1(0),
수변1(0),
ST1(90000), ET1(153400),
수손1(-1790),수변손1(-3770)
;
if count == 0 and MarketPosition == 0 Then
{
if stime>=ST1 and sTime<ET1 Then
{
if 수1<Var4 and 수변1<Var2
Then
buy("매수");
}
}
{
IF MarketPosition == 1 and LatestEntryName(0)=="매수" then
{
if 수손1>var4 or 수변손1>Var2 Then ExitLong("손");
}
}
위의 식을
vwr2와 var4의 데이타를 9시이후 첫 데이타를 기준으로 var2>10000 and var4>10000일때 매수하고 var2<-10000 or var<-10000 일때 청산으로 변경하고 싶습니다
수식 변경 부탁드립니다
2025-02-26
536
글번호 188571
답변완료
재문의
1.input : N(5);
var : cnt(0),sum(0),mav(0);
#N일 일봉이평 계산
sum = 0;
For cnt = 0 to N-1
{
sum = sum + HPc일2(cnt);
}
mav = sum/N;
plot5(mav,"고가",RED);
이래 적용하니 분봉이 고가 저가 표시 안돼고 일자만 표시되는데 수정 할수 없나요?
사용자 함수
input : n(Numeric);
HPc일2 = Data1(DayClose(0))+Data2(DayClose(0))+Data3(DayClose(0))+data4(DayClose(0))+Data5(DayClose(0))+data6(DayClose(0))+Data7(DayClose(0))+data8(DayClose(0))+data9(DayClose(0))+Data10(DayClose(0));
2.그럼 수고하세요
2025-02-26
468
글번호 188570
답변완료
문의
macd 오실레이터에서
0선위로 올라가는 그점, 그러니깐 macd가 시그널을 돌파할때
그 지점에만 색을 검정으로 나타내고 싶어요
또한
macd가 0선을 돌파하는 그 지점에만 색을 분홍으로 나타내고 싶어요
2025-02-26
472
글번호 188567
답변완료
수식변환요청
항상 노고에 감사드립니다
다음지표의 변환을 부탁드립니다
감사합니다
################################
ThisV()
Sv=sum(V);
V1=Valuewhen(1,date!=date(1),Sv(1));
Sv-V1
nPreV()
Sv=sum(V);
V1=ValueWhen(n,date!=date(1),Sv(1));
V2=ValueWhen(n+1,date!=date(1),Sv(1));
V1-V2
Tot=ThisV()/nPreV(1)*100;
if(Tot>변수,Tot,0)
2025-02-26
471
글번호 188566
답변완료
문의드립니다.
한투 eforce를 사용중이고 여러 컴퓨터에서 사용중인데요.
다른 컴퓨터들에서는 잘 작동하는데, 이상하게도 특정 노트북에서는 프로그램을 실행하면 컴퓨터를 재시작해야만 하고 전혀 프로그램을 실행할 수 없습니다.
노트북 2대에서만 컴퓨터 재시작으로 넘어가는데 어떻게 해야 할까요?
2025-02-25
492
글번호 188565
답변완료
종목 검색식 요청드려요~
키움수식 입니다 종목 검색으로 부탁드립니다!!
A1 = floor(date / 100);
A2 = A1 % 100;
A3 = valuewhen(1, A2 != A2(1), O);
B1 = valuewhen(1, A2 != A2(1), A3(1));
B2 = valuewhen(1, A2 != A2(1), C(1));
B3 = valuewhen(1, A2 != A2(1), O);
resistance = ((B1+B2)/2+B3)/2;
CROSSUP(C,resistance)
혹시 신호 수식도 가능한지요~~~~
2025-02-25
489
글번호 188564
답변완료
부탁드립니다.
1. 종가가 양봉이면서 몸통및 아래 꼬리가 윗꼬리보다 길면 파란색으로, 종가가 음봉이면서 몸통및 윗꼬리가 아래꼬리보다 길면 빨강색으로 구현해 주세요
2. 종가가 양봉이면서 가장 최근 5개이내 봉 중에 가장 긴 음봉의 종가보다 높으면 파란색으로, 종가가 음봉이면서 가장 최근 5개이내 봉 중에 가장 긴 양봉의 종가보다 낮으면 빨강색으로 구현해 주세요
3. 종가가 양봉이면서 가장 최근 5개이내 봉 중에 가장 긴 양봉의 고가보다 높으면 파란색으로, 종가가 음봉이면서 가장 최근 직전 5개이내 봉 중에 가장 긴 음봉의 저가보다 낮으면 빨강색으로 구현해 주세요
4. 종가가 양봉이면서 가장 최근 5개이내 봉 중에 가장 긴 음봉의 3분의 2 이상이면 파란색으로, 종가가 음봉이면서 가장 최근 5개이내 봉 중에 가장 긴 양봉의 3분의 2 이하이면 빨강색으로 구현해 주세요
고맙습니다.
2025-02-25
470
글번호 188563
답변완료
문의
이식을 RSi식으로 변환 부탁드립니다
Input : short(12), long(26), signal(9),굵기(3);
Var : MACDV(0) , MACDS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0),HI(0),HI1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0),LI(0),LI1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0),TX1(0),TX2(0);
var : TL3(0),TL4(0),TL5(0),i1(0),i2(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if crossup(MACDV,MACDS) Then
{
T = 1;
HIV = MACDV;
HID = sdate;
HIT = stime;
HI = Index;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = H;
HPD = sdate;
HPT = stime;
HI1 = HI[1];
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(MACDV,MACDS) Then
{
T = -1;
LIV = MACDV;
LID = sdate;
LIT = stime;
LI = Index;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LI1 = LI[1];
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if MACDV > HIV Then
{
HIV = MACDV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 and HI <= HI1+30 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,cyan);
TL_SetColor(TL2,cyan);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
tx1 = Text_New(HPD1,HPT1,HPV1,NumToStr(HPV1,2));
tx2 = Text_New(HPD,HPT,HPV,NumToStr(HPV,2));
Text_SetStyle(tx1,2,1);
Text_SetStyle(tx2,2,1);
TL3 = TL_New(HPD1,HPT1,HPV1,sdate,stime,HPV1);
TL4 = TL_New(HPD1,HPT1,HPV,HPD,HPT,HPV);
TL5 = TL_New(HPD1,HPT1,(HPV1+HPV)/2,HPD,HPT,(HPV1+HPV)/2);
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
Text_SetLocation(tx2,HPD,HPT,HPV);
Text_SetString(tx2,NumToStr(HPV,2));
i1 = index;
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
Text_Delete(tx1);
Text_Delete(tx2);
}
}
}
if T == -1 Then
{
if MACDV < LIV Then
{
LIV = MACDV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 and LI <= LI1+30 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
tx1 = Text_New(LPD1,LPT1,LPV1,NumToStr(LPV1,2));
tx2 = Text_New(LPD,LPT,LPV,NumToStr(LPV,2));
Text_SetStyle(tx1,2,1);
Text_SetStyle(tx2,2,1);
TL3 = TL_New(LPD1,LPT1,LPV1,sdate,stime,LPV1);
TL4 = TL_New(LPD1,LPT1,LPV,LPD,LPT,LPV);
TL5 = TL_New(LPD1,LPT1,(LPV1+LPV)/2,LPD,LPT,(LPV1+LPV)/2);
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
Text_SetLocation(tx2,LPD,LPT,LPV);
Text_SetString(tx2,NumToStr(LPV,2));
i2 = index;
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
TL_Delete(TL5);
Text_Delete(tx1);
Text_Delete(tx2);
}
}
}
plot1(MACDV);
plot2(MACDS);
if index > i1 and index <= i1+3 Then
{
TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime));
TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime));
TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime));
}
if index > i2 and index <= i2+3 Then
{
TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime));
TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime));
TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime));
}
Plot3(0,"0");
2025-02-25
520
글번호 188561