커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드림니다.

안녕하세요.주봉의 라인구현좀해주세요 1.전주의고점라인 2.전주의저점라인 3.전주의시가라인 4.전주의종가라인 5.전주의중심가격라인(고점+저점)/2 수고하세요.꾸벅
프로필 이미지
보인다
2015-11-11
122
글번호 92319
지표
답변완료

질문입니다.

선물에서 시스템을 작성하고자 합니다. 예를들어 한 시스템에서는 Long만 작성을 하고, Short 시스템으로 하나의 시스템을 작성하고 각각의 창에서 시스템을 걸었다고 한다면, 양매수가 가능한가요? 예를들면 Long 시스템에서 신호가 나오고, 동시에 Short에서 신호가 나와서.. 동시에 Long과 Short이 계좌에 들어가있는 경우가 가능한지 궁금합니다.
프로필 이미지
yanartas
2015-11-11
107
글번호 92318
시스템
답변완료

44971번글 관련 수정식 검토 부탁드립니다.

안녕하세요. 보내주신 시스템식에서 4가지 조건을 모두 만족할때 "매수이평기간(15)" 즉, 15일 이평선에서 매수하는 시스템식은 제가 구현하려는 식과 맞지가 않아, 15일 이평선에서 매수하는 내용만 빼고, 기존 시스템식에서 참조데이타(코스피 or 코스닥 지수)를 참조하여 지수가 전일대비 -3% 이상 하락시 보수적으로(매수비중관리) 매수하는 시스템식만 추가하여 사용하려고 아래와 같이 제가 수정해 보았는데, 매수신호가 너무 많이 잡히네요. 잘 되지를 않습니다. 검토 부탁드립니다. 제가 수정한 식은 아래와 같습니다. -------------------------------------------------------------------------------------- input : 전략식시작일자(20150105), 전략식시작시간(090000), 전략총매수금액1(3000), 전략총매수금액2(2500); input : data2N(1),Data2전일대비등락률(-3); input : 전략식종료일자(20151231); input : 갭하락(5), 시장보정계수(0),일봉이평기간(120),이평보정계수(0); input : P(5), 매수위치1차(5), 매수위치2차(5), 매수위치3차(10); input : 매수위치보정(1); input : 매도위치1차(5), 매도위치2차(10); input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35); input : 매도비중1차(50), 매도비중2차(50); input : 전략식진입횟수(100), 타점보유일수(5); var : sum(0,data1),mav(0,data1),cnt(0,data1),eup(0,data1),edn(0,data1); var : Didx(0,data1),LatestEntryDidx(0,data1),Ecnt(0,data1); var : TimeCond(false,data1),Xcond1(false,data1),Xcond2(false,data1),Loss(0,data1),LatestEntrylow(0,data1); var : Period(0,data1),매수1차(0,data1); var : cum1(0,data1),cum2(0,data1),ma1(0,data1),ma2(0,data1),ma3(0,data1); var : D2rate(0,data2),전략총매수금액(0,data1); #data2의 data2N일전 대비 등락율 D2rate = data2((C*CloseD(data2N))/CloseD(data2N)*100); #전략총매수금액은 전략총매수금액1이 기본 #data2 등락률이 Data2전일대비등락률이하이면 #전략총매수금액은 전략총매수금액2 전략총매수금액 = 전략총매수금액1; if D2rate <= Data2전일대비등락률 Then 전략총매수금액 = 전략총매수금액2; # 일자수 계산 if date != date[1] Then Didx = Didx+1; # 일봉 120이평 계산(전일기준,전전일기준) cum1 = 0; cum2 = 0; for cnt = 1 to 일봉이평기간{ cum1 = cum1+DayClose(cnt); cum2 = cum2+DayClose(cnt+1); } # 전일기준 일봉 120일이평 ma1 = cum1/일봉이평기간; # 전전일기준 일봉 120일이평 ma2 = cum2/일봉이평기간; #기본값은 기간은 P, %는 매수위치1차 Period = P; 매수1차 = 매수위치1차; #갭하락이면 #기간은 기존Period값+시장보정계수 #%는 기존 매수1차값에 + 시장보정계수 if dayopen < DayClose(1)*(1-갭하락/100) Then{ Period = Period + 시장보정계수; 매수1차 = 매수1차 + 시장보정계수; } #이평하락이면 #기간은 기존Period값+이평보정계수 #%는 기존 매수1차값에 + 이평보정계수 if ma1 < ma2 and DayClose(일봉이평기간+1) > 0 Then{ Period = Period + 이평보정계수; 매수1차 = 매수1차 + 이평보정계수; } #당일포함 일봉 Period개의 종가를 누적 sum = 0; for cnt = 0 to Period-1{ sum = sum+DayClose(cnt); } #누적값을 Period로 나누어 평균값 산출 mav = sum/Period; #상단계산 Eup = mav+mav*(매수1차/100); #하단계산 Edn = mav-mav*(매수1차/100); #지정일 지정시간이 되면 TimeCond는 True(그전에는 false) if sdate == 전략식시작일자 and (stime == 전략식시작시간 or (stime > 전략식시작시간 and stime[1] < 전략식시작시간 )) then TimeCond = true; if sdate > 전략식종료일자 Then TimeCond = false; #TimeCond가 True가 된 후 if TimeCond == true then{ if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "1차매수" Then Ecnt = Ecnt+1; #무포지션 상태에서 매수위치1차에 도달하면 매수 if MarketPosition == 0 and Ecnt < 전략식진입횟수 and stime < 144200 Then buy("1차매수",atlimit,ma3*(1+매수위치보정/100),Floor((전략총매수금액*10000/c)*(매수비중1차/100))); #첫매수이후 if MarketPosition == 1 Then{ #추가진입이 발생하면 1차매도가 다시 발생할수 있도록 false로 초기화 if CurrentContracts > CurrentContracts[1] Then Xcond1 = false; #최근 진입시점의 일자수 저장 if CurrentContracts > CurrentContracts[1] Then{ LatestEntryDidx = Didx; LatestEntrylow = L; } #1차매수 발생 후 매수위치2차에 도달하면 매수 if MaxEntries == 1 and stime < 144200 Then buy("2차매수",atlimit,ma3[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략총매수금액*10000/c)*(매수비중2차/100))); #1차매수 발생 후 매수위치3차에 도달하면 매수 if MaxEntries == 2 and stime < 144200 Then buy("3차매수",atlimit,ma3[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략총매수금액*10000/c)*(매수비중3차/100))); #1차매도가 한번 발생하면 더이상 발생못하도록 Xcond1은 true if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "1차매도") then Xcond1 = true; #2차매도가 한번 발생하면 더이상 발생못하도록 Xcond2는 true if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "2차매도") then Xcond2 = true; #Xcond1이 false일때 #진입이후 최저가에서 매도위치1차 만큼 상승하면 일부 청산 if Xcond1 == false and stime < 144200 Then exitlong("1차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치1차/100),"",Floor(MaxContracts*(매도비중1차/100)),1); #Xcond2가 false일 #진입이후 최저가에서 매도위치2차 만큼 상승하면 전량청산 if Xcond2 == false and stime < 144200 Then exitlong("2차매도",Atlimit,lowest(L,BarsSinceEntry)*(1+매도위치2차/100)); #최근 진입후 3일이상 경과(현재 일자수가 최근진입시점의 일자수보다 3이상증가) if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then{ #최근 진입이후 3일되었을때의 최근진입일 포함3일 최저가 계산 if date != date[1] and Didx == LatestEntryDidx[BarsSinceEntry]+3 Then{ Loss = daylow(1); for cnt = 1 to (타점보유일수-1) { if daylow(cnt) < Loss Then Loss = daylow(cnt); } } #Loss값 이하로 가격하락하면 전량 청산 exitlong("손절",AtStop,Loss); } #최종 매수일 포함 5일경과되면 다음날 시가에 매도 if Didx == LatestEntryDidx+(타점보유일수-1) and stime == 150000 Then{ exitlong("익절2",AtMarket); } # 1차매도가 발생한 상황 # 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산 # if L < LatestEntrylow and Xcond1 == false Then # LatestEntrylow = L; # if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then{ # exitlong("익절1",AtStop,LatestEntrylow); # } } else{ #매수포지션이 아니면 false로 초기화 Xcond1 = false; Xcond2 = false; } }
프로필 이미지
종풍화성
2015-11-11
152
글번호 92317
시스템

