커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1693
글번호 230811
답변완료
수식변경
늘 감사합니다.
아래의 수식을 변경해 주세요.
1. data2에 사용수 있도록
2 시작시간을 임의로 지정하고 싶습니다.
예를들면,
input : 시간1(060000);
value1 = TimeToMinutes(stime);
if stime == 시간1 Then{
3. 번거롭게 해서 죄송합니다. 유용하게 잘 쓰고 있습니다.
감사합니다.
input :Period(100);
var : rrsiv(0),rsiv(0),idx(0);
if bdate != bdate[1] Then
idx = 0;
Else
idx = idx+1;
rrsiv = (accumn(iff(C-C[1]<0,C[1]-C,0),Period)
/accumn(iff(C-C[1]<0,C[1]-C,C-C[1]),Period)*100-50)*-1;
rsiv = (accumn(iff(C-C[1]>0,C-C[1],0),Period)
/accumn(iff(C-C[1]>0,C-C[1],C[1]-C),Period)*100-50)*-1;
if idx <= 100 Then
{
rrsiv = (accumn(iff(C-C[1]<0,C[1]-C,0),idx)
/accumn(iff(C-C[1]<0,C[1]-C,C-C[1]),idx)*100-50)*-1*idx/100;
rsiv = (accumn(iff(C-C[1]>0,c-c[1],0),idx)
/accumn(iff(C-C[1]>0,c-c[1],C[1]-C),idx)*100-50)*-1*idx/100;
}
PlotBaseLine1(0,"0", black);
plot1(rrsiv,"R-RSI상승");
plot2(rsiv,"RSI하락");
2022-01-25
868
글번호 155777
답변완료
수식문의드립니다
아래 전략을 구현해봤습니다
몇번 테스트해봤을땐 문제없이 작동하는것 같은데
수식 상에서 구멍이 있진 않은지 검토 부탁드립니다!
1. 진입
지정가 채널 상단(=HB) 상향돌파시 매수
지정가 채널 하단(=LB) 하향돌파시 매도
2. 손절
매수 진입 이후 (HB > 60봉 지수 이평) 이면, HB - 10 에서 손절
매도 진입 이후 (LB < 60봉 지수 이평) 이면, HB + 10 에서 손절
3. 청산
매수 진입 이후 (HB =< 60봉 지수 이평) 이면, 60일선에서 청산
매도 진입 이후 (LB >= 60봉 지수 이평) 이면, 60일선에서 청산
input : HB(14230), LB(14220) ;
value1 = Ema(close, 60);
if CrossUp(Close, HB) Then Buy() ;
if CrossDown(close, LB) Then Sell() ;
if (value1 < HB) & CrossDown(close, HB-10) Then ExitLong() ;
if (value1 > LB) & CrossUp(close, HB+10) Then ExitShort() ;
if (value1 >= HB) & CrossDown(close, value1) Then ExitLong() ;
if (value1 <= LB) & CrossUp(close, value1) Then ExitShort() ;
--------------------------------
추가로 현재가 관련된 값이 보이지 않아서
현재는 종가 기준으로 수식을 작성해놨고
봉이 완성되어야만 진입-청산이 이루어지는 상황입니다
현재가가 도달한 시점에 바로 진입이 되도록 만들순 없을까요?
현재가가 HB에 도달한 시점에 바로 매수주문이 나가고
현재가가 60일선에 도달한 시점에 바로 청산이 되도록 하는걸 구현하는 방법이 있는지 문의드립니다
감사합니다
2022-01-25
940
글번호 155776
신대륙발견 님에 의해서 삭제되었습니다.
2022-01-25
13
글번호 155775
답변완료
문의 드립니다
안녕하세요
1. 일봉 전환선/기준선(전환선>기준선)/선행스팬 1/ biii 지표가 같이 올라 가는것/
전환선이 기준선 위에 검색되는 식과
2.MACD 0선이상/MACD SIGNAL선 이상/스토케스틱슬로우 %K 2이상/스토케스틱 슬로우 %K>%D/
BIII지표 가 올라가는 검색식 부탁드립니다
수고하세요
2022-01-25
864
글번호 155774
답변완료
수식문의드립니다
Input : Period(5), Period1(5);
var : FstK(0),FstD(0);
FstK = FastK(Period);
FstD = FastD(Period,Period1);
Plot1(FstK, "Stoch-Fast");
Plot2(FstD, "StochasticsK");
PlotBaseLine1(20, "기준선20");
PlotBaseLine2(80, "기준선80");
if CrossUp(fstk,기준선80)Then Find(1);
종목검색에서 fstk가 기준선80을 돌파할때를 수식으로 만들고 싶은데
어떻게 해야하는건가요??
plot부분은 출력부분이라 수식으로 안되는부분으로 알고 있는데
기준선80을 어떤방식으로 잡아주어야 하나요
2022-01-25
933
글번호 155773
비스코 님에 의해서 삭제되었습니다.
2022-01-25
0
글번호 155771
답변완료
문의 드립니다!
안녕하세요!
아래수식에서 plot2와 캔들이 만날때 세로선과 알람신호가 발생토록 부탁드립니다
* data1(풋)과 data2(콜)를 설정한 교차챠트의 2개캔들 모두에 이지표를 적용하고자 하는데요
이때 상대캔들과 이지표가 만날때도 세로선이 발생토록 부탁드립니다
즉, 콜캔들에 적용한 지표에 풋캔들이 만났을때와 이 반대의 경우도 해당됩니다
(* 선의 두께와 색은 임의로 조정가능토록 부탁드립니다)
항상 친절하고 자세히 도와주심에 진심으로 감사드립니다
-----------------------------------------------------
var : month(0),nday(0),week(0);
var :EX(false),HH(0),LL(0),OO(0),CC(0),DD(0),HH1(0),LL1(0),OO1(0);
month = int(date/100)-int(date/10000)*100;
nday = date - int(date/100)*100;
week = DayOfWeek(date);
#선물만기
#if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then
if nday >= 8 and nday <= 14 and week == 4 then#옵션만기
EX = true;
Else
EX = false;
if EX == false and EX[1] == true Then{
Condition1 = true;
DD = sDate;
HH = H;
LL = L;
OO = O;
CC = C;
HH1 = HH[1];
LL1 = LL[1];
OO1 = OO[1];
}
if Condition1 == true then
{
if H > HH Then
HH = H;
if L < LL Then
LL = L;
var1 = HH;
var2 = LL;
var3 = var1-var2;
plot1(var1,"Maxi");
plot2(var2+var3*0.500,"중심");
plot3(var2,"Mini");
if sDate == DD Then
{
Var4 = DayOpen;
Var5 = DayHigh;
Var6 = DayLow;
}
Plot4(Var4,"첫날시가",IFf(oo1 < DayOpen(0) ,MAGENTA,BLUE));
if HH1 > 0 and LL1 > 0 Then
{
Plot5(HH1,"전월물최고");
Plot6(LL1,"전월물최저");
}
}
2022-01-26
898
글번호 155770
답변완료
다시 한 번 부탁 드립니다.
a=valuewhen(1,(avg(c(2),120)<avg(c(1),120) and avg(c(1),120)<avg(c,120) and avg(c(1),20)<avg(c,20) and avg(c(1),5)>avg(c,5)),avg(c(1),5));
if(a(1)>a,a(1),a)
죄송 합니다.
한번에 말씀 드리지를 못했습니다.
위에 수식을 지표화 시켜 주실 수 있으신가요?
될 수 있다면 부탁 드립니다.
2022-01-25
1073
글번호 155769
답변완료
문의드립니다.
안녕하세요
아래 수식에서
매매후 이익이 나면 input A 를
변경하고 싶습니다.
예를 들어
매수시 30틱 이익시 A를 A+30틱 으로
매도시 30틱 이익시 A를 A-30틱으로 변경되도록 부탁드립니다,
그리고 청산과 동시에 반대방향으로 진입이 이루어질 때 증가금이 2배로 잡히므로
2배 증거금 안잡히도록 매매하고 싶은데 어떻게 하면 좋겠습니까?
방법을 같이 부탁드립니다.
input : 시작날짜(20220124),시작시간(90000);
input : A(380);
var : Tcond(False);
if Tcond == false and sDate >= 시작날짜 and sTime >= 시작시간 Then
Tcond = true;
if Tcond == true Then
{
if MarketPosition <= 0 and CrossUp(C,A+PriceScale*10) Then
Buy("b");
if MarketPosition >= 0 and CrossDown(C,A-PriceScale*10) Then
Sell("s");
}
2022-01-26
1093
글번호 155768