커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3391
글번호 230811
답변완료
함수요청
안녕하세요?
아래 전략에 스크립트 작성 요청드립니다.
골드선물 5분봉으로 거래를 하고자 합니다.
매수: 볼린저밴드 상단과 하단이 동시에 2번 연속 상방각이면서 종가가 중심선 위에서 양봉 마감시 익봉시가에 진입
매도: 볼린저밴드 상단과 하단이 동시에 2번 연속 하방각이면서 종가가 중심선 아래에서 음봉 마감시 익봉시가에 진입
매수청산: 매수진입 이후 (볼린저밴드 하단은 직전 봉의 볼린저밴드 하단보다 높은 적이 있고 볼린저밴드 상단은 5번 연속 상승하다 하락으로 전환) 하거나 중심선을 두번 연속 하향 이탈시 익봉 시가에 청산
매도청산: 매도진입 이후 (볼린저밴드 상단은 직전 봉의 볼린저밴드 상단보다 높은 적이 있고 볼린저밴드 하단은 5번 연속 하락하다 상락으로 전환) 하거나 중심선을 두번 연속 상향 돌파시 익봉 시가에 청산
2020-04-28
1043
글번호 138469
답변완료
수평선
항상감사합니다.
분봉에서 오늘만 전일고가를 수평선을 표시하고 싶습니다.
2020-04-28
1182
글번호 138467
답변완료
90틱 에서 지표 부탁 합니다.
90틱에서 5분봉의 20선의 값을 수평선으로 표시하고자 합니다.
20선의 이평선을 실시간 수평선으로 표시가 가능하면
지표 부탁 드립니다.
2020-04-28
1149
글번호 138458
답변완료
수식문의드립니다
a=ma(c,n,단순)-ma(c,n1,단순);
b=ma(a,signal);
R=tema(a,signal);
crossup(b,R)
and
c>c(1)
and
v>v(1)
and
c>o
지표변수
n 5
n1 63
signal 10
=======================
종목검색 할수있게 부탁드립니다...^^
2020-04-28
1121
글번호 138455
답변완료
서식부탁드립니다
알려주신 내용으로 다음과 같이
1번;가격등락,
2번;수량등락으로 작성해 봤는데
잘 안되어 잘못된 부분 수정 부탁드립니다
감사합니다
< 1번 > 가격
Input : P(2) ;
Var : V1(0,data2);
if (L == LowD(0)) Then
if MarketPosition == 1 then
{
if DATA2(C > LowD(0)+1000) Then
BUY("매수");
}
if (H == highD(0)) Then
if MarketPosition == 1 then
{
if DATA2(C < highD(0)-1000) Then
Exitlong("청산");
}
< 2번 > 수량등락
Input : P(2);
Var : V1(0,data2);
if (L == LowD(0)) Then
V1 = data2(Bids-asks);
if MarketPosition == 1 then
{
if Data2(Bids-asks) >= LowD(0)+1000 Then
Buy("매수");
}
if (H == HighD(0)) Then
V1 = data2(Bids-asks);
if MarketPosition == 1 then
{
if (Bids-asks) <= HighD(0)-1000 Then
Exitlong("청산");
}
2020-04-28
1049
글번호 138451
답변완료
함수요청
안녕하세요?
아래글번호 67223번 재질문입니다.
답변주신 스크립트를 항셍선물에 적용하고 싶습니다.
T장인 10시 15분을 시초가로 하여 17시까지를 진입기준으로 신호를 생성하고 싶습니다.
input : P(100);
var1 = ma(C,P);
if crossup(c,var1) and O > C[1] Then
buy();
if CrossDown(c,var1) and O < C[1] Then
sell();
2020-04-28
1042
글번호 138449
답변완료
문의 드립니다!!!
매번 수고해주심에 항상 감사드립니다 ^^
아래수식에서 "세로선"과 "봉갯수를 표시하는 숫자"만 삭제해주시면 감사하겠습니다!!!
---------------------------------------------------------------------------------
input : af(0.02), maxAF(0.2);
input : 텍스트출력(1),선굵기(2);
var : T(0),cnt(0),count(0);
var : HH1(0),LL1(0),HD1(0),HT1(0),LD1(0),LT1(0),day1(0),day0(0),TL3(0);
var : TL1(0),TL2(0),tx1(0),tx2(0),tx11(0),tx22(0),idx(0),tx99(0),tx88(0);
Array : HD[20](0),HT[20](0),HH[20](0),LD[20](0),LT[20](0),LL[20](0);
Array : HI[20](0),LI[20](0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] Then
{
day0 = sdate;
day1 = day0[1];
}
if crossup(c,var1) Then
{
T = 1;
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
HI[0] = index;
for cnt = 1 to 19
{
HD[cnt] = HD[cnt-1][1];
HT[cnt] = HT[cnt-1][1];
HH[cnt] = HH[cnt-1][1];
HI[cnt] = HI[cnt-1][1];
}
if LL[0] > 0 Then
{
if 텍스트출력 == 1 then
{
Tx11 = Text_New(HD[1],HT[1],HH[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(HH[1],2));
Text_SetStyle(tx11,2,1);
Text_SetColor(tx11,BLUE);
Text_Delete(tx1);
Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2));
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,blue);
Condition1 = false;
for cnt = 1 to 19
{
if Condition1 == false and abs(LL[0]-LL[cnt]) <= PriceScale*1 and LD[cnt] >= day1 Then
{
Condition1 = true;
TL1 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]);
TL_SetSize(TL1,선굵기);
TL_SetColor(TL1,WHITE);
idx = abs(LI[0]-LI[cnt]);
tx99 = Text_New(LD[0],LT[0],LL[0],NumToStr(idx,0));
Text_SetColor(tx99,BLUE);
Text_SetStyle(tx99,0,3);
Text_SetBold(tx99,2);
}
}
TL_New(sdate,stime,99999999,sdate,stime,0);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
LI[0] = index;
for cnt = 1 to 19
{
LD[cnt] = LD[cnt-1][1];
LT[cnt] = LT[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
LI[cnt] = LI[cnt-1][1];
}
if HH[0] > 0 Then
{
if 텍스트출력 == 1 then
{
Tx22 = Text_New(LD[1],LT[1],LL[1],NumToStr((HH[1]-LL[1])/PriceScale,0)+NewLine+NumToStr(LL[1],2));
Text_SetStyle(tx22,2,0);
Text_SetColor(tx22,RED);
Text_Delete(tx2);
Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2));
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,MAGENTA);
Condition2 = false;
for cnt = 1 to 19
{
if Condition2 == false and abs(HH[0]-HH[cnt]) <= PriceScale*1 and HD[cnt] >= day1 Then
{
Condition2 = true;
TL2 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]);
TL_SetSize(TL2,선굵기);
TL_SetColor(TL2,WHITE);
idx = abs(HI[0]-HI[cnt]);
tx99 = Text_New(HD[0],HT[0],HH[0],NumToStr(idx,0));
Text_SetColor(tx99,BLUE);
Text_SetStyle(tx99,0,3);
Text_SetBold(tx99,2);
}
}
}
}
}
if T == 1 then
{
if H > HH[0] Then
{
HH[0] = H;
HD[0] = sdate;
HT[0] = stime;
if 텍스트출력 == 1 then
{
Text_Delete(tx1);
Tx1 = Text_New(HD[0],HT[0],HH[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(HH[0],2));
Text_SetStyle(tx1,2,1);
Text_SetColor(tx1,black);
TL_Delete(TL3);
Text_Delete(tx88);
Condition3 = false;
for cnt = 1 to 19
{
if Condition3 == false and abs(HH[0]-HH[cnt]) <= PriceScale*1 and HD[cnt] >= day1 Then
{
Condition3 = true;
TL3 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]);
TL_SetSize(TL3,선굵기);
TL_SetColor(TL3,WHITE);
idx = abs(HI[0]-HI[cnt]);
tx88 = Text_New(HD[0],HT[0],HH[0],NumToStr(idx,0));
Text_SetColor(tx88,BLUE);
Text_SetStyle(tx88,0,3);
Text_SetBold(tx88,2);
PlaySound("C:₩예스트레이더₩data₩Sound₩kuk.wav");
}
}
}
}
}
if T == -1 then
{
if L < LL[0] Then
{
LL[0] = L;
LD[0] = sdate;
LT[0] = stime;
if 텍스트출력 == 1 then
{
Text_Delete(tx2);
Tx2 = Text_New(LD[0],LT[0],LL[0],NumToStr((HH[0]-LL[0])/PriceScale,0)+NewLine+NumToStr(LL[0],2));
Text_SetStyle(tx2,2,0);
Text_SetColor(tx2,red);
TL_Delete(TL3);
Condition3 = false;
for cnt = 1 to 19
{
if Condition3 == false and abs(LL[0]-LL[cnt]) <= PriceScale*1 and LD[cnt] >= day1 Then
{
Condition3 = true;
TL3 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]);
TL_SetSize(TL3,선굵기);
TL_SetColor(TL3,WHITE);
idx = abs(LI[0]-LI[cnt]);
tx88 = Text_New(LD[0],LT[0],LL[0],NumToStr(idx,0));
Text_SetColor(tx88,BLUE);
Text_SetStyle(tx88,0,3);
Text_SetBold(tx88,2);
PlaySound("C:₩예스트레이더₩data₩Sound₩kuk.wav");
}
}
}
}
}
2020-04-28
1210
글번호 138445
답변완료
두 변수의 합을 담는 함수가 출력이 안되요...
Input : minimumChange(50), mini(0.1);
var : count(0), Wchange(0), change(0), after(0), mc(0), after1(0) ;
mc = minimumChange;
count = 1 ;
while Abs(C-C[count]) < Wchange
{
count = count+1;
}
change = C - C[count] ;
after1 = after + change ;
after = after ; // value4는 거래 후 보유량
plot1(after1);
plot2(change*100);
plot3(after);
1번함수와, 2번함수는 출력이 되는데 3번함수는 출력이 안되네요.. 온갖 노력을 했지만 잘 안되서 문의드립니다.
2020-04-28
1147
글번호 138444
답변완료
번호67240 재질문입니다.
input :N1(1),카운팅시작일자(20200428), 카운팅시작시간(070000);
input : n(13),x(8);
var : Tcond(false),T(0),상승량(0), 하락량(0), 이평선(0), 상승(0), 하락(0),cnt(0);
Array : V1[10](0),V2[10](0);
var : idx(0),hh(0),ll(0),dd(0),tt(0);
var : tl1(0),tl2(0),tl3(0),tl4(0);
if sdate >= 카운팅시작일자 and stime >= 카운팅시작시간 Then
Tcond = true;
if Tcond == true Then
{
if (sdate != sdate[1] and stime >= 카운팅시작시간) or
(sdate == sdate[1] and stime >= 카운팅시작시간 and stime[1] < 카운팅시작시간) Then
{
var1 = 0;
var2 = 0;
상승량 = 0;
하락량 = 0;
}
Condition1 = var1+V >var2+V[1] ;
for cnt = 0 to N1-1{
IF O[cnt] < C[cnt] Then {
IF H[cnt]-C[cnt] >=0.15 AND
H[cnt]-C[cnt] > Abs(O[cnt]-C[cnt]) AND
H[cnt]-C[cnt] >= O[cnt]-L[cnt]
Then
하락량 = V[cnt];
ELse
상승량 = V[cnt];
}
ELse IF O[cnt] > C[cnt] Then {
IF C[cnt]-L[cnt] >=0.15 AND
C[cnt]-L[cnt] > Abs(O[cnt]-C[cnt]) AND
C[cnt]-L[cnt] >= H[cnt]-O[cnt]
Then
상승량 = V[cnt];
ELse
하락량 = V[cnt];
}
ELse {
IF H[cnt]-C[cnt] < C[cnt]-L[cnt] Then
상승량 = V[cnt];
ELse IF H[cnt]-C[cnt] > C[cnt]-L[cnt] Then
하락량 = V[cnt];
ELse{
하락량 = V[cnt];
상승량 = V[cnt];
}
}
if dayindex >= 0 Then{
if C > O or (C == O and C >= C[1]) Then
상승량 =상승량+v;
Else
하락량 = 하락량+v;
value13=상승량-하락량;
if value13 > value13[1] Then
T = 1;
if value13 < value13[1] Then
T = -1;
var21 = highest(H,n);
var22 = lowest(L,n);
Condition21 = C <= var21[1] and C >= var22[1];
if Condition21 == true and Condition21[1] == false Then
{
idx = 0;
hh = c;
ll = c;
dd = sdate;
tt = stime;
}
if Condition21 == true Then
{
idx = idx+1;
if c > hh Then
hh = c;
if c < ll Then
ll = c;
if idx == x Then
{
tl1 = TL_New(dd,tt,hh,dd,tt,ll);
tl2 = TL_New(dd,tt,hh,sdate,stime,hh);
tl3 = TL_New(dd,tt,ll,sdate,stime,ll);
tl4 = TL_New(sdate,stime,hh,sdate,stime,ll);
}
if idx > x Then
{
TL_SetBegin(tl1,dd,tt,hh);
TL_SetEnd(tl1,dd,tt,ll);
TL_SetBegin(tl2,dd,tt,hh);
TL_SetEnd(tl2,sdate,stime,hh);
TL_SetBegin(tl3,dd,tt,ll);
TL_SetEnd(tl3,sdate,stime,ll);
TL_SetBegin(tl4,sdate,stime,hh);
TL_SetEnd(tl4,sdate,stime,ll);
value21 = HH;
value22 = LL;
}
}
If hh <= C Then
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
Else
{
TL_SetColor(TL1,WHITE);
TL_SetColor(TL2,WHITE);
TL_SetColor(TL3,WHITE);
TL_SetColor(TL4,WHITE);
}
TL_SetSize(TL1,0); //좌측세로선 굵기
TL_SetSize(TL2,1); //상단가로선 굵기
TL_SetSize(TL3,1); //하측가로선 굵기
TL_SetSize(TL4,0); //우측세로선 굵기
TL_SetStyle(TL1,3); //좌측세로선 점선
TL_SetStyle(TL4,3); //우측세로선 점선
if Condition1[1]==true and T == 1 and Condition1[1]==True and crossup(value13,0) or crossup(C,value21) Then
buy();
if Condition1[1]==true and T == -1 and Condition1[1]==True and crossdown(value13,0) or CrossDown(C,value22) Then
sell();
}}}
1.상기그림에서 번호①②③은 수식조건에 충족함
2.번호④에서 수식조건에 매수 신호가 표현되어야함
수식및 시스템조건을 한번더 검토해주시면 대단히 감사하겠습니다
수고하세요
2020-04-28
1280
글번호 138441