커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 드립니다.

지표를 임의로 만들었는데 .. 지표에 시, 고, 저, 종 이 다 나오는데 선 그래프로만 볼 수 있네요.. 이것을 음양도로 바꿀 수 있나요? 답변 부탁 드립니다. 감사 합니다.
프로필 이미지
지킴이
2015-11-20
164
글번호 92619
지표
답변완료

재문의드립니다..

if bdate != bdate[1] Then{ Condition1 = false; TL_New(sdate,stime,9999999,sdate,stime,0); } 적어주신대로 위와같이했는데 수직선이 10시에 안나오고 17시10분에 나옵니다. 10시에 나오는 수직선이 필요합니다..
프로필 이미지
느긋하게
2015-11-20
167
글번호 92618
지표
답변완료

영업일종가

위차트에 아래와 같은 수식을 적용 하면 종가값으로 표시되는 직선(일자그래프) 부분의 크로스 뿐만아니라 사선부분(세로직선으로 표시한부분의 신호)의 크로스부분도 신호가 발생 합니다. 이를 종가값의 직선(일자그래프)부분의 크로스만 신호가 발생 하도록 수식을 변경하여 주십시요. Input : P1(0); var : PL(0); var1 = ema(c,P1); PL = DayClose(1); If CrossUp(var1,PL) Then Buy("b",AtMarket); If CrossDown(var1,PL) Then Sell("s",AtMarket);
프로필 이미지
너무조아
2015-11-20
172
글번호 92617
시스템
답변완료

문의드립니다

input : aa(3); var : cnt(0),count(0),count1(0); count= 0; For cnt =0 to 5 Begin if h == h[cnt] Then count = count + 1; count1 = count + h; end var1 = (count); Plot1(var1); 문의드립니다 위의수식을 형식으로 부탁드립니다 어려운함수가 들어가면 읽기가 힘들어서요 첨부파일 확인 부탁드립니다
프로필 이미지
파파리리
2015-11-20
210
글번호 92616
지표
답변완료

부탁 드립니다.

YT변환 부탁 드립니다. 미리 감사 드립니다. 좋은 주말 되시길 바랍니다. LRS(5,1); LRS(5);
프로필 이미지
yes
2015-11-20
169
글번호 92615
지표
답변완료

시스템식 검토 부탁드립니다.

