커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7491
글번호 230811
답변완료
수식부탁드립니다.
안녕하세요.
항상 도움 주셔서 감사합니다.
첨부파일 보시고 답변 부탁드립니다.
2014-09-28
168
글번호 78886
회원 님에 의해서 삭제되었습니다.
2014-09-28
13
글번호 78885
답변완료
DDE 객체 사용방법 부탁드립니다.
스팟에서......
메뉴얼을 봐도 DDE 객체 사용 방법에 대해 자세하게 나오지가 않았습니다.
1) Service,Topic,Item이 뭘 가르키는지 궁금합니다.
2) 현재가와 시가총액을 실시간으로 엑셀 파일에 저장 하고 싶은데...
방법 부탁드립니다.
2014-09-28
323
글번호 78884
정일집중 님에 의해서 삭제되었습니다.
2014-09-28
0
글번호 78883
답변완료
일봉상 추세선 적용
스팟에서.....
일봉상 상승 추세선을 적용해서 상승 추세선 하락 지지대 이탈시
매도하고 지지시 매수한다를 설계하고 싶은데
코딩 예시 좀 부탁드리겠습니다.
2014-09-28
218
글번호 78882
답변완료
완성 신호가 정확히 뭐죠??
스팟에서....
1. 완성 신호의 의미가 잘 이해가 안 됩니다.
쉬운 설명 부탁드립니다.
2. 완성 신호가 언제 필요한지, 구체적으로 어느때 사용되는지
예를 몇가지 들어서 설명 부탁드립니다.
3. DDE 객체를 이용하여 현재가와 시가총액을 실시간으로
엑셀에 가져오고 싶은데 코딩 예시 좀 부탁드립니다.
2014-09-28
185
글번호 78881
답변완료
시스템매매시간수정
항상 감사드립니다
아래 시스템매매시간에서 시간조정을 추가하고 싶습니다
1,시스템종료시간을 04:30으로 셋팅되어 잇는데 이조건에 다음조건을 추가하고자합니다
1-1. 03:00기준 현재 매수(+1)이고 c>var1 이면 ==> c<var1 일때 매수청산/ 시스템종료
(c>var1 매수조건이 계속유지되면 04:30에 자동청산)
03:00기준 현재 매도(-1)이고 c<var1 이면 ==> c>var1 일때 매수청산/ 시스템종료
(c<var1 매도조건이 계속유지되면 04:30에 자동청산)
1-2.아래 시간설정은 21:00이후 두번째 발생신호봉부터 신호가 발생합니다
이조건을 첫번째발생신호봉부터 발생되도록 수정부탁드립니다
##################################################
##### 당일 21:00 장시작 / 익일 04:30 장종료 #####
##################################################
input : 시작시간(210000),끝시간(043000);
var : Start(false),entrycnt(0),Bcond(false),Scond(false),idx(0);
if stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간) Then{
Start = True;
entrycnt = entrycnt+1;
Idx = 0;
}
Idx = idx+1;
if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간) Then
Start = false;
Bcond = var20==1 and var13==1 and c>var48[25] and macdv>macds and upAroon > DnAroon;
Scond = var20==-1 and var13==-1 and c<var48[25] and macdv<macds and upAroon < DnAroon ;
Condition1 = ExitDate(1) == true and MarketPosition(1) == 1 and
(IsExitName("eB1",1) == true or IsExitName("StopLoss",1) == true);
Condition2 = ExitDate(1) == true and MarketPosition(1) == -1 and
(IsExitName("eS1",1) == true or IsExitName("StopLoss",1) == true);
Condition11 = ExitDate(1) == true and MarketPosition(1) == 1 and
(IsExitName("bx",1) == true or IsExitName("StopLoss",1) == true);
Condition22 = ExitDate(1) == true and MarketPosition(1) == -1 and
(IsExitName("sx",1) == true or IsExitName("StopLoss",1) == true);
if Idx >= 2 and
Start == true and
Bcond == true and Bcond[1] == False and
(MarketPosition == -1 or (MarketPosition == 0 and Condition1 == False and Condition11 == False)) Then
buy("B1");
if Idx >= 2 and
Start == true and
Scond == true and Scond[1] == False and
(MarketPosition == 1 or (MarketPosition == 0 and Condition2 == False and Condition22 == False)) Then
sell("S1");
1-3.아래식을 다음과 같이 수정하고싶습니다
매수진입후 10틱이내 이익이면서 c<Lma1 이면 매수청산(bx)
매도진입후 10틱이내 이익이면서 c>Hma1 이면 매도청산(sx)
if MarketPosition == 1 Then{
if (highest(H,BarsSinceEntry) <= EntryPrice+PriceScale*10) Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-PriceScale*15 );
}
if MarketPosition == -1 Then{
if ( Lowest(L,BarsSinceEntry) >= EntryPrice-PriceScale*10) Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale* 15);
}
감사합니다
2014-09-28
210
글번호 78880
답변완료
안녕하세요
안녕하세요
반갑습니다
현재진행봉 을 기준(분봉)으로
1. 그전6개 캔들 (몸통)의 합이 양의값
2.그전12개 캔들(몸통)의 합이 양의값
가)위조건의 1.2사항 동시만족시:매수
반대면: 매도
나)위의조건 1.2항과 60선위:매수
반대면:매도
다)위의조건 1.2항과 일목균형 기준선선위:매수
반대면:매도
감사합니다.
2014-09-28
168
글번호 78879
답변완료
문의합니다.
아래는 전에 질의했던 문의내용 원문입니다.현물거래합니다.
------------------------------------------------------------------------------
<매수>
1. 일봉상 이평이격도가 20일선대비 1일선이 80%이하이며, 양봉시 1차매수 100만원
2. 2차매수 1차매수후 -10%시 추가매수 100만원
3. 3차매수 2차매수후 평단가가 -10%시 추가매수 200만원
4. 4차매수 3차매수후 평단가가 -10%시 추가매수 400만원
<매도>
1. 3차매수후 종가시 평단가가 -10%이하시 전량손절
2. 평단가가 +3%시 50% 수익매도
3. 평단가가 +5%시 25% 수익매도
4. 평단가가 +10%시 25% 수익매도
5. 3%수익매도시 나머지 물량 종가 전량매도
요는 1차매수가됐는 2차매수가됐는 4차매수가됐는 평단가 대비 +3%가 된다면 수익실현을 총물량의 50%를 하게되는데 그후 +5%,+10%를 만족하지 못하더라도 종가에 전량매도 하는것입니다. 제 생각에는 +3%수익실현을 하게되면 그다음 주문은 조건부 지정가로 +5%,+10%로 주문을 내게되면 될것같은데요 ^^
------------------------------------------------------------------------------
밑에는 답변받은 내용입니다.
매도식이 제가 원했던 내용과 일치하는지 문의드립니다.
------------------------------------------------------------------------------
안녕하세요
예스스탁입니다.
청산이 타입이 잘못되어 있어 수정했습니다.
해당식 평단가 대비 3%,5%,10% 수익청산은 진입횟수와 관계가 없이 발생합니다.
input : Per(10),매수1(1000000),매수2(1000000),매수3(2000000),매수4(4000000);
var : Vol1(0),vol2(0),vol3(0),vol4(0);
var : X(0),xVol1(0),xvol2(0),xvol3(0);
var1 = ma(c,1);
var2 = ma(C,20);
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
vol1 = int(int((매수1)/C)/10)*10;
vol2 = int(int((매수2)/C)/10)*10;
vol3 = int(int((매수3)/C)/10)*10;
vol4 = int(int((매수4)/C)/10)*10;
}
Else{
vol1 = int((매수1)/C);
vol2 = int((매수2)/C);
vol3 = int((매수3)/C);
vol4 = int((매수4)/C);
}
if MarketPosition == 0 and C > O and var1 <= var2*0.8 Then
buy("b1",OnClose,def,vol1);
if MarketPosition == 1 Then{
if MaxEntries == 1 Then
buy("b2",atlimit,AvgEntryPrice*(1-Per/100),vol2);
if MaxEntries == 1 Then
buy("b3",atlimit,AvgEntryPrice*(1-Per/100),vol3);
if MaxEntries == 1 Then
buy("b4",atlimit,AvgEntryPrice*(1-Per/100),vol4);
}
if MarketPosition == 1 Then{
if CodeCategoryEx == 11 and BasePrice < 50000 Then{
xvol1 = int(int(MaxContracts*0.5)/10)*10;
xvol2 = int(int(MaxContracts*0.5)/10)*10;
xvol3 = int(int(MaxContracts*0.5)/10)*10;
}
Else{
xvol1 = int(MaxContracts*0.5);
xvol2 = int(MaxContracts*0.5);
xvol3 = int(MaxContracts*0.5);
}
if CurrentContracts < CurrentContracts[1] Then
x = x+1;
if X == 0 Then
ExitLong("bx1",AtLimit,AvgEntryPrice*1.03,"",Xvol1,1);
if X == 1 Then
ExitLong("bx2",AtLimit,AvgEntryPrice*1.05,"",Xvol2,1);
if X == 2 Then
ExitLong("bx3",AtLimit,AvgEntryPrice*1.10,"",Xvol3,1);
if MaxEntries == 4 Then
ExitLong("bx",AtStop,AvgEntryPrice*0.9);
}
Else
X = 0;
즐거운 하루되세요
------------------------------------------------------------------------------
2014-09-27
166
글번호 78878