커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4527
글번호 230811
답변완료
문의
항생에서 오전10시 15분을 당일 시작의 기준으로 시가 고가 저가 중심가
각값이 숫자로 표현되면서 시가 고가 저가 중심가라는 글이 나오게 부탁드립니다 .
그리고 글자크기와 색은 외부변수로 나오게 부탁드립니다
2019-04-28
213
글번호 128185
답변완료
수식에 문제 있는지 부탁좀 드려요
코스닥 연결선물지수에 변동성 돌파 전략을 적용해보려는데요
분봉기준입니다
# 매수조건
현재가가 오늘시가 + (전날 고가 - 전날 저가) * 0.5 상승 돌파할때 매수진입
현재가가 오늘시가 - (전날 고가 - 전날 저가) * 0.5 하강 돌파할때 매도진입
# 매도조건
당일 (15:10 청산)
if MarketPosition == 0 Then
buy("b",AtStop,dayopen+(dayhigh(1)-daylow(1))*0.5);
if MarketPosition == 0 Then
sell("s",AtStop,dayopen(0)-(DayHigh(1)-DayLow(1))*0.5);
if MarketPosition > 0 and sTime == 151000 Then
ExitLong("aa");
if MarketPosition < 0 and sTime == 151000 Then
ExitShort("bb");
이렇게 했는데 매수매도를 안하더라구요. 잘못된곳 있으면 수정부탁드려요
2019-04-28
210
글번호 128184
답변완료
부탁드립니다
수고하십니다
[1210]해외 옵션 종합시세표 있는데 옵션차트는 볼수없나요?
2019-04-28
217
글번호 128183
답변완료
수식수정 부탁드립니다.
1. 분할매수 수식인데요. 5분봉기준으로 했을때, 첫번째 매수를 아침 장 시작을 보합이나 마이너스로 시작할때는 바로 매수하는걸로 바꾸고 싶습니다. 그리고 2~3매수도 장중 마이너스 일때만 매수하는걸로 바꾸고 싶습니다.
--------------------------------------------------------
Input : 투자금액(10000000),Period(20), MultiD(2), short(12),long(26),sig(9),VP(20),P1(5),P2(24),P3(99),N(1), 시작일(20190429),시작시간(090000);
Input : loss(5);
var : MAv(0),e(0),x(0),cnt(0),count(0),Tcond(false),BBup(0),BBdn(0);
var : MACDV(0),MACDS(0),MACDO(0),Vma(0),Cma1(0),Cma2(0),Cma3(0);
var : HH(0),Bxcond1(false),Bxcond2(false),Bxcond3(false);
var : LL(0),Sxcond1(false),Sxcond2(false),Sxcond3(false);
Array : VV[5](0),XX[5](0);
MAv = ma(C,Period);
MACDV = MACD(Short,long);
MACDS = ema(MACDV,sig);
MACDO = MACDV-MACDS;
Vma = ma(v,VP);
Cma1 = ma(C,P1);
Cma2 = ma(C,P2);
Cma3 = ma(C,P3);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
vv[0] = floor((투자금액*0.1)/NextBarOpen);
vv[1] = floor((투자금액*0.2)/NextBarOpen);
vv[2] = floor((투자금액*0.3)/NextBarOpen);
vv[3] = floor((투자금액*0.4)/NextBarOpen);
if sdate >= 시작일 and stime >= 시작시간 Then
Tcond = true;
if Tcond == true then{
if (TotalTrades == 0 or MarketPosition == 0 and BarsSinceExit(1) > 2) then{
if MarketPosition == 0 and count < N and CrossDown(c,bbdn) and dayhigh < DayClose(1)*1.18 and stime < 150000 Then {
buy("b1",atmarket,def,vv[MaxEntries]);
}
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then{
e = e +1;
if e == 1 then
XX[e] = CurrentContracts;
Else
XX[e] = CurrentContracts-CurrentContracts[1];
}
#두번째 매수
if MarketPosition == 1 and e == 1 and count < N and CrossDown(c,bbdn) and dayhigh < DayClose(1)*1.18 and stime < 150000 Then{
buy("b2",atmarket,def,vv[MaxEntries]);
}
#세번재매수
if MarketPosition == 1 and e == 2 and count < N and CrossDown(c,bbdn) and dayhigh < DayClose(1)*1.18 and stime < 150000 Then{
buy("b3",atmarket,def,vv[MaxEntries]);
}
#네번재매수
if MarketPosition == 1 and e == 3 and count < N and CrossDown(c,bbdn) and dayhigh < DayClose(1)*1.18 and stime < 150000 Then{
buy("b4",atmarket,def,vv[MaxEntries]);
}
HH = highest(H,BarsSinceEntry);
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx1" Then
Bxcond1 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx2" Then
Bxcond2 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "Bx3" Then
Bxcond3 = true;
if Bxcond1 == false and HH >= EntryPrice*1.05 and HH < EntryPrice*1.08 Then
ExitLong("Bx1",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(1/5)),1);
if Bxcond2 == false and HH >= EntryPrice*1.08 and HH < EntryPrice*1.12 Then
ExitLong("Bx2",AtStop,HH-(HH-EntryPrice)*0.1,"",Floor(MaxContracts*(2/5)),1);
if Bxcond3 == false and HH >= EntryPrice*1.15 Then
ExitLong("Bx3",AtStop,HH-(HH-EntryPrice)*0.1);
#3번 매수후 평단가-5%면 전량 매도
if MaxEntries == 4 Then
ExitLong("b.out",AtStop,AvgEntryPrice*(1-loss/100));
}
Else{
e = 0;
X = 0;
Bxcond1 = false;
Bxcond2 = false;
Bxcond3 = false;
}}}
----------------------------------------------------------------
2. 위에서 수정된 수식을 바탕으로. 1번째 매수는 장시작 보합이나 마이너스일때 매수, 2~3번째 매수를 볼밴하단이 아닌 Williams'R이 95이상일때 매수, 이것또한 장중 마이너스일때 매수하는걸로 바꾸고 싶습니다.
첫 매수가 안이루어 지면 그 이후 매수는 이루어지지 않도록 하고 싶습니다.
그리고 쓸데없는 수식이나 오류가 들어가 있는 부분은 삭제혹은 수정좀 부탁드립니다... 너무 오랜만에 수식수정을 하려니 너무 어렵네요....
2019-04-29
216
글번호 128182
답변완료
등가옵션 기준 +-2 행사가 중에 특정 범위의 수치가 걸렸을 시 알람 소리 나게..
옵션에 특정수치(입력가능하게) +-5틱(변경가능) 범위 내로 오면 알람소리가 나게끔 하고 싶습니다.
하지만 그 특정수치가 어느 행사가에서 발생할지 모르기때문에
오늘의 콜풋 등가격(ATM) +-2 행사가로 한정짓고, 거기서 발생하면 소리나게끔요
그래서 첨부파일처럼 차트를 세팅해 놨는데, 이렇게 세팅해놓고 하면 되는건지 일단 알고싶구요
특정수치 입력값은 2개(추가가능). 오차범위도 설정가능하게끔요
예)
콜280(등행사가) 콜282(ATM+1) , 콜285(ATM+2), 콜277(ATM-1), 콜275(ATM-2)
풋280(등행사가) 풋282(ATM+1) , 풋285(ATM+2), 풋277(ATM-1), 풋275(ATM-2)
매일 등행사가 바뀔 수도 있으니 자동으로 등행사가 기준 차트가 변경되어야 함
(제가 첨부한 파일처럼 하면 되는건지요??)
****************
입력값1 : 3.00 (매일 혹은 매월 바뀌는 값)
입력값2 : 2.00 (매일 혹은 매월 바뀌는 값)
입력값+@
오차범위 : 5 (절대적이지 않으니 변경 가능하게)
****************
입력시
위 행사가 10개중 아무나 2.95~3.05 (오차범위가 5틱이니)범위안에 들면 알람소리 울림
위 행사가 10개중 아무나 1.95~2.05 (오차범위가 5틱이니)범위안에 들면 알람소리 울림
*알람소리는 예스트레이더 폴더내 파일 사용
2019-04-28
320
글번호 128181
답변완료
문의드립니다
체결 건 당 체결대금을 체크하는 수식을 만들고 싶은데,
1분봉 내에서 Tick 하나하나 검증하는 방법이 있을지 문의드립니다.
예를들어, 체결대금이 1,000 만원 이상인 거래가 10 회 이상 발생한 종목을
실시간으로 잡아낼 방법이 있을지요.
일일히 수많은 질문에 같이 고민하고 대답해주시느라
항상 수고많으십니다
2019-04-28
204
글번호 128180
답변완료
문의드립니다.
다음과 같은게 가능한지 여쭤봅니다.
거래량 20, 60, 120 이동평균 지표와
macd와 macd singal 지표가 있을때
거래량 20 ~ 240 역배열이고 macd > macd signal 인 봉에 강조를 하고 싶습니다.
강조식을 작성할때 위 만족식을 직접 다 작성하지 않고,
참조데이터를 작성하듯 차트아래 지표를 띄워놓고,
거래량 지표 20, 60, 120 데이터를 직접 지정하는 방식으로 수식을 작성할 수도 있나요??
2019-04-27
222
글번호 128179
답변완료
부탁드립니다
수고하십니다
참조데이터 ATM연결콜풋옵션,+1단계콜풋+2단계콜풋 합친챠트에 아래수식을 넣어도 선들이
나타나질 않습니다 어떻게 해야하나요
input : Price1(1.00),Price2(2.00),Price3(3.10),Price4(4.15),Price5(5.00),Price6(5.10),Price7(6.15),Price8(7.35),Price9(8.45);
var : tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0),tx7(0),tx8(0),tx9(0);
var : tl1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0),tl8(0),tl9(0);
if index == 2 Then{
tl1 = TL_New(sdate[1],stime[1],Price1,sdate,stime,Price1);
tl2 = TL_New(sdate[1],stime[1],Price2,sdate,stime,Price2);
tl3 = TL_New(sdate[1],stime[1],Price3,sdate,stime,Price3);
tl4 = TL_New(sdate[1],stime[1],Price4,sdate,stime,Price4);
tl5 = TL_New(sdate[1],stime[1],Price5,sdate,stime,Price5);
tl6 = TL_New(sdate[1],stime[1],Price6,sdate,stime,Price6);
tl7 = TL_New(sdate[1],stime[1],Price7,sdate,stime,Price7);
tl8 = TL_New(sdate[1],stime[1],Price8,sdate,stime,Price8);
tl9 = TL_New(sdate[1],stime[1],Price9,sdate,stime,Price9);
TL_SetExtRight(tl1,true);
TL_SetExtRight(tl2,true);
TL_SetExtRight(tl3,true);
TL_SetExtRight(tl4,true);
TL_SetExtRight(tl5,true);
TL_SetExtRight(tl6,true);
TL_SetExtRight(tl7,true);
TL_SetExtRight(tl8,true);
TL_SetExtRight(tl9,true);
}
Text_Delete(Tx1);
Text_Delete(Tx2);
Text_Delete(Tx3);
Text_Delete(Tx4);
Text_Delete(Tx5);
Text_Delete(Tx6);
Text_Delete(Tx7);
Text_Delete(Tx8);
Text_Delete(Tx9);
Tx1 = Text_New(sdate,stime,Price1,NumToStr(Price1,2));
Tx2 = Text_New(sdate,stime,Price2,NumToStr(Price2,2));
Tx3 = Text_New(sdate,stime,Price3,NumToStr(Price3,2));
Tx4 = Text_New(sdate,stime,Price4,NumToStr(Price4,2));
Tx5 = Text_New(sdate,stime,Price5,NumToStr(Price5,2));
Tx6 = Text_New(sdate,stime,Price6,NumToStr(Price6,2));
Tx7 = Text_New(sdate,stime,Price7,NumToStr(Price7,2));
Tx8 = Text_New(sdate,stime,Price8,NumToStr(Price8,2));
Tx9 = Text_New(sdate,stime,Price9,NumToStr(Price9,2));
Text_SetStyle(tx1,1,5);
Text_SetStyle(tx2,1,5);
Text_SetStyle(tx3,1,5);
Text_SetStyle(tx4,1,5);
Text_SetStyle(tx5,1,5);
Text_SetStyle(tx6,1,5);
Text_SetStyle(tx7,1,5);
Text_SetStyle(tx8,1,5);
Text_SetStyle(tx9,1,5);
#추세선 굵기
TL_SetSize(TL1,3);
TL_SetSize(TL2,3);
TL_SetSize(TL3,3);
TL_SetSize(TL4,3);
TL_SetSize(TL5,3);
TL_SetSize(TL6,3);
TL_SetSize(TL7,3);
TL_SetSize(TL8,3);
TL_SetSize(TL9,3);
TL_SetColor(TL1,BLACK);
TL_SetColor(TL2,BLACK);
TL_SetColor(TL3,BLACK);
TL_SetColor(TL4,BLACK);
TL_SetColor(TL5,BLACK);
TL_SetColor(TL6,BLACK);
TL_SetColor(TL7,BLACK);
TL_SetColor(TL8,BLACK);
TL_SetColor(TL9,BLACK);
2019-04-27
224
글번호 128178
답변완료
5분차트
5분차트에서 누적거래량을 2시간간격으로 상승거래량인지 하락거래량인지 표시하고싶은데요...
2019-04-27
227
글번호 128177