안녕하세요.. 연일 흐린 날씨에 건강하신지요? 아래와 같은 시스템식에서 if MarketPosition == 0 and Ecnt < 전략진입횟수 and Eup2<DayClose(0) and ma2>ma1 and ma11>ma12 and ma21>ma22 and 140000<stime and stime<145000 Then buy("15선-1차매수",atlimit,Eup2,2); 1) Eup2<DayClose(0) : 현재가가 Eup2 즉, 10:10 엔벨로프 상단선에 있을때, 2) ma2>ma1 : 15일이평이 120이평선 위에 있을때 3) ma11>ma12 : 120일이평이 우상향할때 4) ma21>ma22 : 15일이평이 우상향할때 5) 오후 2시 이후에 1. 위 5가지 조건을 만족하면 그냥 1차매수가 되도록 수정 부탁드리고 어떤 부분을 수정했는지도 부탁드려요. (공부를 위해서) 2. 15선-1차매수후 수익이 나서 1차매도가 이루어진 다음 2차매도까지 이루어지지 않고 주가가 하락하는 경우 15선-2차매수가 이루어 지도록 검토 부탁드립니다. 3. 15선-1차매수만 매수후 타점보유일수+5일로 해서 "익절1" 처리 할 수 있나요? 4. 아래 전체시스템식이 맞는지도 검토 부탁드립니다. ------------------------------------------------------------------------------------- ## 기본식+15일선매매로 하향추세 판단을 15일선과 120일선의 위치를 비교하여 판단함. 시간제한 있음. ## 외부변수 설정 ## input : 전략시작일자(20150617), 전략시작시간(090000), 전략매수금액(1500); input : 전략종료일자(20161230); input : 악재시갭하락(5), 악재보정계수(5), 이평보정계수(1); input : 매수위치보정(1), 매수기준엔벨(10), 중심매수엔벨(10); input : 매수위치1차(10), 매수위치2차(7), 매수위치3차(14); input : 매도위치1차(7), 매도위치2차(14); input : 전략진입횟수(100); input : 타점보유일수(5); input : 매수비중1차(30), 매수비중2차(35), 매수비중3차(35); input : 매도비중1차(50), 매도비중2차(50); ## 내부변수 설정 ## var : sum1(0),mav1(0),cnt(0),Eup1(0),Edn(0),Didx(0),LatestEntryDidx(0),Ecnt(0); var : TimeCond(false),Xcond1(false),Xcond2(false),Loss(0),LatestEntrylow(0); var : Period(0),매수1차(0),ma11(0),ma12(0),ma21(0),ma22(0),sum2(0),mav2(0); var : cum1(0),cum11(0),cum12(0),cum2(0),cum21(0),cum22(0),ma1(0),ma2(0),Eup2(0); # 일자수 계산 if date != date[1] Then Didx = Didx+1; # 일봉 120이평 계산 (120이평=ma1) cum1 = 0; for cnt = 1 to 119 { cum1 = cum1+DayClose(cnt); } ma1 = cum1/120; # 당일 120이평 계산 # 전일, 전전일 120이평 계산 cum11 = 0; cum12 = 0 ; for cnt = 1 to 120 { cum11 = cum11+DayClose(cnt); cum12 = cum12+DayClose(cnt+1); } ma11 = cum11/120; # 전일 120이평 계산 ma12 = cum12/120; # 전전일 120이평 계산 # 일봉 15이평 계산 (15이평=ma2) cum2 = 0; for cnt = 0 to 14 { cum2 = cum2+DayClose(cnt); } ma2 = cum2/15; # 당일 15일이평 계산 # 전일, 전전일 15이평 계산 cum21 = 0; cum22 = 0; for cnt = 1 to 15 { cum21 = cum21+DayClose(cnt); cum22 = cum22+DayClose(cnt+1); } ma21 = cum21/15; # 전일 15일이평 계산 ma22 = cum22/15; # 전전일 15일이평 계산 # 기본값은 기간은 P, %는 매수위치1차 Period = 매수기준엔벨; 매수1차 = 매수위치1차; # 악재가 발생하여 갭하락하면 # 기간은 기존 Period값 + 악재보정계수 # %는 기존 매수1차값에 + 악재보정계수 if dayopen < DayClose(1)*(1-악재시갭하락/100) Then { Period = Period + 악재보정계수; 매수1차 = 매수1차 + 악재보정계수; } # 15일 이평이 120이평 아래에 있으면 (또한 지정한 기간의 일봉데이타가 있으면) # 기간은 기존 Period값+이평보정계수 # %는 기존 매수1차값에 + 이평보정계수 if ma2 < ma1 and DayClose(120+1) > 0 Then { Period = Period + 이평보정계수; 매수1차 = 매수1차 + 이평보정계수; } # 당일포함 일봉 Period개의 종가를 누적 (엔벨하단선 매수를 위한 종가누적) sum1 = 0; for cnt = 0 to Period-1 { sum1 = sum1+DayClose(cnt); } # 당일포함 일봉 중심기준엔벨개의 종가를 누적 (중심선 1차매수를 위한 종가누적) sum2 = 0; for cnt = 0 to 중심매수엔벨-1 { sum2 = sum2+DayClose(cnt); } # 누적값을 Period로 나누어 평균값 산출 mav1 = sum1/Period; mav2 = sum2/중심매수엔벨; # 중심선 1차매수를 위한 엔벨 % # 엔벨로프 상단 계산 Eup1 = mav1+mav1*(매수1차/100); Eup2 = mav2+mav2*(중심매수엔벨/100); # 엔벨로프 하단 계산 Edn = mav1-mav1*(매수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차매수" or LatestEntryName(0) == "15선-1차매수") Then Ecnt = Ecnt+1; # 무포지션 상태에서 매수위치1차에 도달하면 매수 if MarketPosition == 0 and Ecnt < 전략진입횟수 and stime < 144200 Then buy("엔벨-1차매수",atlimit,Edn*(1+매수위치보정/100),Floor((전략매수금액*10000/c)*(매수비중1차/100))); if MarketPosition == 0 and Ecnt < 전략진입횟수 and Eup2<DayClose(0) and ma2>ma1 and ma11>ma12 and ma21>ma22 and 140000<stime and stime<145000 Then # 오후 2시 이후에 매수 buy("15선-1차매수",atlimit,Eup2,2); ## 첫매수이후 ## 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 EntryName=="엔벨-1차매수" and stime < 144200 Then buy("엔벨-2차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치2차/100),Floor((전략매수금액*10000/c)*(매수비중2차/100))); if MaxEntries == 1 and EntryName=="15선-1차매수" and stime < 144200 Then buy("15선-2차매수",atlimit,ma2*(1+매수위치보정/100),Floor((전략매수금액*10000/c)*(매수비중2차/100))); # 1차매수 발생 후 매수위치3차에 도달하면 매수 if MaxEntries == 2 and EntryName=="엔벨-1차매수" and stime < 144200 Then buy("엔벨-3차매수",atlimit,Edn[BarsSinceEntry]*(1-매수위치3차/100),Floor((전략매수금액*10000/c)*(매수비중3차/100))); if MaxEntries == 2 and EntryName=="15선1차매수" and stime < 144200 Then buy("15선-3차매수",atlimit,EntryPrice*(1-매수위치2차/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)); # 최근 진입후 보유일수 이상 경과(현재 일자수가 최근진입시점의 일자수보다 보유일수 이상 증가) if Didx >= LatestEntryDidx+타점보유일수 and Xcond1 == false and CurrentContracts == CurrentContracts[1] Then { # 최근 진입이후 보유일수가 되었을때의 최근진입일 포함 보유일수동안 최저가 계산 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("익절1",AtMarket); } # 1차매도가 발생한 상황 # 가장 최근 진입일의 당일최저가보다 낮은 시세 발생하면 전량청산 # if L < LatestEntrylow and Xcond1 == false Then # LatestEntrylow = L; # if Xcond1 == true and CurrentContracts == CurrentContracts[1] Then { # exitlong("익절2",AtStop,LatestEntrylow); # "익절2"는 상황에 따라 적용유무를 달리함. # } } # 87번행 # 첫매수이후 if MarketPosition == 1 Then { 의 괄호를 닫아 줌. ## 매수포지션이 아니면 false로 초기화 ## else { Xcond1 = false; Xcond2 = false; } } # 79번행 # TimeCond가 True가 된 후 if TimeCond == true then { 의 괄호를 닫아 줌.
프로필 이미지
종풍화성
2015-11-20
240
글번호 92610
시스템
답변완료

