커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1467
글번호 230811
답변완료
시스템식 부탁드립니다.
안녕하세요.
지난번 문의 드린 내용입니다.
(게시판 번호 : 85198)
2번 답변에 대해 재 질문 드립니다.
우선 반올림 처리를 안해주신것 같습니다.
제 수식과 다른 부분이 없어 보입니다.
제가 round 및 Ceiling 처리를 해봐도
제가 의도한 대로 수량 진입이 안됩니다.
코딩 수정후 직접 수량이 나오는지 점검 부탁드립니다.
감사합니다.
--------------------------------------------------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템식 부탁드립니다.
>
안녕하세요
예스스탁입니다.
1
시스템식 하단에 아래 내용 추가하시기 바랍니다.
손익표시 부분은 종목에 따라 소숫점이하 자리수를 지정하셔야 합니다.
기본은 2자리로 지정해 드립니다.
input : 소숫점이하자리수(2);
var : Grid(0);
var : num(0),Pl(0),R(0);
if Bdate != Bdate[1] Then
{
var1 = NetProfit;
Var2 = TotalTrades;
Var3 = 0;
}
pl = NetProfit-var1+PositionProfit;
num = TotalTrades-Var2;
if MarketPosition != 0 Then
num = num+1;
if TotalTrades > TotalTrades[1] and PositionProfit(1) > 0 Then
var3 = var3+1;
if MarketPosition == 0 Then
R = Var3/num;
Else
{
if PositionProfit > 0 Then
R = (Var3+1)/num*100;
Else
R = (Var3)/num*100;
}
if Index == 0 Then
Grid = Grid_New(1, 2, 6,White, Gray, 1, Gray, 0);
if LastBarOnChart == 1 Then
{
Grid_Cell(Grid,0,0,"당일매매손익",0,0,BLACK,LightBlue);
Grid_Cell(Grid,1,0,NumToStr(pl,소숫점이하자리수),0,0,BLACK,White);
Grid_Cell(Grid,0,1,"당일매매횟수",0,0,BLACK,LightBlue);
Grid_Cell(Grid,1,1,NumToStr(num,0),0,0,BLACK,White);
Grid_Cell(Grid,0,2,"현재포지션최대손실",0,0,BLACK,LightBlue);
Grid_Cell(Grid,1,2,NumToStr(MaxPositionProfit,소숫점이하자리수),0,0,BLACK,White);
Grid_Cell(Grid,0,3,"당일매매승률",0,0,BLACK,LightBlue);
Grid_Cell(Grid,1,3,NumToStr(R,2),0,0,BLACK,White);
}
2
반올림처리를 하셔야 합니다.
input : Pst(1); // 매수,매도
input : gap(25), pt(20), multi(0.7);
var : vol(0);
value1 = gap/PointValue;
value2 = pt/PointValue;
if pst == 1 Then
{
if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then
{
vol = 1;
Buy("b",OnClose,Def,vol);
}
if MarketPosition == 1 Then
{
vol = vol+(vol*multi);
Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol);
ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2);
}
}
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템식 부탁드립니다.
> 항상 도움 주셔서 감사합니다.
종목 : 해외선물(통화선물)
차트 : 1분봉
요청사항1 : Grid 함수를 사용해서 아래 사항을 차트 왼쪽 상단에 표시하고 싶습니다.
1. 당일 매매손익 차트에 표시
2. 당일 매매횟수 차트에 표시
3. 현재 포지션의 최대손실(드롭다운)을 차트에 표시
4. 당일 매매 승률 차트에 표시
요청사항2 : 아래와 같이 손실시 특정배수로 진입하는 수식을 작성했는데
수량이 제대로 안됩니다.(피라미딩 모든진입 신호 허용 선택함)
수식 수정 부탁드립니다.
#-----------------------------------------
input : Pst(1); // 매수,매도
input : gap(25), pt(20), multi(0.7);
var : vol(0);
value1 = gap/PointValue;
value2 = pt/PointValue;
if pst == 1 Then
{
if MarketPosition == 0 and TotalTrades == TotalTrades[1] Then
{
vol = 1;
Buy("b",OnClose,Def,vol);
}
if MarketPosition == 1 Then
{
vol = vol+(vol*multi);
Buy("bb",AtLimit,EntryPrice(0)-PriceScale*(value1*MaxEntries),vol);
ExitLong("bp",AtLimit,AvgEntryPrice+PriceScale*Value2);
}
}
시스템식 부탁드립니다.
감사합니다.
2024-01-02
710
글번호 175370
답변완료
MACD이동편균선
input : shortPeriod(12), longPeriod(26),period(60);
Var : value(0),MACDsig(0);
value = MACD(shortPeriod, longPeriod);
Macdsig = ma(value,Period);
if value > value[1] Then
Plot1(value, "MACD",RED);
Else
Plot1(value, "MACD",BLUE);
PlotBaseLine1(0, "기준선1");
시스템으로 바꿔 주세요.
1.MACd(value)가 Macdsig를 상향돌파 할때 매수
2.MACd(value)가 Macdsig를 하향돌파 할때 매도
2024-01-02
675
글번호 175356
답변완료
시스템식 2개 부탁드려요
1번식
지수이동 평균(ema)50이평
파라볼릭 sra(parabolic sar)
macd 지표를 이용해서
지수이평선 50일선 위에 있고
파라볼릭 신호 sar 신호 아래쪽 점이 있을때
macd 파란선이 주황선 상향돌파 골든크로스일때
매수 신호 (1번사진)
지수이평선 50일선 아래에 있고
파라볼릭 신호 sar 신호 위에 점이 있을때
macd 파란선이 주황선 하향돌파 데드크로스일때
매수 신호 (2번 사진)
2번
지수이동 평균(ema)50이평
상대강도지수rsi 3개(기준 7,14,21)+rsi 50미들선
평균방향성지수 adx 지표를 이용해서
매수는(3번사진)
rsi 미들 50선위 7,14,21선이 정배열
50이평위
adx 수치가 20이상일때
매도는(4번사진)
rsi 미들 50선아래 7,14,21선이 역배열
50이평아래
adx 수치가 20이상일때
손절라인은 진입전 5개봉의 최저가
익절라인은 트레이딩스탑 최고점에서 10틱이상 하락시 청산
2024-01-02
842
글번호 175347
답변완료
종목검색식좀 부탁드립니다
새해복많이 받으세요
항상 감사드립니다.
수식
s=sum(1);
tt=s%기간;
조건=tt==1;
hh=highestsince(1,조건,h);
hc=valuewhen(1,조건,hh(1));
ll=lowestsince(1,조건,l);
lc=valuewhen(1,조건,ll(1));
cc=valuewhen(1,조건,c(1));
oo=valuewhen(2,조건,o);
기준=hc+lc+cc;
if(cc>oo,(기준+hc)/2-lc,
if(cc<oo,(기준+lc)/2-lc, (기준+cc)/2-lc))
특정기간 디마크 일봉 돌파 종목검색식 부탁드립니다.
기간 값 10일
좋은 하루되세요
2024-01-02
640
글번호 175346
신대륙발견 님에 의해서 삭제되었습니다.
2024-01-02
45
글번호 175341
답변완료
구문 하나 검토 부탁드립니다.
아래와 같이 거래시간이 달라지는 특정 날짜에 한하여
진입시작 시간과 마감 시간, 청산 시간 등을 한 시간 미루어 적용하는 구문을 만들었습니다.
예를 들어, 수능일은 1시간 늦게 시작해서 한 시간 늦게 끝나고, 새해 첫 거래일은 1시간 늦게 시작하지만 평소와 동일하게 끝납니다.
그래서 아래와 같은 수식을 이용해서 시간을 기준으로 한 필터들을 1시간씩 늦추었습니다.
그러면 제 생각에는 이에 해당하는 날짜의 경우만 거래가 달라져야 할 것 같은데, 이상하게도.. 전혀 상관 없는 날짜의 거래에도 영향을 줍니다..
혹시 아래와 같이 작성했을때 거래시간이 달라지지 않는 평상시에도 영향을 받을 수 있는 가능성이 있을까요?
감사합니다
-----------------------------
input : 매수진입시작값(92000), 매수진입마감값(150000), 매도진입시작값(94800), 매도진입마감값(150000), 청산시작값(151300), 당일청산값(153300), 필터시간값(105000);
if sdate != sDate[1] Then
{
VAR : 매수진입시작(0), 매수진입마감(0), 매도진입시작(0), 매도진입마감(0), 청산시작(0), 당일청산(0), 필터시간(0);
if Delayed_open == true Then {
매수진입시작 = 매수진입시작값+10000;
매도진입시작 = 매도진입시작값+10000;
필터시간 = 필터시간값+10000;
}
Else {
매수진입시작 = 매수진입시작값;
매도진입시작 = 매도진입시작값;
필터시간 = 필터시간값;
}
if Delayed_CLOSE == true Then {
매수진입마감 = 매수진입마감값+10000;
매도진입마감 = 매도진입마감값+10000;
청산시작 = 청산시작값+10000;
당일청산 = 당일청산값+10000;
}
Else {
매수진입마감 = 매수진입마감값;
매도진입마감 = 매도진입마감값;
청산시작 = 청산시작값;
당일청산 = 당일청산값;
}
}
2024-01-02
543
글번호 175338
답변완료
부탁드립니다.
A=EAVG(C,150);
B=EAVG(C,200);
A1=Lowest(L, 260, 1)*1.25;
A2=Valuewhen(1, A1, A1);
((A(2)>A(1) && CROSSUP(A,A(1))) OR
(B(2)>B(1) && CROSSUP(B,B(1)))) &&
(CROSSUP(C,A) or CROSSUP(C,B) or
CROSSUP(C,A2))
종목검색 할 수 있게 부탁드립니다^^
2024-01-02
724
글번호 175335
답변완료
지표식구합니다
선물 틱봉에서의 스톡캐스틱 지표를 1분봉에 표시하는 지표식을 구합니다
예를 들어
300틱봉의 스톡캐스틱지표를 1분봉에 표시하고자합니다
감사합니다
2024-01-02
710
글번호 175334
답변완료
수식 변환 문의 드립니다
수고 하십니다.
항상 친절한 답볍 감사 드립니다.
키움수식을 종목검색으로 변환하여 사용중인데 제가 수식 변환을 잘못한것인지 종목 결과
가 다르게 발생하여 문의 드립니다.
A1 = floor(date / 100);
A2 = A1 % 100;
A3 = highestSINCE(1,A2 !=A2(1) and A2 != 12, H);
A4=valuewhen(1, A2 != A2(1), A3(1));
위와 같이 기준선을 만들고 기준선 돌파 종목 검색을 하려고
var : A1(0),A2(0),A3(0),A4(0);
A1 = floor(date / 100);
A2 = A1 % 100;
if A2 != A2[1] and A2 != 12 Then
A3 = H;
if A2 != A2[1] Then
A4 = A3[1];
위와 같이 예스수식으로 변환 사용해 보았는데
A3를 잘못 표현 한것인지 종목이 일치 하지 않아
수식 변환 부탁 드립니다
A2 !=12 에 12는 월12봉중 입니다.
2024-01-02
898
글번호 175331