커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8142
글번호 230811
한글나라 님에 의해서 삭제되었습니다.
2014-12-25
0
글번호 81662
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2014-12-25
2
글번호 81661
답변완료
키움수식을 예스수식으로 변환 부탁드립니다.
매수진입 과 매도청산
a=avg(c,f);
b=avg(c,g);
d=cci(ㄴ);
j=tema(c,k)>tema(c,m) and adx(n)>x;
q= (avg(C,1) > avg(C,5)&&
avg(C,5) > avg(C,10)&&
avg(C,10) > avg(C,20)&&
avg(C,20) > avg(C,40)&&
avg(C,40) > avg(C,60)&&
avg(C,60) > avg(C,90)&&
avg(C,90) > avg(C,120)&&
avg(C,120) > avg(C,240));
(a-b>ㄱ and d>0 and time>e and j) or q
매수청산 과 매도진입
a=avg(c,f);
b=avg(c,g);
d=cci(ㄴ);
j=tema(c,k)<tema(c,m) and adx(n)>x;
q=(avg(C,1) < avg(C,5)&&
avg(C,5) < avg(C,10)&&
avg(C,10) < avg(C,20)&&
avg(C,20) < avg(C,40)&&
avg(C,40) < avg(C,60)&&
avg(C,60) < avg(C,90)&&
avg(C,90) < avg(C,120)&&
avg(C,120) < avg(C,240));
(a-b<-ㄱ and d<0 and time>e and j) or q
변환부탁드립니다. 감사합니다.
2014-12-25
289
글번호 81660
답변완료
39628 추가 문의입니다.
안녕하십니까.
휴일 잘보냈셨는지요. 몇가지 수정사항 문의드립니다.
수식은 아래내용입니다.
연결선물 종목으로 해서,,
기간을 2014.10.1~12.24로 잡고 test해보면 첨부의 그림같이 나오는데요,
input : BuyPrice(247),SellPrice(250),N(0.5),x(2),MM(1);
var : P2(0);
if MarketPosition <= 0 Then
buy("b",AtLimit,BuyPrice*(1-N/100),X);
if MarketPosition == 1 and CurrentEntries < 100 Then
buy("bb",atlimit,EntryPrice*(1-(N*CurrentEntries)/100),X+X*CurrentEntries);
if MarketPosition >= 0 Then
Sell("s",AtLimit,SellPrice*(1+N/100),X);
if MarketPosition == 1 and CurrentEntries < 100 Then
sell("ss",atlimit,EntryPrice*(1+(N*CurrentEntries)/100),X+X*CurrentEntries);
SetStopProfittarget(MM,PercentStop);
1. a,b는 250+250*0.005=251.25에서 신호가 나와야 할것 같은데
둘다 다른값으로 나옵니다.
2. c,d,e,M은 청산후 첫진입이니까 (s신호)가 나와야 하는데 (ss)가 나왔고요
값도 250보다 높은데서 나와야 하는데 247에서 나옵니다.
3. f,p는 g처럼 244.5로 나와야 하고요. 247-247*0.005 = 244.5
4. h,i,j 와 k,L은 주가가 업다운하면서 같은 가격대에서 반복해서 진입이 되었습니다.
원하는 것은 한 가격대에서는 1번만 진입이 되었으면 합니다.
5. r,s도 진입수량이 같은것으로 보아서 같은 가격대에서 반복진입이 되었습니다.
그런데 가격이 약간 차이가 발생했습니다.
6. 만약 일괄청산하려면
SetStopProfittarget(MM,PercentStop); 를
ExitLong("Profit",atlimit,AvgEntryPrice*(1+MM/100)); 로
바꾸면 되는지요.
아마 제 설명이 명확하지 않았던것 같은데요, 요약하면
BuyPrice를 내려가면 동일 값으로 수량을 증가하며 매수,한자리에서는 한번만
SellPrice를 올라가면 동일 값으로 수량을 증가하며 매도,한자리에서는 한번만
입니다.
저번에 도와주셨던 주식수식에서는 비슷한 개념을
EntryPrice가 아니라 LatestEntryPrice(0)를 이용해서 아래와 같이 처리를
해서 의도대로 나온적이 있습니다. 혹시 참고가 되실런지요
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "UpB" Then{
UpVal = LatestEntryPrice(0);
UPCnt = UPcnt+1;
Mny2 = Mny2-투자금액*Mult;
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
vol2 = int(int((투자금액-투자금액*Mult)/C)/10)*10;
}
Else{
vol2 = int((투자금액-투자금액*Mult)/C);
}
}
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "DnB" Then{
DnVal = LatestEntryPrice(0);
DnCnt = Dncnt+1;//불필요
Mny3 = Mny3+투자금액*Mult;//증액
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
vol3 = int(int((Mny3)/C)/10)*10;
}
Else{
vol3 = int((Mny3)/C);
}
}
if UPcnt < 10 Then
buy("UpB",AtStop,UpVal*(1+(Per)/100),Vol2);
if Dncnt < 10 Then
buy("DnB",atlimit,DnVal*(1-(Per)/100),Vol3);
ExitLong("Profit",atlimit,AvgEntryPrice*(1+Profit/100));
}
감사합니다.
2014-12-25
241
글번호 81659
답변완료
질문입니다.
진입후 진입당일과 진입전일의 고점을 HH값으로 불러오는 식입니다.
맞는지요?
if MarketPosition==0 Then{
HH = 0;}
if MarketPosition[1]!=MarketPosition Then{
HH = MAX(Dayhigh(1),Dayhigh(0));}
2014-12-25
181
글번호 81658
답변완료
예스글로벌에서 전일고가, 전전일고가 표시
예스글로벌에서 해외선물은 한국시간으로 아침8시부터 시작해서
다음날 아침7시15분까지 열리는데
전일고가, 전전일고가를 어떻게 표시하는지요?
국내선물처럼 dayhigh(1), dayhigh(2)로 하면
캘린더데이로 인식해서 표시가 되던데요...
제 최종목적은 전일고가(전일아침8시부터 당일아침7시15분까지의 고가)와
전전일고가가(전전일아침8시부터 전일아침7시15분까지의 고가)가
선으로 표시되도록 하고 싶은 겁니다.
도움을 부탁드립니다^^*
2014-12-25
258
글번호 81657
답변완료
문의
항상 감사드립니다.
plot으로 소수점 3자리 표시하는 방법 부탁 드립니다.
2014-12-25
195
글번호 81656
답변완료
추세선
자동추세선 수식 부탁드립니다
수고하십시요
2014-12-25
268
글번호 81655
답변완료
문의 드립니다.
항상 도움 주셔서 감사합니다.
문1) 분할매수 문의 드립니다.
(처음 매수조건 crossup(이평5, 이평10))
1계약 매수포지션 진입이후 10틱이 수익나면 청산
매수포지션 진입이후 -10틱 손실이 나면 추가 1계약 매수진입
2번 매수포지션 진입이후 전체수익이 +5틱에서 청산
2번 매수포지션 진입이후 전체수익이 -10틱에서 손절하는 시스템식 부탁드립니다.
청산은 한번에 합니다.
문2) 분할매수 문의 드립니다.
1계약 매수포지션 진입이후 10틱이 수익나면 청산
매수포지션 진입이후 -10틱 손실이 나면 추가 1계약 매수진입
2번 매수포지션 진입이후 1계약은 +5틱에서 청산
나머지 1계약은 +10틱에서 청산
2번 매수포지션 진입이후 전체수익이 -10틱에서 손절하는 시스템식 부탁드립니다.
수익 청산은 두번에 손실 청산은 한번에 하는 시스템식 부탁드립니다.
문3)
1계약 매수포지션 진입이후 10틱이 수익나면 청산
매수포지션 진입이후 -10틱 손실이 나면 추가 1계약 매수진입
2계약 진입후 전체 손실이 -15틱 손실이 나면 추가 1계약 매수진입
(총 3계약 진입)
2번~3번 매수포지션 진입이후 전체수익이 +5틱에서 청산
2번 또는 3번 매수포지션 진입이후 전체수익이 -15틱에서 손절하는 시스템식 부탁드립니다.
청산은 전체수익이 +5틱 1계약 청산
전체수익이 +10틱에서 1계약 청산
전체수익익 +15틱에서 나머지 1계약 청산
[한번에 청산하는 수식도 부탁드립니다.]
문4) 미국은 써머타임이 적용 되는 것으로 알고 있습니다.
4월부터 10월까지는 우리나라 시간 기준으로 7시부터 다음날 아침 6시까지
11월부터 다음해 3월까지는 우리나라 시간 기준 8시부터 다음날 아침 7시까지
거래시간을 셋팅하고 싶습니다.
시스템식 부탁드립니다.
문5) 보조지표 다이버전스에 대한 문의입니다.
첨부 그림에서 보면 스톡케스팅 이전고점보다 높아지면 매수
이전고점보다 낮아지면 매도하는 시스템식 부탁드립니다.
문6) 아래 시스템식의 오류를 찾아주세요.
아래와 같이 코딩했는데 청산이 안됩니다.
매수까지는 되는데 매수청산이 안됩니다.
if MarketPosition == 0 and var1 < var2 Then{
buy("buy") ;
}
if MarketPosition() == 1 then{
Hvalue = Highest(H,BarsSinceEntry+1);
ExitLong("B_trailstop",AtStop,Hvalue-PriceScale*10);
}
2014-12-25
238
글번호 81654