커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1689
글번호 230811
주노짜양 님에 의해서 삭제되었습니다.
2022-02-09
0
글번호 156159
답변완료
문의
추가내용
b1 진입이 stoploss로 청산된 경우 b2가 진입한다
input : perk2(1.2),skew2(0.3),pcr2(107.5),weight2(17);
if Tcond[1] == true and CrossDown(k,hh*(1-perk2/100)) and q > skew2 and z < pcr2 and t > weight2 Then
Buy("b2");
위 내용을 아래 수식에 추가하여 주십시요.
************************************************************************
input : StartTime(090000),EndTime(123000);
input : perk1(1.2),skew1(0.3),pcr1(107.5),weight1(17);
input : ls(0.26),tr(1.20),mi(2.00),bg(120);
var : Tcond(false,Data1);
var : sum1(0,Data1),sum2(0,Data1),sum3(0,Data1);
var : a(0,Data1),b(0,Data1),k(0,Data1),j(0,Data1),q(0,Data1),t(0,Data1),x(0,Data1),y(0,Data1),z(0,Data1),hh(0,Data1),ll(0,Data1);
var : a1(0,Data1),a2(0,Data1),a3(0,Data1),a4(0,Data1),a5(0,Data1),a6(0,Data1),a7(0,Data1);
sum1 = data2(c) + data3(c);
sum2 = data4(c) + data5(c);
sum3 = data6(c) + data7(c);
k = data3(c) + data5(c) + data7(c);
j = (data2(c) + data3(c) + data4(c) + data5(c)+ data6(c) + data7(c))*1000;
if Data1(Bdate != bdate[1]) Then
{
hh = k;
ll = k;
}
Else
{
if k > hh Then
hh = k;
if k < ll Then
ll = k;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
a=sum1-sum3;
b=sum1-sum2;
q=a-b;
a1 = 0;
a2 = 0;
a3 = 0;
a4 = 0;
a5 = 0;
a6 = 0;
a7 = 0;
}
if Tcond == true Then
{
a1 = a1 + Data1(OI);
a2 = a2 + Data2(OI);
a3 = a3 + Data3(OI);
a4 = a4 + Data4(OI);
a5 = a5 + Data5(OI);
a6 = a6 + Data6(OI);
a7 = a7 + Data7(OI);
t = a1/j;
x = a3+a5+a7;
y = a2+a4+a6;
z = x/y*100;
if Data1(sdate) == Data1(sDate) and
Data1(sdate) == Data2(sDate) and
Data1(sdate) == Data3(sDate) and
Data1(sdate) == Data4(sDate) and
Data1(sdate) == Data5(sDate) and
Data1(sdate) == Data6(sDate) and
Data1(sdate) == Data7(sDate) Then
{
t = a1/j;
x = a3+a5+a7;
y = a2+a4+a6;
}
Else
{
t = 0;
x = 0;
y = 0;
z = 0;
}
if Tcond[1] == true and CrossDown(k,hh*(1-perk1/100)) and q > skew1 and z < pcr1 and t > weight1 Then
Buy("b1");
}
SetStopLoss(ls,PercentStop);
SetStopTrailing(tr,0,PercentStop,1);
SetStopInactivity(mi,bg,PercentStop);
2022-02-09
1284
글번호 156158
답변완료
지표 문의드립니다
안녕하세요
지표 관련하여 몇가지 질문 드립니다
1. totaltrades
totaltrades는 시스템 시작 시점부터 청산이 발생할때마다 +1씩 되는건가요?
시스템 시작시 0
매수(매도)진입시엔 변화 없음
매수(매도)청산시 방향성 관계없이 +1
ex) 시작 (0) => buy (0) => exitlong(1) => sell (1) => exitshort (2) / () 안은 totaltrades 값
이게 맞는지 확인 부탁드립니다
2. marketposition
marketposition(1), (2), (3)이 어떤 기준으로 카운팅 되는건지 정확히 알고싶습니다
시작 => buy => exitlong => sell => exitshort인 상황이면 marketposition의 순번이
시작(4) => buy(3) => exitlong(2) => sell(1) => exitshort(0) 로 부여되어 / ()안은 marketposition 순번
marketposition(0) = 0
marketposition(1) = -1
marketposition(2) = 0
marketposition(3) = 1
marketposition(4) = 0
이렇게 되는건지
아니면 다른 방식으로 부여되는지 확인 부탁드립니다
감사합니다
2022-02-09
1215
글번호 156155
답변완료
수식
안녕하세요
선물호가잔량숫자을 다른지표처럼 그려지게할수있는지요 틱차트사용합니다 감사합니다
2022-02-09
1023
글번호 156152
답변완료
문의드립니다
고생하십니다
input : period(20) , midperiod(20),d1(2);
var : price(0);
price = (C+H+L)/3;
var1 = Ema(price,Period)+D1*std(price,Period);
주가가 5봉이네 볼린저밴드하단터치하고 위에식 돌파식은 어떻게 해야하는건지 알고싶습니다
2022-02-09
1118
글번호 156151
답변완료
수식 수정부탁드립니다.
안녕하십니까
수식 수정 부탁드립니다. 아래는 작성하여 주신 수식 입니다.
input : 금액(10000000),ntime(100000);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
input : P(20),진입횟수(3),BBP(20),dv(2);
input : 진입시작1(91500),진입종료1(110000);
input : 진입시작2(130000),진입종료2(153000);
var : mav(0),entry(0),volma(0),Tcond(False),BBup(0);
if Bdate != Bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
mav = ma(C,P);
volma = ma(V,P);
BBup = BollBandUp(BBP,dv);
Tcond = (sTime >= 진입시작1 and sTime < 진입종료1) or (sTime >= 진입시작2 and sTime < 진입종료2); #오전 09:30~11:00, 오후 1:00~15:30분 사이만 매수
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then
{
if date >= 20030721 then
{
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then
{
if sdate < 20101004 Then
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
if MarketPosition == 0 and
Tcond == true and
entry < 진입횟수 and #당일진입은 3회까지
C > DayOpen and #일봉양봉
(mav > mav[1] and
(TotalTrades == 0 or (TotalTrades > 0 and CountIf(mav<mav[1],BarsSinceExit(1)) >= 1))) and
V >= volma[1]*1.50 Then #20거래량 평균 50%이상 거래량 발생
Buy("b");
if MarketPosition == 1 Then
#if CrossDown(C,BBup) Then #볼밴상단 하향돌파
#ExitLong("bx2");
ExitLong("bx",AtLimit,상한가);
SetStopLoss(3,PercentStop);
SetStopEndofday(151500);
현재 매수 조건은
1. 일봉양봉 2. 20일 이평상승 3. 거래량 20거래량 평균 50% 이상 발생 시 매수
입니다.
수정 부탁 드릴 조건은 위 1~3번 조건이 발생 한 후 종가가 20일 이평을 하향 하였을때 매수로 변경 부탁드립니다,(3분 5분봉에 적용할예정입니다.)
첨부 이미지 보시면 현재는 1번에서 주문이 나가는데 2번에서 주문이 나갈수 있게 변경하고 싶습니다.
항상 건강하십시오. 감사합니다.
2022-02-09
1143
글번호 156150
답변완료
재문의드립니다
75860번 전일고가저가를 추가하였는데 고가저가크로스될때도 수평선이 나오게 부탁드립니다~~항상감사합니다
2022-02-09
1226
글번호 156146
답변완료
문의드립니다
수고하십니다
볼린저밴드하단선을 저가가 5봉이내 터치하고 20일선을 돌파하는 식을 알고싶습니다
2022-02-09
1147
글번호 156145
답변완료
지표수식의뢰
1.기준봉 : N봉중 신고가(종가 20%이상)
2.당일 주가가 기준봉의 중심값(30%)을 돌파하는 종목의
- 검색수식
- 신호수식
- 지표수식
부탁드립니다.
수고하세요
2022-02-09
1192
글번호 156137