세발낚지 님에 의해서 삭제되었습니다.

프로필 이미지
세발낚지
2015-11-12
22
글번호 92316
지표
답변완료

일봉상에서

예스글러벌 일봉차트를 사용하여 시스템매매를 하던 중 전일의 매도 잔고가 있는 상황에서 당일 중 1. 매도청산 2. 매수 3. 매수청산 4. 매도 의 단계적인 4회 신호발생 후 (실제로 실거래도 이루어 졌음) 조건이 성립하여, 매도청산 / 매수 의 신호가 발생 하여야 할 상황인데 매도청산 / 매수신호가 발생 하지 아니 하였습니다. 시스템을 검토 하던 중 황당하게도 시스템 성능 보고서 상에는 지금까지 거래단계별로 보고서상 표시 되었던 3,4 의거래 상황이 완전 삭제되어 없어지고 2 번거래 후에는 다른 신호가 발생하지 않은 것처럼 상황이 전개되다가 서너시간 후 지수가 상승 하다 다시 하락하자 아래의 3,4,5,6의 거래가 없이 7,8번의 거래가 발생 한것으로 나타났습니다. 실제 거래상황은 1. 매도청산 2. 매수 3. 매수청산 4. 매도 5. 매도청산 6. 매수 7. 매수청산 8. 매도 와 같이 당일 중 8 회의 거래가 전개되어야 맞습니다. 그런데 차트상이나 성능보고서상에는 3,4,5,6 번의거래가 없고 서너시간 후 7,8 번의 거래가 발생 된 것으로 되어 있습니다. (이러한 상황은 실거래가 아니였으면 알 수 없었을 것임) 만일 시스템편집에 오류가 있다거나 아니면 오류가 없는데도 어떤 이유에서 4번 신호 후에 신호가 발생하지 아니 하였다면 실제로 발생하였고 성능보고서상에도 기존의 기록으로 표시 되었던 3,4 의 거래상황은 이후에도 보고서상에 남아 있어야 하는게 아닌가요? 왜? 삭제되고 없는지 참으로 이해 할 수 없는 상황입니다. 무슨 이유인지 좀 알려 주세요! 일봉차트상에도 실거래와 같이 매도청산 / 매수(1,2 번의 거래) 매수청산 / 매도(3,4 번의 거래) 신호가 나왔었는데, 5,6 번의 신호가 발생 할 순간에 매수청산 / 매도 신호(3,4번거래)가 없어져 버리고 나서 2 번의 거래상황 이후가 그대로 이어지는것처럼 전개되다가 수 시간 동안의 상황이 지수가 상승 후 다시 하락하자 3,4,5,6 번의 신호는 발생하지 아니하고 위의 7,8 번의 거래가 1,2 번의 거래 후에 바로 발생 한 것처럼 시스템성능보고서와 같이 차트상에도 동일하게 표시 되어졌습니다. (이러한 상황은 일봉차트의 성능보고서상에는 거래 시간이 나타나지 않기 때문에 실거래를 해보지 않고는 알 수 없는 상황임) 하도 황당하여 10 여년의 시스템성능보고서를 확인 하여보니 어떠한 횟수제한도 시스템편집상에는 하지 않았는데도, 단 한차례도 1일 4회이상 신호가 발생한 내역이 없습니다. 일봉차트에서도 표시 된 신호 역시 마찬가지 입니다. 횟수제한을 하지 않는 한 1일 4회이상 신호발생이 한번도 없다고는 볼수 없을 겁니다. 그러하다면 단순 작동오류는 아닌것 같습니다. 예스글러벌의 프로그램상 일봉상에서는 1일 4회 이상의 신호 발생이 불가하도록 되어 있는 것인가요? 아니면 예스글러벌의 원천적인 프로그램 오류인가요? 신뢰 할 수 없는 차트로 시스템매매를 한다는 것은 상상 할 수도 없는 일입니다. 일봉상 1일 4회이상 신호가 발생하는지를 간단한 시스템식으로 예스글러벌차트을 검증하여 보시기바랍니다. 확인이 가능 하리라고 봅니다. (일봉차트 외에는 동일 시스템으로 실거래를 해보지 아니하여 잘 모르겠으나, 분봉에서도 시믈레이션상으로는 동일한 봉에서 4회이상의 신호가 발생하지 않는 것으로 표시 됨)) 그러 하다면 앞으로 예스글러벌 일봉차트에서 횟수에 관계없이 실제 상황과 일치하도록 1일 몇번이고 신호가 발생 하도록 하려면 어떻게 하면 됩니까? (참고사항 : 현재 예스글러벌일봉차트를 이용하여 해외선물을 시스템매매 하고 있습니다)
프로필 이미지
너무조아
2015-11-12
179
글번호 92315
시스템
답변완료

