커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7756
글번호 230811
답변완료
수식 문의 입니다.
첨부 파일 그림에서 처럼,
기준선 보다 위에 있고,
macd를 기준으로 만들 때,
A의 최대 값보다 B의 최대값이 작을 경우 매도 하는 식은 어떻게 만들어야 하는지요?
문의 할 수 있는 메일 주소도 부탁 드립니다.
2010-03-24
729
글번호 28876
답변완료
지표식 문의 드립니다.
데이(09:00 ~ 15:00)를 기준으로
장시직후와 장마감지전 일정시간을 제외한 거래량과 거래량의 이평선 2개를
표시 할 수 있나요?
예) 09:00~09:10사이, 14:50~15:00 까지의 거래량을 제외한 하루동안의
거래량과 거래량 이평선
2010-03-24
692
글번호 28875
답변완료
장중에 캔들이 이평선을 돌파할때...
안녕하세요.
장중에 캔들이 이평선을 돌파할때 자동으로 매매신호를 보내는건 어떻게 할까요?
예를들어,
if crossdown(a,b) then
sell();
이라고 표현한다면, 이건 종가기준으로 되지 않나요?
종가 기준이 아닌 장중에 터치하는 순간 매도 신호를 보내는걸 알고 싶습니다.
그리고, 장중에 다시 위로 돌파하는걸 확인후 매수신호를 보내는것도 부탁드립니다.
예를들면, 일봉에서 캔들 하단이 5일 이평선을 깨는 순간 바로 매도신호가 나오고, 다시 5일 이평선위로 올리는 걸 확인하는 순간 바로 매수신호가 나오게끔 하는거요.
2010-03-24
684
글번호 28874
답변완료
메일로 부탁합니다.
slim-1111@hanmail.net
2010-03-24
749
글번호 28866
러블리 님에 의해서 삭제되었습니다.
2010-03-24
333
글번호 28865
답변완료
주차트 1분봉에서 90분봉 참고지표 그리기
게시판 보다보면, 정말 많은 분들이 열정을 가지고 공부하시는 것이 놀랍습니다.
더 놀라운 것은 이렇게 많은 업무를 처리하는 담당자분입니다.
성함도 얼굴도 모르지만 참 감사하게 생각하고 있습니다^-^
궁금한게 생겨서 질문 좀 드리겠습니다.
주차트(주문나가는 차트) : KP200선물 1분봉
참고차트 : KP200선물 90분봉
90분봉의 가격차트는 data2로 참조해서 볼 수는 있는데, 90분봉을 참조하는 지표가 생각대로 잘 그려지지 않습니다. 나름대로 하느라고 해봤는데, 이 지표가 1분마다 하나씩 그려집니다.
저는 90분마다 하나씩 그려지길 원하거든요.
그리고자 하는 지표는 다음과 같습니다. (종가*거래량의 합 / 거래량의 합)
Weight = data2(C) * data2(Volume);
Sum_Weight = Sum_Weight + Weight;
Sum_Volume = Sum_Volume + data2(Volume);
Avg_Price = Sum_Weight / Sum_Volume;
Plot1(Avg_Price);
---------------------
90분마다 하나씩 그릴 수 있는 방법 좀 부탁드리겠습니다. 검색해서 TimeToMinutes함수 이용하는 방법도 좀 봤는데, 코딩에 익숙하지 않은데다, 머리가 나쁜지 통 이해가 안되네요. 가능하시다면, 알려주실 때 간단하게라도 주석 좀 달아주셨으면 좋겠습니다.
감사합니다!
2010-03-24
711
글번호 28864
답변완료
시스템식
if MarketPosition == 1 Then{
if countif(C < ma(C,20)-(Pricescale*5),BarsSinceEntry) < 1 and #1
highest(H,BarsSinceEntry) >= EntryPrice+1. and #2
CrossDown(c,ma(C,20)) Then #3
exitlong();
위식은 매수진입후 이익을 보존하는 청산식입니다.
요구식1) 매도진입후 이익을 보존하는 청산식으로 변경바랍니다.
2010-03-24
677
글번호 28863
답변완료
제가 만든 보조지표를 이용한 비교시...
안녕하세요.
전 제가 임의로 보조지표들을 만들고 이동평균선을 만들어서 사용하고 있습니다.
오늘 그 수식들을 예스랭귀지로 일부 수정하여 구현을 하였구요.
그런데, CCI나 MACD처럼 제가 임의로 이름을 정해서 아래처럼 구현을 해보고 싶은데 어떻게 해야할까요?
예)
Input : Period1(9),Period2(10);
var : CCIv(0),CCIsig(0);
CCIv = CCI(Period1);
===>처럼,
제가 정한 이름이 예를 들어 abc라고 하면
input: period1(170);
if CrossUp(abc,period1) Then
buy();
이렇게 하니깐 "선언되지 않은 이름 'abc'가 사용되었습니다"라고 합니다.
하지만, 전 abc라는 이름으로 지표에 저장을 했는데 이렇게 에러가 나옵니다.
시스템에서 이미 지표상에 제가 만든 abc라는 이름이 위의 예제처럼 170을 매수가 되게끔 해야한다면,위의 에러가 안나오는게 맞지 않을까요?
많이 궁금합니다.
2010-03-24
599
글번호 28862
답변완료
청산식 관련
아래와 같은 수식의 데이 시스템에서 마지막 포지션 청산결과
당일수익(dayPL)이 손실인 경우...
dayPL 만큼의 수익이 발생하면 청산하는 수식을 작성해주세요.
예를들어 dayPL 이 현재까지 -1.3 이라면,
롱진입은 EntryPrice+1.3 청산
숏진입은 EntryPrice-1.3 청산하면 되겠지요.
dayPL을 청산수식에 어떻게 활용해야할지 모르겠네요.
-------------------------------------------------------------------
input : entrycnt(50);
var : cnt(0),count(0);
var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0);
XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정
XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정
PLR = 0;
count = 0;
for var1 = 1 to 100{
if sdate == EntryDate(var1) Then{
PLR = PLR+PositionProfit(var1);
}
}
if MarketPosition() == 0 Then{
OpenPL = 0;
dayPL = PLR;
}
Else{
OpenPL = (PositionProfit-(XCommission+XSlippage));
dayPL = PLR+OpenPL;
}
count = 0;
for cnt = 0 to 50{
if sDate == EntryDate(cnt) Then
count = count+1;
}
if stime >=90000 then
Var3 = dayindex()+1; #당일봉개수 (1/21)
var4 = DayPL;
if MarketPosition == 1 Then
var1 = Highest(H,BarsSinceEntry);
if MarketPosition == -1 Then
var2 = Lowest(L,BarsSinceEntry);
if count < entrycnt and 090000 < stime and stime < 144300 and dayPL >= -3.0 Then{
if count >= 0 and MarketPosition == 0 and C > DayOpen+0.5 Then
Buy("롱진입",atstop,C);
if count >= 0 and MarketPosition == 0 and C < DayOpen-0.5 Then
Sell("숏진입",atstop,C);
...
2010-03-24
628
글번호 28861