커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1688
글번호 230811
답변완료
질문 드립니다
사진1 RIS 기본 설정 - 하락세에 너무 많은 손실을 봄
사진2 손절매 적용 - 손실을 줄일순있지만 하락세에서 계속 매매가 이뤄져서 효율적이지 않음
RIS 시스템 수식 수정 가능하신지 질문드립니다
상승장에서는 좋은데 하락장에선 대응할수있는게 손절매 밖에 없더라구요
아직 시스템 매매에 대해 문외한이라 두서 없는 질문이지만 하락장에서 대응할수있는 전략 수식을 추가해주실수 있나요?
Input : Period(14), LPercent(30), SPercent(70);
Var : value(0);
value = RSI(Period);
# 매수/매도청산
If CrossUP(value, LPercent) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, SPercent) Then
{
Sell();
}
2022-02-15
1278
글번호 156296
답변완료
문의
data2에서 사용하는 수식으로 수정 부탁드립니다.
**********************************************************************************
input : up연속봉1(5),up연속small1(0.2),up연속large1(1.00);
input : dn연속봉1(4),dn연속small1(0.3),dn연속large1(0.95);
if accumN(iff(C<O,1,0),up연속봉1) == up연속봉1 and ExitDate(1) != sdate and AccumN(abs(C-O), up연속봉1) >= up연속small1 and AccumN(abs(C-O), up연속봉1) < up연속large1 then
ExitLong("b연속봉1");
if accumN(iff(C>O,1,0),dn연속봉1) == dn연속봉1 and ExitDate(1) != sdate and AccumN(abs(C-O), dn연속봉1) >= dn연속small1 and AccumN(abs(C-O), dn연속봉1) < dn연속large1 then
ExitShort("s연속봉1");
2022-02-15
1161
글번호 156293
답변완료
부탁드려요
차트에서 각 종목들의 가로선들이(점선) 1% 간격으로(%는 조절가능하게)
나오도록 지표가능한지요
종목별 가격이 다르기 때문에 특정가격을 입력하면 선들이 만들어져도 상관없습니다
2022-02-15
1126
글번호 156289
wscamtk 님에 의해서 삭제되었습니다.
2022-02-15
160
글번호 156288
답변완료
매수를 하려면...
안녕하세요 저는 여러 종목에 대해서 모두 자동화를 하고 싶은데 이 경우
전략 차트를 여러개를 띄워야 하나요?
즉 한 전략 차트 내에서 예스랭귀지 스크립트로
다수의 종목을 매수/매도를 그 이름을 지정해서는 할 수는 없는 거죠?
(종목코드를 지정하고 싶다면 단지 계좌에 있는 것만 얻을 수 있고
다른 증권 api처럼 이번 미니 옵션 월물 모두 다 불러오기 - 이렇게 한 후
그 중 매수를 하는 것은 차트에 띄워진 것만 가능하기에 불가능하죠?)
감사합니다!
2022-02-15
1462
글번호 156287
답변완료
수식 부탁드립니다.
안녕하세요?
수고에 감사드립니다.
아래의 스토캐스틱 지표를 시스템식으로 전환해서 stok가 80이상이면 경고음소리가나고
stok가 20이하이면 경고음이 나오도록해 주시면 감사하겠습니다.
매수와 매도청산 방식은 아닙니다.
단순 경고음만 나오면 됩니다.
감사합니다.
Input : Period(12), Period1(5), Period2(5);
var : StoK(0),StoD(0);
StoK = StochasticsK(Period,Period1);
StoD = StochasticsD(Period,Period1,Period2);
Plot1(StoK, "StochasticsK");
Plot2(StoD, "StochasticsD");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
2022-02-14
1130
글번호 156286
답변완료
종목검색
안녕하세요..항상 감사합니다.
5분봉 차트에서,
일목균형표의 기준선이 120분선을,
오늘을 제외한 5일전에 돌파한 종목 검색을 하고 싶습니다.
2022-02-14
1367
글번호 156285
답변완료
지표식 변환이 가능할까요?
트레이딩뷰에서 사용하던 웨이브트렌드 라는 지표인데
예스트레이더에서 사용하고 싶은데 공부 부족으로 헤매고 있습니다ㅠ
혹시 도움을 주실수 있을까요?
(sma는 ma와 같다고 하네요)
-----------------------------------------------------------------
n1 = input(10, "Channel Length")
n2 = input(19, "Average Length")
sma1 = input(7, "SMA Length")
r=input(8, title="Period", type=integer, minval=1)
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
b=ema(close,r)
buy_g=close[3]<b
sell_g=close[3]>b
ap = hlc3
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
wt1 = tci
wt2 = sma(wt1,sma1)
plot(0, color=gray)
plot(obLevel1, color=red)
plot(osLevel1, color=green)
plot(obLevel2, color=red)
plot(osLevel2, color=green)
plot(wt1, color=green)
plot(wt2, color=red)
plot(crossover(wt1, wt2)and buy_g ? wt2 : na, color = black , style = circles, linewidth = 3)
plot(crossunder(wt1, wt2)and sell_g ? wt2 : na, color = black , style = circles, linewidth = 3)
plot(crossover(wt1, wt2) and buy_g ? wt2 : na, color = green , style = circles, linewidth = 2)
plot(crossunder(wt1, wt2) and sell_g ? wt2 : na, color = (wt2 - wt1 > 0 ? red : lime) , style = circles, linewidth = 2)
barcolor(crossover(wt1, wt2)and buy_g ? (wt2 - wt1 > 0 ? aqua : yellow) : na)
barcolor(crossunder(wt1, wt2)and sell_g ? (wt2 - wt1 > 0 ? aqua : yellow) : na)
bgcolor(crossover(wt1,wt2) and buy_g ? green : na, transp=75)
bgcolor(crossunder(wt1,wt2) and sell_g ? red : na, transp=75)
alertcondition(crossover(wt1,wt2) and buy_g, title='Buy', message='Buy Alert')
alertcondition(crossunder(wt1,wt2) and sell_g, title='Sell', message='Sell Alert')
2022-02-14
1450
글번호 156284
답변완료
수정 부탁 드립니다.
안녕 하세요.
항상 도움 수셔서 감사드립니다.
한번더 요청을 드립니다.
1.마지막 고저라인 차트 끝까지 그려지게 수정해 주셨는데
반대 라인이 생성되면 끊어져야 되는데 계속 남아 두 라인이 있게 됩니다
수정 부탁 드리고요.
2.ZigZag 라인 상승,하락 색상을 구분해서 표시되게 부탁 드립니다.
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),
Text1(0),처리구분(""),T(0),TL21(0),TL31(0),TL4(0),TL41(0),TL5(0),TL51(0);
Array:고점[10,2](0),저점[10,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
T = 1;
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL21);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
//TL21 = TL_New(sDate[sBar],sTime[sBar],저점[1,1]+PriceScale*10,sDate[eBar],sTime[eBar],저점[1,1]+PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1], NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
TL_SetSize(TL2,3);
TL_SetColor(TL2,REd); //저점
TL_SetSize(TL21,1);
TL_SetColor(TL21,YELLOw); //저점
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and
TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
TL_Delete(TL3);
TL_Delete(TL31);
Text_Delete(Text1);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
//TL31 = TL_New(sDate[sBar],sTime[sBar],고점[1,1]-PriceScale*10,sDate[eBar],sTime[eBar],고점[1,1]-PriceScale*10);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],1));
Text_SetStyle(Text1, 2, 10);
TL_SetSize(TL3,3);
TL_SetColor(TL3,BLUe);
TL_SetSize(TL31,1);
TL_SetColor(TL31,YELLOw);
}
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,GRAy);
TL_Delete(TL4);
TL_Delete(TL41);
TL_Delete(TL5);
TL_Delete(TL51);
if T == 1 then
{
TL4 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1],sDate,sTime,고점[1,1]);
// TL41 = TL_New(sDate[index-고점[1,2]],sTime[index-고점[1,2]],고점[1,1]-PriceScale*10,sDate,sTime,고점[1,1]-PriceScale*10);
TL_SetColor(TL4,BLUE);
TL_SetSize(TL4,3);
TL_SetExtRight(TL4,true);
TL_SetColor(TL41,YELLOw);
TL_SetSize(TL41,1);
TL_SetExtRight(TL41,true);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,False);
}
if T == -1 then
{
TL4 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1],sDate,sTime,저점[1,1]);
//TL41 = TL_New(sDate[index-저점[1,2]],sTime[index-저점[1,2]],저점[1,1]+PriceScale*10,sDate,sTime,저점[1,1]+PriceScale*10);
TL_SetColor(TL5,REd); //저점
TL_SetSize(TL5,3);
TL_SetExtRight(TL5,true);
TL_SetColor(TL51,YELLOw); //저점
TL_SetSize(TL51,1);
TL_SetExtRight(TL51,true);
TL_SetExtRight(TL3,true);
TL_SetExtRight(TL2,False);
}
감사합니다.
2022-02-14
1443
글번호 156283