커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3738
글번호 230811
답변완료
함수요청
안녕하세요?
아래글번호 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
1044
글번호 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
1211
글번호 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
1149
글번호 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
1281
글번호 138441
답변완료
문의드립니다
안녕하세요?
1.아래지표의 선의두께를 굵게조정하려고 지표속성창에서 차트표시>선그래프>굵기를 두껍게하여도 챠트상에는 변함이없이 선그래프가 두꺼워지지 않는데 두께조절기능이 없다면 첨가하기를 원합니다
2.동일캔들에서 3가지이평이 동시에 기울기가 변하고있다면 변하는동안 완성봉까지 알림음을 듣고싶습니다
3.동일캔들에서 3가지이평이 동시에 기울기가 변했다면 그다음봉 시초가에 매수,매도
진입하게해주세요
도움주셔서 감사드립니다
Input: p1(5),p3(10),p5(15);
var1=ma(c,p1);
var2=ma(c,p3);
var3=ma(c,p5);
if var1>var1[1] then
plot1(var1,"p1",red,def,1);
else
plot1(var1,"p1",black,def,1);
if var2>var2[1] then
plot2(var2,"p2",red,def,1);
else
plot2(var2,"p2",black,def,1);
if var3>var3[1] then
plot3(var3,"p3",red,def,1);
else
plot3(var3,"p3",black,def,1);
2020-04-28
1240
글번호 138439
답변완료
문의드립니다.
양봉에서 음봉으로 전환후 음봉으로 내려가다가
다시 양봉이 뜬후
이때의 고가 저가를 출력하고 싶습니다.
2020-04-28
1173
글번호 138436
답변완료
매일 많은 질문에 답해주셔서 정말 감사합니다.
늘 감사합니다.
오늘도 좋은 하루 되세요 :-)
2020-04-28
1064
글번호 138434
답변완료
문의드립니다.
relVigor(len)=>
x = ((close - open) + 2 * (close[1] - open[1])+ 2 * (close[2] - open[2]) + (close[3] - open[3])) / 6
y = ((high - low) + 2 * (high[1] - low[1]) + 2 *(high[2] - low[2]) + (high[3] - low[3])) / 6
r = sma(x, len) / sma(y, len)
sig = (r + 2 * r[1] + 2 * r[2] + r[3]) / 6
[r, sig]
out(sigMode, rVal, sVal)=>
var color outColor = na
var float outVal = na
if (sigMode == "Zero-Cross")
outVal := rVal
outColor := rVal >= 0 ? color.green : color.red
else
if (sigMode == "Increasing/Decreasing")
outVal := rVal
outColor := rVal >= rVal[1] ? color.green : color.red
else
outVal := rVal - sVal
outColor := rVal - sVal >= 0 ? color.green : color.red
[outVal, outColor]
study("Relative Vigor Index")
lenR = input(14, title="Length of Relative Vigor", type=input.integer, minval=1)
mode = input(title="Mode", type=input.string, options=["Zero-Cross", "Increasing/Decreasing", "Signal Comparison"], defval="Increasing/Decreasing")
[rv, signal] = relVigor(lenR)
[plt, col] = out(mode, rv, signal)
p0 = plot(plt, title="RVI", style=plot.style_histogram, color=col, linewidth=3, transp=0)
안녕하세요
옵션 중 Zero-Cross만 변환하여 사용할 수 있을까하여 글 올리게 되었습니다.
항상 감사드립니다.
좋은 하루되세요
2020-04-28
989
글번호 138433
수색대대 님에 의해서 삭제되었습니다.
2020-04-28
2
글번호 138432