커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7426
글번호 230811
답변완료
수식부탁드립니다.
1.
dayhigh 와 daylow 처럼 특정지표의 당일 최고값과
당일 최저값을 돌파할 때를 표시하려고 합니다.
여기서는 trix(12,9)를 예로 넣어 놓았는데요
trix(12) 값이 당일의 최고값을 돌파 할 때와 당일의 최저값을 돌파 할 때를
표시하는 수식을 부탁드립니다.
2.
9시10분까지는
9시1분 = 거래량
9시2분 = 9시1분 거래량 + 거래량
9시3분 = 9시1분 거래량 + 9시2분 거래량 + 거래량
....
9시11분 부터는
9시 2분거래량부터 9시 11분 까지의 누적 거래량
요약하면
매 10분마다 누적거래량을 보려고 합니다.
단, 장 시작후 10분이 되지 않을 때는 9시10분까지 매 분의 누적거래량을 구합니다.
3.
매 5분마다 입력된 가격 아래에 있을 경우
매도신호를 발생하려 합니다.
예) 12000 << 입력값
매 5분마다 12000원 아래면 매도신호 발생
감사합니다 (_ _)
2016-04-19
193
글번호 97215
답변완료
함수수정요청(251, 진입제어)
함수요청드립니다.
매수 : 주가 > 5 이동평균선 > 20 이동평균선 골든크로스 완성 시점 익봉 시가에 진입
매도 : 주가 < 5 이동평균선 < 20 이동평균선 데드크로스 완성 시점 익봉 시가에 진입
당일 골든크로스나 데드크로스 발생시 진입하되,
1. 매수신호는 기존에 20일이평선이 상승중일 때(직전 5개째봉과 비교 5개봉 연속으로 상승 중), 매도신호는 기존에 20일 이평선이 하향이동중일 때(직전 5개째봉과 비교 5개봉 연속으로 하락 중)는 그때만 신호를 없애고 싶습니다.
2. 매수신호는 기존에 5일이평선과 20일이평선이 동시에 상승중일 때(직전 5개째봉과 비교 5개봉 연속으로 상승 중), 매도신호는 기존에5일이평선과 20일이평선이 동시에 하향이동중일 때
(직전 5개째봉과 비교 5개봉 연속으로 하락 중)는 그때만 신호를 없애고 싶습니다.
단, 아래 글번호 47292번처럼 그때의 주문만 제거하여 나머지의 기존의 신호에는 영향을 받지 않게 하고자 합니다.
1번과 2번 식을 따로 부탁드립니다.
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false);
if stime == starttime or (stime > starttime and stime[1] < starttime) Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] Then
buy();
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then
sell();
2016-04-19
161
글번호 97214
답변완료
글번호47186번 재질문
안녕하세요?
글번호 47186번 재질문입니다.
답변 주신 아래의 스크립트에서 첫진입때
"if TT-T1 == 0 and var3 < 102"와 "if TT-T1 == 0 and var3 > 98" 일 때만 진입을 제거하고 싶습니다.
기존에 작성해주신 식으로는 나중에 나오는 신호까지 바뀌어 버립니다.
첫진입의 수량을 0으로 하여 나중에 나오는 신호에 대해서는 신호가 왜곡되지 않게 하고 싶습니다.
수량으로 컨트롤이 되지 않는다면 체결이 되지 않는 지정가 가격으로 주문을 생성하면 될 것 같습니다. (가령 유로화를 사자는 0.1달로로, 팔자는 10달러로)
input : starttime(70000), xtime(60000);
var : tcond(false),cond1(false),cond2(false),TT(0),T1(0);
if stime == starttime or (stime > starttime and stime[1] < starttime) Then{
Tcond = true;
Condition1 = false;
Condition2 = false;
}
if stime == xtime or (stime > xtime and stime[1] < Xtime) Then{
Tcond = false;
}
var1 = ma(c,5);
var2 = ma(c,20);
var3 = Disparity(20);
cond1 = C > var1 and var1 > var2;
cond2 = C < var1 and var1 < var2;
if MarketPosition == 0 Then
TT = TotalTrades;
Else
TT = TotalTrades+1;
if crossup(var1,var2) or CrossDown(var1,var2) Then
T1 = TT;
if cond1 == true and cond1[1] == false then
Condition1 = true;
if cond2 == true and cond2[1] == false then
Condition2 = true;
if Tcond == true And
Condition1 == true and cond1 == true and
var1 > var1[1] and var2 > var2[1] Then{
if TT-T1 == 0 and var3 < 102 Then
buy();
#첫진입이 아닐때
if TT-T1 > 0 Then
buy();
}
if Tcond == true And
Condition2 == true and Cond2 == true and
var1 < var1[1] and var2 < var2[1] Then{
if TT-T1 == 0 and var3 > 98 Then
sell();
if TT-TT == 0 Then
sell();
}
2016-04-19
170
글번호 97213
답변완료
글번호47287번 "글번호47269번 재질문" 재질문
안녕하세요?
글번호 47287번 재질문입니다.
주문내용을 파일(텍스트파일)에 기록하고 싶습니다.
그런데 주문내용을 하나의 파일이 아닌
주문내역마다 건건이 다른 파일로 저장하고 싶습니다.
print("signal.csv",",매도,종목코드,%s,날짜,%.f,시간,%.f,익봉시가,%.2f",SymbolCode,sdate,stime,NextBarOpen);
2016-04-18
141
글번호 97212
답변완료
함수수정요청(265, TSI)
안녕하세요?
아래의 함수 수정요청드립니다.
아래의 함수는
TSI와 신호선과 교차를 이용하여 매매를 하고자 하는 것입니다.
당일에
골든크로스(TSI>신호선)완성 이후 TSI와 신호선이 상승하면 익봉 매수
데드크로스(TSI<신호선)완성 이후 TSI와 신호선이 하락하면 익봉 매도입니다.
그런데 여기서 조건을 추가하여 교차된 값이 매수의 경우에는 -20이상이어야 하며
매도의 경우에는 교차된 값이 20이하이어야 합니다.
그리고 교차된 값이라하면 TSI값 신호값 동시만족입니다.
input : short(12),long(26),sig(9);
var : AA(0),BB(0),TSIv(0),signal(0);
AA = ma(ma(C[1]-C, short), long);
BB = ma(ma(abs(C[1] - C), short), long);
TSIv = iff(BB == 0, 0, AA/BB * 100 * (-1));
signal = iff(BB == 0, 0, ma(AA/BB*100 * (-1),sig));
if crossup(TSIv,signal) Then
buy("b",AtMarket);
if crossdown(TSIv , signal) Then
sell("s",AtMarket);
2016-04-18
120
글번호 97207
yes 님에 의해서 삭제되었습니다.
2016-04-18
1
글번호 97197
무정 님에 의해서 삭제되었습니다.
2016-04-18
18
글번호 97196
답변완료
문의드립니다
1
1분 차트에서
누적거래량이 1000을 돌파할때 마다
카운트를 하여
20 종가 이평선을 만들고 싶습니다
2
1분 차트에서
누적거래량이 1000을 돌파할때 까지의
최고가 와 최저가을 표시하고 싶습니다
2016-04-18
183
글번호 97195
답변완료
글번호47269번 재질문
안녕하세요?
글번호47269번 재질문입니다.
매수 : 주가 > 5 이동평균선 > 20 이동평균선 골든크로스 완성 시점 익봉 시가에 진입
매도 : 주가 < 5 이동평균선 < 20 이동평균선 데드크로스 완성 시점 익봉 시가에 진입
당일 골든크로스나 데드크로스 발생시 진입하고자 합니다.
여기서 실질적인 주문생성 및 체결의 종목코드, 주문유형, 가격, 수량, 시간을 추출하고 싶스빈다.
2016-04-18
164
글번호 97194