커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3457
글번호 230811
답변완료
문의 드립니다.
안녕하세요
도움주셔서 감사드립니다^^
5 이평값이 100 이고 10 이평값이 80 이라고 했을때
차이값 20 을 차트에 실시간으로 표시할수 있을까요?
수치 또는 퍼센트값으로 표시될수있게 부탁드립니다.
감사합니다. 좋은일 가득하세요
2021-04-02
746
글번호 147619
2wnwn 님에 의해서 삭제되었습니다.
2021-04-02
16
글번호 147618
답변완료
수식 의뢰 부탁드립니다.
안녕하세요
ADX를 활용해서 매매를 하려고 합니다
1. 최근봉 기준 'ADX값 20 이하인 봉수'가 20개 이상이고 ADX값이 20을 돌파.
두 조건 만족 이후 매매식 가동시작
2. ADX값이 20 이하 돌파하면 매매식 가동정지
부연설명
* 1조건을 만족한 뒤 ADX값 20 이하인 봉수'는 2조건에 영향을 주지 않음
* 오로지 ADX값 20이하 돌파만 영향을 줌
* 1조건 만족하지 못하면 매매식 미가동
감사합니다
2021-04-01
835
글번호 147617
답변완료
문의드립니다
안녕하세요 이 검색식으로 이전 날짜의 데이터를 검색하려고 하는데 2020년 5월의 자료들을 검색하려고 하는데 데이터가 존재하지 않는다구 하더라구요ㅜ
혹시 2019년도나 더 이전의 자료는 검색할수없는건가요?ㅜ
input : ndate(20210329);
var1 = Highest(H,240);
if sDate == ndate and
H > var1[1] and
CountIf(H>var1[1],20) == 1 and
CountIf(V >= 200000,3) >= 15 Then
Condition1 = true;
if Condition1 == true Then
Find(1);
2021-04-01
856
글번호 147615
답변완료
수식 부탁드립니다.
5일전~당일 중 최고가를 당일 오후3시 15분에 넘어 있다면 매수
2021-04-01
760
글번호 147614
답변완료
수식 질문드립니다.
오버 시스템 만들려고합니다.
아래식으로는 잘 안되네요
오후 15:00: ~ 15:30 까지만 조건 판단하여 진입하려고합니다.
부탁드리겠습니다.
감사합니다 !!
--------------------
input : StartTime(152000),EndTime(153000);
var : Tcond(false,Data1);
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;
# 매수/매도청산
if Tcond == true Then
.
.
.
.
2021-04-01
897
글번호 147613
답변완료
수식어 부탁 드립니다
input : StartTime(080000),EndTime(055000),xtime(055500);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false);
if sDate != sDate[1] then
SetStopEndofday(xtime);
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;
SetStopEndofday(0);
}
INPUT : LENGTH(60);
VAR : upv(0), dnv(0);
upv = HIGHEST(HIGH, LENGTH);
dnv = LOWEST(LOW, LENGTH);
if MarketPosition <= 0 and L > dnv Then
Buy("b",AtLimit,dnv);
if MarketPosition >= 0 and H < upv Then
sell("s",AtLimit,upv);
----------------------------------
input : StartTime(140000),EndTime(055000),xtime(055500);
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
var : Tcond(false),S1(0),D1(0),TM(0);
if sDate != sDate[1] then
SetStopEndofday(xtime);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
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;
SetStopEndofday(0);
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
}
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선[25]+기준선[25])/2;
선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2;
var1 = Disparity(60);
Var2 = ma(C,300);
if Tcond == true Then
{
if 전환선 > 기준선 and crossup(전환선,선행스팬1) and var1 >= 99 Then
buy("b");
if MarketPosition == 1 then
{
if 전환선 < 기준선 and CrossDown(전환선,선행스팬2) and var1 >= 99 Then
exitlong("bx1");
if TM <= TM[BarsSinceEntry]+30 and CountIf(CrossUp(c,Var2),BarsSinceEntry) >= 1 Then
ExitLong("bx2",AtStop,EntryPrice);
if CrossDown(c,Var2) Then
ExitLong("bx3");
}
if 전환선 < 기준선 and CrossDown(전환선,선행스팬1) and var1 <= 100 Then
sell("s");
if MarketPosition == -1 then
{
if 전환선 > 기준선 and CrossUp(전환선,선행스팬2) and var1 <= 100 Then
ExitShort("sx1");
if TM <= TM[BarsSinceEntry]+30 and CountIf(CrossDown(c,Var2),BarsSinceEntry) >= 1 Then
ExitShort("sx2",AtStop,EntryPrice);
if CrossUp(c,Var2) Then
ExitShort("sx3");
}
}
===========================================
위 2종류의 수식어를 결합하여 시스템을 부탁드립니다.
첫번째 수식어의 매매시간은
08시부터 오후 15시까지이며 청산시간은 15시 10분으로 수정해주시고
두번째 수식어의 매매시간은 15시50분 부터 익일 05시 50분까지이며
청산시간은 05시 55분으로 수정 부탁드립니다.
미리 감사 합니다.
2021-04-01
884
글번호 147612
답변완료
수식 문의
var1 = ma(C,5);
var2 = ma(C,20); 기준으로
피라미딩 모든진입허용 / 진입횟수 10으로 하여
순차적으로 전봉 진입보다 현봉진입이 높을때(매도), 낮을때(매수)
진입 전량 청산하고 반대방향으로 순차적으로 진입하는 수식이 가능한지요?
가능하다면 부탁드립니다.
2021-04-01
935
글번호 147609
답변완료
부탁드립니다.
도움에 감사 드립니다.
수식1)은 Low와 high값이 10개
수식2)은 Low와 high값이 20개
수식3)은 Low와 high값이 30개를 이용한 값을 구하고 있지만
Low와 high값을 10~300개(외부변수n을 이용하여)를 이용한 값을 구하고 싶습니다.
"for cnt = 1 to n"문과 같은 예와같이 간단히 줄여 작성이 가능하지요?
수식1)
var:a(0),b(0);
a=100*(10-((
IFf(l ==lowest(l,11),0,
IFf(l[1]==lowest(l,11),1,
IFf(l[2]==lowest(l,11),2,
IFf(l[3]==lowest(l,11),3,
IFf(l[4]==lowest(l,11),4,
IFf(l[5]==lowest(l,11),5,
IFf(l[6]==lowest(l,11),6,
IFf(l[7]==lowest(l,11),7,
IFf(l[8]==lowest(l,11),8,
IFf(l[9]==lowest(l,11),9,10)))))))))))))/10;
b=100*(10-((
IFf(h ==highest(h,11),0,
IFf(h[1]==highest(h,11),1,
IFf(h[2]==highest(h,11),2,
IFf(h[3]==highest(h,11),3,
IFf(h[4]==highest(h,11),4,
IFf(h[5]==highest(h,11),5,
IFf(h[6]==highest(h,11),6,
IFf(h[7]==highest(h,11),7,
IFf(h[8]==highest(h,11),8,
IFf(h[9]==highest(h,11),9,10)))))))))))))/10;
var1=b-a
Plot1(var1);
수식2)
var:a(0),b(0);
a=100*(20-((
IFf(l ==lowest(l,21),0,
IFf(l[1]==lowest(l,21),1,
IFf(l[2]==lowest(l,21),2,
IFf(l[3]==lowest(l,21),3,
IFf(l[4]==lowest(l,21),4,
IFf(l[5]==lowest(l,21),5,
IFf(l[6]==lowest(l,21),6,
IFf(l[7]==lowest(l,21),7,
IFf(l[8]==lowest(l,21),8,
IFf(l[9]==lowest(l,21),9,
IFf(l[10]==lowest(l,21),10,
IFf(l[11]==lowest(l,21),11,
IFf(l[12]==lowest(l,21),12,
IFf(l[13]==lowest(l,21),13,
IFf(l[14]==lowest(l,21),14,
IFf(l[15]==lowest(l,21),15,
IFf(l[16]==lowest(l,21),16,
IFf(l[17]==lowest(l,21),17,
IFf(l[18]==lowest(l,21),18,
IFf(l[19]==lowest(l,21),19,20))))) ))))) ))))) ))))) )))/20;
b=100*(20-((
IFf(h ==highest(h,21),0,
IFf(h[1]==highest(h,21),1,
IFf(h[2]==highest(h,21),2,
IFf(h[3]==highest(h,21),3,
IFf(h[4]==highest(h,21),4,
IFf(h[5]==highest(h,21),5,
IFf(h[6]==highest(h,21),6,
IFf(h[7]==highest(h,21),7,
IFf(h[8]==highest(h,21),8,
IFf(h[9]==highest(h,21),9,
IFf(h[10]==highest(h,21),10,
IFf(h[11]==highest(h,21),11,
IFf(h[12]==highest(h,21),12,
IFf(h[13]==highest(h,21),13,
IFf(h[14]==highest(h,21),14,
IFf(h[15]==highest(h,21),15,
IFf(h[16]==highest(h,21),16,
IFf(h[17]==highest(h,21),17,
IFf(h[18]==highest(h,21),18,
IFf(h[19]==highest(h,21),19,20))))) ))))) ))))) ))))) )))/20;
var1=b-a
Plot1(var1);
수식3)
var:a(0),b(0);
a=100*(30-((
IFf(l ==lowest(l,31),0,
IFf(l[1]==lowest(l,31),1,
IFf(l[2]==lowest(l,31),2,
IFf(l[3]==lowest(l,31),3,
IFf(l[4]==lowest(l,31),4,
IFf(l[5]==lowest(l,31),5,
IFf(l[6]==lowest(l,31),6,
IFf(l[7]==lowest(l,31),7,
IFf(l[8]==lowest(l,31),8,
IFf(l[9]==lowest(l,31),9,
IFf(l[10]==lowest(l,31),10,
IFf(l[11]==lowest(l,31),11,
IFf(l[12]==lowest(l,31),12,
IFf(l[13]==lowest(l,31),13,
IFf(l[14]==lowest(l,31),14,
IFf(l[15]==lowest(l,31),15,
IFf(l[16]==lowest(l,31),16,
IFf(l[17]==lowest(l,31),17,
IFf(l[18]==lowest(l,31),18,
IFf(l[19]==lowest(l,31),19,
IFf(l[20]==lowest(l,31),20,
IFf(l[21]==lowest(l,31),21,
IFf(l[22]==lowest(l,31),22,
IFf(l[23]==lowest(l,31),23,
IFf(l[24]==lowest(l,31),24,
IFf(l[25]==lowest(l,31),25,
IFf(l[26]==lowest(l,31),26,
IFf(l[27]==lowest(l,31),27,
IFf(l[28]==lowest(l,31),28,
IFf(l[29]==lowest(l,31),29, 30))))) )))) )))))) ))))) ))))) ))))) )))/30;
b=100*(30-((
IFf(h ==highest(h,31),0,
IFf(h[1]==highest(h,31),1,
IFf(h[2]==highest(h,31),2,
IFf(h[3]==highest(h,31),3,
IFf(h[4]==highest(h,31),4,
IFf(h[5]==highest(h,31),5,
IFf(h[6]==highest(h,31),6,
IFf(h[7]==highest(h,31),7,
IFf(h[8]==highest(h,31),8,
IFf(h[9]==highest(h,31),9,
IFf(h[10]==highest(h,31),10,
IFf(h[11]==highest(h,31),11,
IFf(h[12]==highest(h,31),12,
IFf(h[13]==highest(h,31),13,
IFf(h[14]==highest(h,31),14,
IFf(h[15]==highest(h,31),15,
IFf(h[16]==highest(h,31),16,
IFf(h[17]==highest(h,31),17,
IFf(h[18]==highest(h,31),18,
IFf(h[19]==highest(h,31),19,
IFf(h[20]==highest(h,31),20,
IFf(h[21]==highest(h,31),21,
IFf(h[22]==highest(h,31),22,
IFf(h[23]==highest(h,31),23,
IFf(h[24]==highest(h,31),24,
IFf(h[25]==highest(h,31),25,
IFf(h[26]==highest(h,31),26,
IFf(h[27]==highest(h,31),27,
IFf(h[28]==highest(h,31),28,
IFf(h[29]==highest(h,31),29, 30))))) )))) )))))) ))))) ))))) ))))) )))/30;
var1=b-a
Plot1(var1);
2021-04-01
943
글번호 147608