커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
4718
글번호 230811
지표

자라도 님에 의해서 삭제되었습니다.

프로필 이미지
자라도
2015-12-04
0
글번호 93068
시스템
답변완료

함수변경요청(12-1호)

안녕하세요? 아래의 함수에서는 매도가 먼저 매수가 나중에 쓰여져 있습니다. 이것을 매수가 먼저 매도가 나중에 오도록 식을 수정하고 싶습니다. 즉 현재는 s1,s2,b 이렇게 나와있는데 b,s1,s2 이렇게 바꾸고 싶습니다. var : entry(0),NP(0),NP1(0),NP2(0); var : ho(0),OL(0),HL(0); var : maho(0),maOL(0),maHL(0); var : cnt(0),sumho(0),sumOL(0),sumHL(0); var : EntryCnt(0),cond1(false); var : V1(0),V2(0),V3(0),V4(0),V5(0),V6(0),V7(0),V8(0),V9(0),V10(0); NP = NetProfit; if bdate != bdate[1] Then{ entry = 0; NP1 = NP[1]; NP2 = NP1[1]; Cond1 = true; if NP1 > NP2 Then cond1 = false; } if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; ho = Dayhigh-Dayopen; OL = DayOpen-DayLow; HL = DayHigh-DayLow; sumho = 0; sumOL = 0; sumHL = 0; for cnt = 1 to 10{ sumho = sumho + (dayhigh(cnt)-dayopen(cnt)); sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt)); sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt)); } maho = sumho/10; maOL = sumOL/10; maHL = sumHL/10; V1 = dayopen(0)+maho; V2 = DayOpen(0)-maOL; V3 = DayOpen(0)+maHL; V4 = DayOpen(0)-maHL; V5 = NthMaxList(1,V1,V2,V3,V4); V6 = NthMaxList(2,V1,V2,V3,V4); V9 = NthMaxList(3,V1,V2,V3,V4); V10 = NthMaxList(4,V1,V2,V3,V4); V7 = (V5+V10)/2; V8 = (V6+V9)/2; if MarketPosition == 0 and entry == 0 and cond1 == true Then{ if V7 > V8 Then sell("s1",AtStop,V7-0.02); if V7 < V8 Then sell("s2",Atlimit,V8-0.02); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("sp1",atlimit,V9-0.03); ExitShort("sl1",AtStop,V6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("sp2",atlimit,V9-0.03); ExitShort("sl2",AtStop,V6); } var : TF(0); var : Xtime(0), Etime(false),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 060000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/2; var2 = (HV1+LV1)/2; var3 = (HV2+LV2)/2; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then buy("b",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); } SetStopLoss(0.8,PercentStop); SetStopProfittarget(3,PercentStop); SetStopInactivity(3,23,PercentStop);
프로필 이미지
통큰베팅
2015-12-04
140
글번호 93067
시스템
답변완료

수식 좀 부탁드립니다.

RSI(20) 이 10봉 연속 0 이상일 경우 매수(Buy)하고 RSI(20) 이 0을 Crossdown 할 경우 매도(EXitlong) 하는 수식을 짜고 싶습니다~~
프로필 이미지
월척
2015-12-04
127
글번호 93066
시스템
답변완료

자동매매와 잔고 관련 질문입니다.

항상 자세한 답변에 감사합니다. 세 분류의 질문 드리겠습니다. <자동매매 관련> 1. 자동매매로 해놨는데 증거금이 부족하면 어떻게 되나요? 전략차트는 신호만 전달하는 것이니 차트에 시그널이 날때마다 증거금 부족과 상관없이 증권사로 매매 주문은 지속적으로 전달을 하나요? <잔고에 대한 질문> 2. 위탁증거금과 예수금의 차이가 뭔가요? 어떤 계좌에 5000만원을 넣어두기만 하고 포지션 진입이 안돼 있으면 위탁증거금과 예수금은 둘다 5000만원 인가요? 3. 이 계좌에서 증거금이 1500만원인 선물 1계약을 매수취하면 위탁증거금과 예수금은 각각 얼마가 되나요? <잔고함수 질문> 예스스팟이 아닌 랭귀지 기준으로 질문 드립니다. 해외선물 이용시 질문드립니다. 4. 잔고 관련 함수는 실제 계좌를 조회한 값을 기반으로 하지요? 이것 역시 예스스팟처럼 15초에 60번까지만 조회가 되는 것인지요? 5-1. GetOpenOrderInitialMargin(지정한 계좌의 위탁증거금) 함수의 리턴값이 뭔가요? 원화인가요 달러인가요? 대부분의 증권사가 원화만 계좌에 넣어놓으면 실제 환전없이 달러 증거금으로 인정해주는 제도도 있고, 또 원화와 외화가 동시에 존재하는 경우가 많기 때문에 그럽니다. 5-2. 이 함수 예제가 아래와 같이 돼 있는데 var : Account(""),InitialMargin(0); Account = getAccount(0); InitialMargin = GetOpenOrderInitialMargin(Account); # 0순위 계좌의 위착증거금 그러면 여기서 '지정한 계좌'라는게 있어야 할텐데 '계좌순서 설정'이라는 창을 찾으면 거기 나온 순서대로 0,1,2.... 이렇게 가나요? 만약 계좌가 1개뿐이라면 그냥 0 을 넣으면 되나요? 6-1. GetPositionQuantity(지정한 계좌의 지정한 종목의 보유수량) 이 함수에는 종목코드를 넣어야 하는데 '들어갈 종목코드'를 조회하는 창도 찾으면 있나요? 증권사마다 동일 종목이라도 종목 코드가 다른 경우가 있기 때문에 그럽니다. 6-2. 만약, 오일의 내년 3월물 1계약, 6월물 1계약을 가지고 있다고 했을때 이 함수에 연결선물 코드를 넣으면 어떻게 되나요? 그냥 통합해서 2계약 갖고 있다고 리턴하나요? 7. GetUnclearedDeposits(지정한 계좌의 예수금) 리턴값이 원화인가요, 달러인가요, 원화로 환산 총액인가요? 해외선물 계좌의 경우 한 계좌 내에 원화와 달러,유로,엔화 등이 동시에 존재하는 경우가 많아서 그럽니다.
프로필 이미지
로봇짱
2015-12-04
170
글번호 93065
사용자 함수
답변완료

