커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1756
글번호 230811
답변완료
PVI, NVI 계산오류
PVI와 NVI의 결과 값이 어느종목은 맞고, 어느종목은 안맞고....이상합니다.
첨부된 파일의 우측차트를 보면, 차트가 우하향인데 계산값이 우상향 하는 형태로 나옵니다.
계산식은 PVI+NVI 입니다.
2020-12-20
876
글번호 144815
답변완료
차트상의 값과 수식으로 계산된 값의 차이의 해결 방법을 알려주시면 감사하겠습니다.
많은 업무에 노고가 많으십니다.
덕분에 많이 배우고 있습니다.
문의드릴 내용은
차트상의 값과 수식으로 계산된 값이 서로 다르게 나오는데요!!
어떻게 해결하면 될까요??
해결 방법을 알려주시면 대단히 감사하겠습니다.
그리고 아래의 수식을 하면 "연산자 앞뒤 두 데이터의 형태가 같아야 합니다." 라고 나옵니다.
크로스다운 될때의 값을 구할려면 아떻게 하는지도 부탁드립니다.
dmax1=CrossDown(dm,ax);
-요약하면 테스트는 CJ CGV 이며
ADX(a기간);
DiPlus(a기간);
DiMinus(a기간);
StochasticsK(sto1,sto2);
RSI(r기간);
일전에 RSI 질문에서 반복문이 함께 있으면 일정기간이 지나야 값이 제대로 나온다고 알려주셨는데요!!
이번에는 뭘 잘못 했는지 전부 다르게 나옵니다.
위 다섯가지 어떻게 수긱을 작성해야 되는지 부탁드립니다.
감사합니다.
//----------------------------------
input : a기간(15),r기간(10),기간1(1500);
var : j(0),ax(0),Dp(0),dm(0),stc(0),sto1(5),sto2(5),sto3(3);
var : dmax1(0),dmax2(0),dmax3(0),bhi5(0),yhi5(0);
var : rs1(0),rs(0),usum(0),dsum(0),upt(0),dpt(0),uavg(0),davg(0);
//----------------------------------
//5년 하락 50%
bhi5=H[1];
for j=1 To 기간1 {
if bhi5<H[j] Then {
bhi5=H[j];
}
}
yhi5=bhi5*0.5;
//----------------------------------
//ADX
AX = ADX(a기간);
DP = DiPlus(a기간);
DM = DiMinus(a기간);
//dmax1=CrossDown(dm,ax);
dmax2=ax+(ax*0.005);
dmax3=iff(CrossDown(dm,ax),ax*0.005,ax);
//----------------------------------
// 스톡케스틱
stc=StochasticsK(sto1,sto2);
//----------------------------------
// RSI=(상승평균/(상승평균+하락평균))x100
rs1=RSI(r기간);
//----------------------------------
If Index==r기간 and r기간>0 Then {
usum=0;
dsum=0;
for j=0 to r기간-1 {
upt=C[j]-C[j+1];
if upt>=0 then {
dpt=0;
} Else {
dpt=0-upt;
upt=0;
}
usum=usum+upt;
dsum=dsum+dpt;
}
uavg=usum/r기간;
davg=dsum/r기간;
} Else {
If Index>r기간 and r기간>0 Then {
upt=C[0]-C[1];
if upt>=0 then {
dpt=0;
} Else {
dpt=0-upt;
upt=0;
}
uavg=(uavg[1]*(r기간-1)+upt)/r기간;
davg=(davg[1]*(r기간-1)+dpt)/r기간;
}
}
If uavg+davg<>0 then {
rs=(uavg/(uavg+davg))*100;
} Else {
rs=0;
}
Plot1(rs);
//----------------------------------
if Crossdown(dm,ax) Then {
MessageLog("ax -> %.2f",ax);
MessageLog("dp -> %.2f",dp);
MessageLog("dm -> %.2f",dm);
MessageLog("stc -> %.2f",stc);
MessageLog("RS1 -> %.2f",rs1);
MessageLog("RS -> %.2f",rs);
}
//----------------------------------
2020-12-22
753
글번호 144814
답변완료
Text_New 함수값이 전봉에서 계산한 값으로 나오는데..???
이상해서 살펴보았더니..
어떤 수식계산으로 해보아도 전봉에서 계산된 값으로만 나오네요??
그래서 ..
아래와 같이 간단하게 만들어 해보니까..역시 전봉값으로 나옵니다.
var:CC_tx(0);
Text_Delete(CC_tx);
var1=IFF(C[1]>C,RED,IFF(C[1]<C,BLUE,LGREEN));
CC_tx=Text_New(date,time,C," "+NumToStr(C,2));
Text_SetColor(CC_tx,var1);
Text_SetStyle(CC_tx,0,2);
Text_SetBold(CC_tx,1);
Text_SetSize(CC_tx,11);
아래로 바꾸어도 마찬가지입니다.
CC_tx=Text_New(sdate,stime,C," "+NumToStr(C,2));
이렇게 직전봉에서 계산된 값으로만 나오네요..
(같은 수식값이 plot 와 상이하게 직전봉값으로만 나옵니다.)
현제봉에서 계산된 값으로 나오게 할 어떤 방법은 없나요???
2020-12-20
764
글번호 144813
답변완료
변수활용 문의드립니다
안녕하세요?
운영중인 시스템은 진행중인 신호방향에 따라 다계약 분할청산을 하도록 하고 있습니다.
궁금한 점은,
Input : 진입여부(y); // 기본적으로는 진입하도록 y를 준다.
같은 형태로 변수화하여 (장중에 시스템트레이딩 설정창에서 수시로 반영해주고 싶어서)
진입여부 설정값(n)을 줄 경우 현재 보유중인 포지션이 수익이든 손실이든 청산이 되고나면 더 이상 진입이 안되도록 해서 매매를 멈추게 하고 싶습니다.
다시 매매를 하고 싶어질 경우 진입여부 설정값(y)로 교체함으로써 다음신호부터 다시 진입이 되도록 설정하고 싶습니다.
(즉 시험모드가 아닌 자동매매 모드 상태이지만 진입여부라는 변수조절을 통해서 진입 여부를 수시로 결정)
가능하다면 간단한 예제를 좀 알려주시면 좋겠습니다.
항상 좋은 답변 주셔서 감사드립니다.
2020-12-20
934
글번호 144812
답변완료
수식 등 문의
안녕하세요?
몇가지 수식 등에 대한 질문 입니다.
1. 2020년 12월 1일 13시 30분과
2020년 12월 8일 10시 20분을 기준으로
12월 1일 13시 30분 이전에는 var1 = 1;
그 이후부터 12월 8일 10시 20분까지는 var1 = 2;
그 이후로는 계속 var1 = 3;
이걸 어떻게 구현하나요?
sdate, stime 의 문법과 용법은 어디 나와 있나요?
https://www.yesstock.com/YesTrader/YesLanguage/YesLanguage_help.html 요기에서 못 찾겠습니다.
2. 일봉차트와 분봉차트를 각각 띄어놓고, 일봉차트에서 매수 신호가 나오면 분봉차트에서는 매수신호만 유효하고, 매도신호는 무시하는 이런 스타일이 예스나 예스스팟에서 가능한가요?
3. 이건 위의 2번의 대답이 부정적일 경우의 질문입니다:
일봉차트와 분봉차트가 모두 각각 10개 정도의 참조데이터들을 사용하기에, 메모리 부족 우려가 있는데(집 데스크탑 말고, 예스 프로그램 자체의 메모리 문제...), 일봉과 분봉을 각각 켜두는 것보다 그냥 분봉차트에 일봉차트도 다 참조데이터로 끼워넣으면 (이 경우 11+11= 22, 즉 data22 까지 필요하겠네요...) 메모리 부족이 더 심화되나요?
그러니까 제 질문은 참조데이터 20개짜리 하나 돌리는 것(일봉 10개 + 분봉 10개) vs.
참조데이터 각각 10개짜리 일봉과 분봉 돌리는 것의 차이(메모리 또는 시스템 부하)가 궁금합니다.
이런 식으로 돌릴 경우 예상되는 문제점들이 뭐가 있을까요?
집 데스크탑은 최신으로 램도 32기가...충분히 했는데, 예스프로그램 자체의 메모리 부족에 대한 질문 입니다. 제가 12개의 참조데이터가 있는 5000봉짜리를 시뮬레이션으로 돌리면 오케이인데, 라이브로 돌리면 메모리 부족이라고 나오면서 바로 꺼집니다. 그래서, 라이브를 1500~2000봉으로 돌리면 안꺼지기는 합니다. 그래서 제 질문은 예스 프로그램이 메모리 부족을 느끼는 지름길을 알고 싶습니다. 예상되는 보기는 아래와 같습니다.
1) 참조 데이터를 많이 사용할 때
2) 로직이 복잡하고 길 때,
3) 사용자 함수를 많이 사용할 때
4) 사용자 함수를 사용하는데, 그 함수가 또다른 사용자 함수를 사용할 때
..........
메모리 부족을 유발하는 가장 나쁜 것부터 순서가 어떻게 되는지 궁금합니다.
4. 찾아보니:
if CurrentEntries < MaxEntries Then
→ 현재 거래의 누적 진입횟수가 최대 누적 진입횟수보다 작다
→ 일부 청산이 있었음을 의미
라고 나와 있던데, 제가 input 에서 howmany(5)라는 변수를 통해 물타기를 최대 5번까지만 허용한 시스템에서는 MaxEntries == 5가 되나요?
그런데, 그렇다면 MaxEntries == 5라는 것을 컴퓨터는 어떻게 아나요?
그러니까, 물타기를 최대 5번까지만 허용한 시스템이라고 해도, 상황에 따라서는 차트상 현재까지 1~2번의 물타기만 진행되었을 수 있어서 드리는 질문 입니다. 그러면, 이 때까지는 MaxEntries는 5가 아닌 1~2 또는 2~3 이 되는 건가요?
5. if CurrentContracts > CurrentContracts[1] or (MarketPosition != MarketPosition(0)[1]) Then
{
HC = C;
EP1 = LatestEntryPrice(0);
EP2 = EP1[1];
EP3 = EP2[1];
EP4 = EP3[1];
}
이 말의 뜻풀이 좀 부탁드립니다.
여기서 특히, EP1[1] = LatestEntryPrice(0)[1] = 가장 최근 진입한 가격에 [1] 이 붙었는데, 이게 무슨 뜻일까요?
감사합니다.
2020-12-21
1157
글번호 144811
답변완료
기능 추가 건의 드립니다.
검색식 중
시장 검색 중 최고거래량 갱신 검색 기간이 최대 최근 5일로 되어있는데
이걸 기간을 늘려주시는 걸 건의 드립니다.
매우 요긴한데요 5일바께안되서 아쉽습니다.
2020-12-20
715
글번호 144810
답변완료
종목검색식 부탁드립니다
종목검색 조건 :
- 전일 캔들은 15% 이상 양봉 마감하고 ,
- 당일 캔들은 시가는 전일보다 3% 이상 출발하여 종가는 전일 종가보다 높은
음봉으로 마감한 종목 검색식 부탁합니다
2020-12-19
912
글번호 144809
답변완료
문의
고생하십니다~~
한 5년만에 질문을 드려봅니다.
1. 하루에 진입이 4~5번 나오는 어떤 수식이 있다는 전제하에
하루 진입 중 수익이나면 계속 진입 하되, 손실은 딱 한번으로 제한하고 싶습니다
하루 기준으로 진입후 첫손실이 나오면 이후 진입을 안하는 수식(매매중지)은
무얼 추가해야 되는지요?
손실 청산 발생시 당일 진입 금지 수식입니다.
2. MACD 지표에서
양오실이 나오면 그때 양봉(양봉이 아닐수도 있지만)의 시가를 기억하고 있다가
10봉 이내에 그 가격을 지나가는 양봉 발생시 매수 진입
하는 수식
2020-12-19
776
글번호 144808
파워 님에 의해서 삭제되었습니다.
2020-12-19
3
글번호 144807