커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7436
글번호 230811
답변완료
문의드립니다.
안녕하세요 도움주심에 감사드립니다.
이전에 질문을 통해서 만기로 부터 연결옵션가격의 영업일을 따로 구하는 것은 불가능함을 알게 되었습니다
따라서 만기로부터 단순히 달력상 만기로 부터 몇 일 남았는지만 구할 수 있는 함수식을 우선 알고 싶습니다.
또한 외부입력변수를 받아서 변수값만큼 이전 만기에 동일한 달력잔존일수들의 값을 구하는 식을 알고 싶습니다. 예를들면 입력변수가 6과 10이라면 (2개를 외부입력받음) 이전 6개 옵션만기에서 동일하게 10일 잔존달력일수(만기일 - 지정된 날짜 = 달력상 잔존일 10) 의 옵션가격의 각각 값 또는 합계를 구할 수 있는 식을 알고 싶습니다.
어차피 첫번째 질문이 해결되야 두번째 질문이 나올 거 같습니다.
다시한번 감사드립니다.
2016-01-05
159
글번호 94049
답변완료
함수요청(갭)
안녕하세요?
함수요청드립니다.
Ⅰ. 전영업일 종가(=정산가)보다 당일의 시가가 50틱이상 갭 출발시,
1. 갭상승 출발시 시가매도 100틱 수익청산
2. 갭하락 출발시 시가매수 100틱 수익청산
3. 갭상승 출발시 시가매도 100틱 수익청산 후 전일 종가 매수 100틱 수익청산
4. 갭하락 출발시 시가매수 100틱 수익청산 후 전일 종가 매도 100틱 수익청산
Ⅱ. 전영업일 종가(=최종거래가)보다 당일의 시가가 50틱이상 갭 출발시
5. 갭상승 출발시 시가매도 100틱 수익청산
6. 갭하락 출발시 시가매수 100틱 수익청산
7. 갭상승 출발시 시가매도 100틱 수익청산 후 전일 종가 매수 100틱 수익청산
8. 갭하락 출발시 시가매수 100틱 수익청산 후 전일 종가 매도 100틱 수익청산
1~8번까지 각각의 독립된 시나리오로 작성 부탁드립니다.
새해 복많이 받으세요*^^*
2016-01-05
154
글번호 94048
답변완료
문의드립니다.
안녕하세요.
항상 친절한 답변에 감사드립니다.
아래 수식에 대한 설명 부탁드립니다.
1. RSI는 무엇인지 알지만, RSI_Y는 무엇을 의미하나요?
RSI_Y를 눈으로 보고 수식의 정상동작 여부를 확인하려면 "지표"중 무엇을 넣어야 하나요?
2. StochasticsK는 알지만, StochasticsKS는 무었을 의미하나요?
StochasticsKS를 눈으로 보고 수식의 정상동작 여부를 확인하려면 "지표"중 무엇을 넣어야 하나요?
3. time < inTime or inTime == 0 이면 000000~240000의 하루의 모든 시간이 True일것 같습니다.
time >= inTime or inTime == 0 이면 하루 중 조건에 맞는 시간이 000000만 존재 할 것 같습니다.
제가 잘못 이해한건지요... 설명 부탁드립니다.
4. Value1~Value8은 Var:로 선언을 하지 않았지만 Error가 발생하지 않습니다. 이유가 무엇인지요?
input : inTime(240000),exTime(240000);
var:매수조건(false),매도조건(false);
Value1 = RSI_Y(14);
Value2 = StochasticsKS(20,5);
Value3 = RSI_Y(21);
Value4 = StochasticsKS(12,5);
Value5 = RSI_Y(14);
Value6 = StochasticsKS(20,5);
Value7 = RSI_Y(25);
Value8 = StochasticsKS(12,5);
매수조건 = ((time < inTime or inTime == 0) and
Value1 <= 45 and Value2 <= 14 and Value3 <= 45 and Value4 <= 8) or
((time >= inTime or inTime == 0) and
Value5 <= 45 and Value6 <= 16 and Value7 <= 45 and Value8 <= 10);
매도조건 = ((time < inTime or inTime == 0) and
Value1 >= 55 and Value2 >= 86 and Value3 >= 55 and Value4 >= 92) or
((time >= inTime or inTime == 0) and
Value5 >= 55 and Value6 >= 84 and Value7 >= 55 and Value8 >= 90);
2016-01-05
144
글번호 94047
답변완료
매매함수 진행 질문입니다.
항상 명쾌한 답변에 감사드립니다. 질문 드리겠습니다. 단답형으로 답변주셔도 좋습니다.
Buy, Sell 함수는 기존에 포지션이 있으면 그것을 청산하고 진입 주문 내는 것으로 알고 있습니다.
1. 그러면 기존에 매수 2계약을 갖고 있는 상태에서 Sell(2계약) 신호를 만나면 '매수청산 2계약 주문->매도진입 2계약 주문'이 나가는 것이지요?
2. 그런데 기존에 매수 2계약을 갖고 있었으나 Sell(4계약) 신호를 만나면
첫째 '매수청산 2계약 주문->매도진입 4계약 주문'
둘째 '매수청산 4계약 주문->매도진입 4계약 주문'
둘 중 뭐가 진행되나요?
2016-01-04
132
글번호 94046
답변완료
특정봉 이후
아래 조건에 맞는 수식을 부탁 드립니다.
input : P(0),K(0);
var1 = ma(c,P);
var1 + k 값을 상향 돌파 한 봉을 u1 봉이라 하고
var - k 값을 하향 돌파 한 봉을 d1 봉 이라 하면
1. u1 봉 이후 현재의 N 번째 봉 까지 d1 봉이 발생 하지 아니하면 N 봉의 종가에 매수진입.
2. d1 봉 이후 현재의 N 번째 봉 까지 u1 봉이 발생 하지 아니하면 N 봉의 종가에 매도진입.
2016-01-04
128
글번호 94045
답변완료
문의드립니다..
안녕하십니까..
1- 많은 발생 신호중에서
3번째 또는 신호 5번째 신호만 진입하도록
할 수도 있습니까..?
2- 진입만 기계적으로 하고
청산은 손으로 하도록 할 수도 있습니까...?
감사합니다..
2016-01-04
146
글번호 94044
삼족오 님에 의해서 삭제되었습니다.
2016-01-05
19
글번호 94043
답변완료
부탁드립니다
새해 복많이 받으세요.^^*
If marketposition==1 and IsEntryname("b33")==True and 진입바로다음봉이음봉 Then{
Exitlong();
}
위에 적힌 한글을 어떻게 표현해야 하는지요.
부탁드립니다.
2016-01-04
136
글번호 94042
답변완료
수식요청드립니다.
안녕하세요.
새해복많이 받으세요.
1. stime >= 090100 && stime <= 100330 을, 장시작 후 1분 부터 1시간3분30초 까지 수식
으로 변경 요청 드립니다.
2. 아래 당일진입횟수제한, 피라미딩진입 진입적용 수식에서, 매도 매수 당일손실제한으로
손절될 경우, 1회 추가 진입 청산 수식으로 수정 보안 변경 요청 드립니다.
=> 매도, 매수, 당일손실제한 손절 청산시 손절 방향 무관하게, 1회 재진입
=> 10 이평이 20 이평 하향돌파시 매도 재진입 / 상향돌파시 매수 재진입
=> 1회 재진입시 손절 0.5 PT 청산, 익절 1.0 PT 청산,
( 제가 수정 추가한 아래 추가진입 수식으로 적용시 오류로 진입 청산이 잘 안되네요.)
------------------------------------------------------------------------------
input : N(1),PN(2),당일손실(1.0),i증감(0.3),진입수량(1);
var : cnt(0),BCount(0),SCount(0);
var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0);
var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0);
var : Bxcond(false),SxCond(false);
var : TT(0),KK(0),DD(0);
NP = NetProfit;
if date != date[1] Then{
preNP = NP[1];
Condition1 = false;
v1 = 0;
}
dayPL = NP-PreNP;
BCount = 0 ;
SCount = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then
BCount = BCount + 1;
if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then
SCount = SCount + 1;
}
if Condition1 == false and TotalTrades > TotalTrades[1] Then{
Condition1 = true;
if PositionProfit(1) > 0 Then
v1 = PositionProfit(1);
}
//-------------------------------------------------------------------------
if MarketPosition == 1 Then{
ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts);
}
if MarketPosition == -1 Then{
ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts);
}
//------------------------------------------------------------------------------------------------------
if MarketPosition == 1 and Bxcond == false Then
Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량);
if MarketPosition == -1 and SxCond == false Then
sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량);
//-----------------------------------------------------------------------------------------------------
#추가진입
if MarketPosition == 0 and TotalTrades > TotalTrades[1] and BCount+SCount < PN and
IsExitName("당일손실제한sx3",2) == true or
IsExitName("당일손실제한bx3",2) == true Then{
if Crossup(ma(c,10),ma(C,20)) Then
Buy("BB",AtMarket);
if CrossDown(ma(C,10),ma(C,20)) Then
Sell("SS",AtMarket);
if MarketPosition == 1 and IsEntryName("BB") == true Then
ExitLong("BL1",AtStop,avgEntryPrice-0.5);
ExitLong("BP1",AtLimit,avgEntryPrice+1.0);
if MarketPosition == -1 and IsEntryName("SS") == true Then
ExitShort("SL1",AtStop,avgEntryPrice+0.5
ExitShort("SP1",AtLimit,avgEntryPrice-1.0);
}
//------------------------------------------------------------------------------------------------------
2016-01-04
185
글번호 94030