45060답변에 대해 재요청 드립니다

그런데, 제컴이 문제가 있는지, 고쳐주신 코드 그대로 검증후 실행시켜도 안돌아가는데요. 다른 지표들은 잘됩니다. 재검토 부탁드립니다.
프로필 이미지
청계천꼼장어
2015-11-20
161
글번호 92609
지표
답변완료

영업일종가

위 차트는 아래의 지표식 차트입니다. if bdate != bdate[1] Then var1 = C[1]; plot1(var1); 1.위 지표식에서 직선과 직선이 연결되는 사선이 없이 종가로 표시되는 직선 부분만 표시 되도록 지표식을 수정해 주시면 감사하겠습니다. 2. 영업일종가를 나타내는 함수는 무엇인가요?
프로필 이미지
너무조아
2015-11-20
167
글번호 92608
지표
답변완료

종목검색수식 부탁드려요

1. 가. 분봉에서 전일고가 돌파종목(시간은 검색하는 현재시점) 나. 거래량이 검색현재 10000 이상인 종목 다. 현재 거래량이 전일거래량보다 검색시점 비교시 1.5배이상 거래량이 많은 종목 라. 전일 저가 고가폭이 5%미만이면서, 고가 종가폭이 2%미만인 종목 2. 가.나.다 위와같고 라.전일 저가 고가폭이 5%이상이면서, 고가 종가폭이 2%이상인 종목 위 2개로 나누어 수식 부탁드립니다.
프로필 이미지
fjulia
2015-11-20
172
글번호 92606
종목검색