수식좀 부탁드립니다.

1. 주가가 5일선이동평균선을 돌파시점부터 10일선이동평균선을 돌파즉시 시장가로 보유포지션 일괄청산후 매수진입하고, 주가가 5일선이동평균선을 이탈시점부터 10일선이동평균선을 이탈즉시 시장가로 보유포지션 일괄청산후 매도진입을 반복적으로 실행되는 수식. 2. 5일선이동평균선이 10일선이동평균선을 돌파즉시 시장가로 매수진입후 설정시간(5분)후에 반대신호 출현시 시장가로 보유포지션 일괄청산후 시장가로 매도진입을 반복적으로 실행되는 수식. 3. 실행차트에서 5일선 이동평균선과 20일선이동평균선에서 Y축스케일 가격이 오른쪽에 현재값처럼 나올수 있게하는 수식이 가능하다면 이것도 부탁드립니다.
프로필 이미지
알러뷰
2015-12-04
126
글번호 93064
시스템

대발이 님에 의해서 삭제되었습니다.

프로필 이미지
대발이
2015-12-03
9
글번호 93063
지표
답변완료

부탁 드립니다.

부탁 드릴때 마다 만족한 수식으로 항상 도움 주셔서 깊은 감사로 고마움을 전해 드립니다. 질문1) 다음수식은 08:00~익일07:00까지 지표가 표시됩니다. 이것을 당일의 15:30~21:30(유럽장)의 시간대만 표시 부탁 드립니다. 질문2) _eFriend yt 차트하단의 한국시각 표시를 미국시각으로 표시 가능한지요? _아울러 현대 yt에서 미국 시각을 한국시각으로 표시 가능한지요? 수식) var:a(0),b(0),k(0); a=dayhigh; b=daylow; k=a-b; plot10(a,"dayhigh"); plot15(k*0.618+b,"61.8%"); plot17(k*0.5+b,"50%"); plot18(k*0.382+b,"38.2%"); plot20(b,"daylow"); 참고수식) INPUT : 시작시간(153000),끝시간(213000); Var : cond(false),V1(0); if sdate == CurrentDate and (stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간)) then{ cond = true; V1 = RSI(14); } if stime == 끝시간 or (stime > 끝시간 and stime[1] < 끝시간) Then Cond = false; if Cond == true Then var1 = rsi(14)-V1; Else var1 = 0; if cond == true then{ plot1(var1); PlotBaseLine1(0,"0"); }
프로필 이미지
yes
2015-12-04
157
글번호 93061
지표
답변완료

운영자님, 수식 하나 여쭙겠습니다.

해외선물 크루드오일 10분봉 서울시간 기준. 18:00 시가 ~ 20:00종가 까지 움직인 폭을 A라고 하였을 때, (예> 18:00 시가 -> 40.50, 20:00 종가 -> 41.00이면 움직인 폭은 0.50) 18:00 시가 ~ 20:00종가의 고점에서 위로 움직인 변동폭 A만큼 돌파하면 매수진입 18:00 시가 ~ 20:00종가의 저점에서 아래로 움직인 변동폭 A만큼 돌파하면 매도진입 진입제한시간은 새벽3시까지,매매는 하루1회, 익절1.00(100틱) 손절 0.70(70틱) 부탁 좀 드리겠습니다.
프로필 이미지
정호열
2015-12-03
121
글번호 93060
시스템
답변완료

문의 부탁 드립니다!

문의 드립니다. 전일 고가, 저가, 종가, 당일 시가 다섯 가지의 선 중에서 당일 시가가 가장 위에 있는 경우에만 시가 기준 위로 0.50p에 매수 진입. 가장 아래쪽에 있을 경우에만 시가 기준 아래로 0.50p에 매도 진입 하는 시스템 수식을 부탁 드립니다. (위의 두가지 경우에만 진입을 합니다.) 이익실현 0.50p, 손절 0.50p. 추가적으로 청산 후에 다시 진입선에 닿으면 재진입을 시도하는 것도 부탁드립니다. 위 수식에 주석도 함께 부탁 드릴께요! 감사합니다!
프로필 이미지
sw
2015-12-03
108
글번호 93059
시스템