수식을 문의 드립니다.

input : p(0.25) buy("buy", atlimit, 250 + P ) ?? 예를 들어 250에서 251까지 상승했다고 할때 총 20호가가 상승했는데요 5호가마다 주문을 내고자 합니다. close 가 아니고 5호가 오르면 즉시 매수 주문을 내고자 합니다. 그래서 250에서 251까지 상승하면 총 4개의 주문이 나가게 됩니다. 만약 250에서 252까지 상승하면 총 8개 주문이 나가게 되는겁니다. 총 매수 제한은 10개까지만 할것이고요. 또한 6개까지 모았는데 어떤 조건이 되어서 6개 모두를 터는 수식과 이렇게 청산하고 나면 더이상 주문이 나가지 않게 하는 수식또한 부탁합니다. 항상 수고하십니다.
프로필 이미지
알고리즘
2015-11-11
156
글번호 92313
시스템
답변완료

문의 드립니다.

안녕하세요. 1. 지표식에서 날짜가 바뀌면 전일 마지막 봉부터 N(20)번째 봉의 value값을 오늘 첫 봉의 value값으로 바꿔주고 싶습니다. 2. 현재 포지션이 매수(b1)이고 2개 이상을 보유중일 때 1개 이상을 익절(익절1차)했으면, 남은 갯수를 목표 수익에 익절(익절2차)하는데, 익절2차까지 가지 못하고, 진입가와 익절1차 이후의 최고가의 50%로 내려오면 트레일링 스탑 수식 부탁드립니다. 3. if Bdate != bdate[1] or (Bdate == Bdate[1] and stime < 150000 and TF < TF[1]) Then{ 무슨 뜻인가요? 그리고 bdate 는 뭔가요? 매뉴얼에서 검색해도 나오지가 않아서 궁금합니다. 4. exitlong("bp31",Atlimit,EntryPrice+abs(daypl)+PriceScale*10,"",floor(MaxContracts*0.5),1); 여기서 daypl이 당일 손익 누적액인데요, messagelog로 값이 얼마인지 확인할 수 있나요? 의도대로 청산이 이루어지지 않아서 daypl 값이 궁금합니다. 값을 알수 있으면 해당 수식도 부탁 드립니다. 감사합니다.
프로필 이미지
고운무지개
2015-11-11
165
글번호 92312
지표
답변완료

선물 매매시스템 수식 부탁드립니다.

선을 기준으로 매매를 할 예정인데. 기준이 되는 선의 경우 아래와 같이 정의합니다. var1=(dayhigh+daylow)/2; (고점과 저점의 평균선) plot1=(var1,"중앙선");로 설정합니다. 선을 상향돌파하면 매수진입, 하향돌파하면 매도진입 9시 5분이후 6분봉부터 시스템을 시작하며 하루에 총 5번 플레이, 청산은 15:00입니다. 한번에 진입은 한번씩하며 이전 진입이 청산되기전까지는 진입하지 않습니다. 이익실현 0.5, 손절포인트 0.5입니다. 두서가 없긴한데 제대로 전달이 되었느지 모르겠습니다;; 혹시나 이해가 안되신다면 제가 다시금 정리해서 올리겠습니다. 잘 부탁드립니다. 감사합니다.
프로필 이미지
정호열
2015-11-11
170
글번호 92309
시스템
답변완료

로직 문의

volutility percent 로 옵션 10분봉 하고 있읍니다. 전일 봉을 의식하지 않고, 당일 첫봉부터 적용되게 수정 가능합니까? 예로, 당일 콜옵션 1.00에서 싯가가 되고, 이후 계속 상승하여 1.30이 되도, 만약, 전일 종가가 1.50이었다면, 당일 첫봉에서 매도신호가 뜹니다. 실제로는 당일 시가부터 지속 상승하여도, 매매신호는 전일종가 대비 당일 싯가가 크게 하락했으므로 매도신호가 뜹니다. 전일 종가는 상관없이 당일 싯가부터 적용하여 매매신호가 뜨게 수정 가능합니까?
프로필 이미지
초록이
2015-11-11
149
글번호 92305
시스템