커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7822
글번호 230811
답변완료
수식 요청 수정요청
시스템식 짜고있는중에 미완성 했습니다 시스템식 선물용 입니다
아래 수식에서 서로 교차시
매수 매도 청산식 부탁합니다
답변은 yang 12133 @ empal.com 으로 부탁합니다 감사합니다
[내용]
input:p(5),p1(3),p2(3);
var:j(0),ep1(0),ep2(0),value1(0),value2(0),value3(0),StoK(0),StoD(0),PreStoK(0),PreStoD(0),chk_bit(0);
array:weekopen[100](0),weekhigh[100](0),weeklow[100](0),weekclose[100](0);
ep1 = 2/(p1+1);
ep2 = 2/(p2+1);
if DayOfWeek(date[1])>DayOfWeek(date) and dayindex()==0 then {
for j = 99 downto 1 {
weekopen[j] = weekopen[j-1];
weekhigh[j] = weekhigh[j-1];
weeklow[j] = weeklow[j-1];
weekclose[j] = weekclose[j-1];
}
weekopen[0] = o;
weekhigh[0] = h;
weeklow[0] = l;
#---------------#
# Stochastics #
#---------------#
value1 = weeklow[1];
value2 = weekhigh[1];
for j = 2 to p {
if value1 > weeklow[j] then value1 = weeklow[j]; //value1 = lowest(l,p)
if value2 < weekhigh[j] then value2 = weekhigh[j]; //value2 = highest(h,p)
}
value3 = (weekclose[1]-value1)/(value2-value1)*100; //value3 = (c-value1)/(value2-value1)*100
if chk_bit == 0 then {
PreStoK = value3[1];
PreStoD = StoK[1];
chk_bit = 1;
}
else {
PreStoK = StoK;
PreStoD = StoD;
}
StoK = value3 * ep1 + PreStoK * (1-ep1); //sto_K = ema(value3,p1)
StoD = StoK * ep2 + PreStoD * (1-ep2); //Sto_D = ema(ema(value3,p1),p2)
}
if weekhigh[0] < h then weekhigh[0] = h;
if weeklow[0] > l then weeklow[0] = l;
weekclose[0] = c;
2007-06-20
1294
글번호 12823
답변완료
cci 시스템식 및 조건 검색식
죄송합니다 제가 표현이 서툴러서....
cci(변수 5)
cci(변수 12)
cci를 변수만 각각 다르게 두개를 쓰고 있습니다
매수식: 일봉이 양봉일때만 cci(5) 지표나 cci(12) 지표중 하나만이라도 전일보다 하락 했을때 매수신호
매도식: 일봉이 음봉일때 매도신호
시스템식 및 조건검색식 부탁드립니다
2007-06-20
1403
글번호 12822
답변완료
선물1분챠트에서 고점 저점 찾기
다름이 아니라 선물1분챠트의 단순5 이동평균선값(MA5)의 고점/저점을 찾는 프로그램을 짜 보는데 쉽지가 않습니다.
고점 저점 판단은 주변값에 비해 최소 0.02값 차이가 발생시 고점 혹은 저점으로 판단할려 합니다..
기존 자료에 있을듯 하여 찾아보지만 그것 역시 쉽지 않네요...
우선적으로 찾는 갯수를 4개까지만 하려고 합니다만 ...혹시 예제 가 있을지요 ?
아니면 함수로 있는지 궁금합니다...
2007-06-20
1226
글번호 12821
답변완료
수식문의
안녕하십니까.
초보자로,
3 버전에서 몇가지 문의합니다. 분봉,
1. date<>entrydate()
date<>entrydate(0)
date<>entrydate(1)
date<>entrydate[1]
위 4개가 어떻게 다른지 설명 바랍니다.
2. buy("매수1", Atstop, Var1);
buy("매수1", Atstop, def,Var1);
buy("매수1", Atstop, Var1,def);
위 3개의 설명도 부탁합니다.
3. 내장변수 var1 .... 10 개 이상도 가능한지, 불가하다면 해결 방법이 무엇인지요.
4. 하나의 완성된 수식에 조건이 다른 "매수" 가 3개가 있다고 가정합니다.
매수1, 매수2 는 2개중에서 1개만 1 일 1회 매수하고,
매수3 은 2회 매수도 가능케하여 최대 1일 3회 까지 가능토록 하려고 합니다.
아래와 같이 수식을 작성해 보았습니다.
5.
If date !=date[1] Then
cnt= 0;
If date<>entrydate(1) Then {
If Var3 > open And close> Var4 Then {
buy("매수1", Atstop, Var3);
}
If Var4 > open And close>=var5 Then {
buy("매수2", Atstop, Var4);
}
}
If Var5 > open And close>=var6 and cnt<3 Then {
buy("매수3", Atstop, Var6) ;
cnt = cnt+1;
}
6.
If date !=date[1] Then
cnt= 0;
If date<>entrydate(1) Then {
If Var3 > open And close> Var4 and cnt<3 Then {
buy("매수1", Atstop, Var3);
cnt = cnt+1;
}
If Var4 > open And close>=var5 and cnt<3 Then {
buy("매수2", Atstop, Var4);
cnt = cnt+1;
}
}
If Var5 > open And close>=var6 and cnt<3 Then {
buy("매수3", Atstop, Var6) ;
cnt = cnt+1;
}
위5번, 6번, 모두 만족할만한 결과를 얻지못하엿습니다. 오류를 설명해 주시고,
수정해 주시면 감사하겠습니다.
이와같은 방법은 복잡한데, 다른 함수나 수식을 소개해주세요.
감사합니다.
2007-06-19
1214
글번호 12817
답변완료
6129번 재질문입니다..
accumn(value1-value2,dayindex())와 같은 경우에는
매수힘값이 양의 영역에서 하루동안 계속 머문다면
계속 증가된 값을 나타냅니다.
하루동안 지속적으로 상승한 경우에 매수하기 위해서는
var : value1(0), value2(0),UP(0),DN(0);
value1 = ((dayhigh()-dayopen())/(dayhigh(1)-daylow(1)));
value2 = ((dayopen()-daylow())/(dayhigh(1)-daylow(1)));
var1 = value1-value2;
if accumn(iff(var1 >= var1[1],dayindex()+1) == dayindex()+1 then
buy();
와 같이 작성하면 현재까지 var1이 하루동안 계속 증가했다는것을 표현하게 됩니다.
다만 위와 같이 작성될 경우 당일 2번쨰 봉에서도 신호가 발생할 수 있으므로
매수시간을 넣어주시면 됩니다.
if stime == 140000 and accumn(iff(var1 >= var1[1],dayindex()+1) == dayindex()+1 then
buy();
14시까지 var1값이 하루동안 한번도 하향한적이 없으면 매수하는 식이됩니다.
에서요//
검증시
1.함수인자가 너무 적음 :iff
1.문법오류
2.함수인자 형식이 맞지않음 : accumn
이렇게 나옵니다 문법오류좀 수정부탁드립니다....
좋은하루되세요
2007-06-19
1240
글번호 12815
답변완료
미결제약정
지표식에서 미결제약정을 나타내는 식이 있는데 누적식인것 같아요
당일의 미결제 약정만을 나타내는 지표식을 구합니다.
감사합니다...
2007-06-19
1385
글번호 12812
답변완료
3.1에서요.(질문 수정됨)
3.0에서 삐거덕 거리며 겉으로는 잘 돌아가던 시스템이 안돌아가서,
debug를 하려고 print를 아래와 같이 썼더니
var1=사용자함수1;
print("debug1.txt","%.0f",var1);
정상적으로 프린트되다가, 어느 지점부터인가 "-1.$"로 프린트 되네요.
여기서 걸려서 시스템이 잘 안돌아간듯 한데요.
"-1.$"은 variable에 n/a가 들어간것도 아니고, 0으로 나눈값이 들어간것도 아닌데,
왜 이런 값이 프린트 되는건가요?
"사용자함수1"에서 걸리는것 같아 찾아들어갔더니만, 사용자함수중의 다음에서 걸리네요.
value2 = dayclose(2)-dayclose(1);
그래서 위를 아래와 같이 수정했더니만 괜찮네요.
if dayclose(2)>0 and dayclose(2)<99999999 then value2 = dayclose(2)-dayclose(1);
else value2=0;
데이터는 kospi200지수 30분봉을 사용했습니다.
그리고, 시스템리포트 화면이 너무 작게 나와 내용이 짤리네요. 이건 3.0처럼 다 나오게 화면조정좀 됐으면 합니다.
그리고 3.0에서 통하던 i와 barinterval()이 안먹네요. 각각, index와 barinterval로 바꿔줘야 됩니다.
alert도 이상하고요.
또,
"dB=13; var1=ceiling(p1*dB/19);"하면 var1에 이상한 값이 들어가고요...
var1=ceiling(p1*0.68);하면 var1에 정상적인 값이 들어갑니다.
위와 연관되서 "var/(2+1)"하면 compile error나옵니다.(zero로 나누었다고 하데요)
등등등...
끊임없는 update감사드리고요.
부탁말씀은 기능확장보다는 시스템 안정화에 앞으로도 더 신경써 주셨으면 합니다.
기능확장은 당장 눈에 보이고, 숨어있는 bug는 눈에 거의 안보이기 때문에 안정성이 간과되기 쉬운데요.
일반 프로그램이 아니고, 트레이딩 프로그램이기 때문에 기능성보다는 안정성이 더 중요하다고 생각됩니다.
2007-06-20
1259
글번호 12805
답변완료
cci 시스템식 및 조건검색식
안녕하세요
cci 변수는 5일하고 12일 입니다
매수신호: cci 변수 둘중에 하나만 만족해도 되며 일봉은 꼭 양봉이 나왔을때만 매수 신호표시
매도신호: 무조건 음봉일때 매도신호표시
시스템식 및 조건검색식 부탁드립니다
2007-06-19
1319
글번호 12804
답변완료
3.1베타에서 분석함수 인식 못합니다
MRO를 인식 못하네여..
조치해 주심 감사함다...
2007-06-17
1233
글번호 12803