커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표문의드립니다

당일 거래량과 미결재 약정으로 지표수식부탁드립니다 - 거래량은 당일 양봉과 음봉거래량을 누적한 지표수식 오실레이터로 부탁드립니다 기준선은"0" - 추가로 미결재약정 증감을 위 수식에다 같이 표시할수 있나요? 가능하다면 선으로 표시해주시면 감사요 매번 성실한 답변 감사합니다
프로필 이미지
소강
2016-03-18
140
글번호 96386
지표

해피스탁 님에 의해서 삭제되었습니다.

프로필 이미지
해피스탁
2016-03-18
8
글번호 96385
시스템
답변완료

오류 수정 부탁드립니다

46870 질문사항 간단한 오류 수정 부탁드립니다. 감사합니다
프로필 이미지
회원
2016-03-18
104
글번호 96384
시스템
답변완료

문의드립니다

틱차트에서 현재가봉과 100봉 사이중 최고값을 나타내는 지표를 만들고싶습니다
프로필 이미지
파인애플
2016-03-18
120
글번호 96382
지표
답변완료

안녕하세요

1번질문) 5선 이동평균선과 20선 이동평균선이 골든크로스되면 매수신호 20선 이동평균선 위에서 3선이동평균선과 5선이동평균선이 데드크로스시점에서 재매수신호 5선 이동평균선과 20선 이동평균선이 데드크로스되면 매도신호 20선 이동평균선 아래에서 3선이동평균선과 5선이동평균선이 골든크로스시점에서 재매도신호 5틱익절/5틱손절 한글로 매수 매도/ 재매수 재매도 텍스트로 이렇게 나오게 해주시면 감사하겠습니다 2번 질문) 5선 이동평균선과 20선 이동평균선이 골든크로스되면 매수신호 20선 이동평균선 위에서 3선이동평균선과 5선이동평균선이 데드크로스시점에서 20선 이동평균선과 이격이 가장 가까운 시점에 재매수 5선 이동평균선과 20선 이동평균선이 데드크로스되면 매도신호 20선 이동평균선 아래에서 3선이동평균선과 5선이동평균선이 골든크로스시점에서 20선 이동평균선과 이격이 가장 가까운 시점에 재매도 혹시 이게 안되시면 다른방법으로 해주셔도 되구요 5틱익절/5틱손절 한글로 매수 매도/ 재매수 재매도 텍스트로 이렇게 나오게 해주시면 감사하겠습니다 3번질문) 보통 시스템 신호가 매수 매도 화살표가 나오고 매수매도 글이 나오는데요 매수나매도 화살표 나오고 매수매도 글이 안나오고 그냥 그 가격수치로 나오게 할수 없나요? 예로)매수신호가 생기면 화살표생기고 신호가 생긴 그 가격 280 이렇게 수치로 나오게요 매도 신호가 생기면 화살표 생기고 신호가 생긴 그 가격 280 이렇게 수치로 나오게요 신호가 발생하면 화살표가 생기고 그 가격이 나오게 할수 없나요 ? 바쁘실텐데 제가 잘 몰라서 질문이 많네요 항상 감사합니다
프로필 이미지
강인함
2016-03-18
161
글번호 96381
시스템
답변완료

수식요청드립니다.

안녕하세요. 장시작 1회 진입횟수제한 당일청산 데이시스템 진입식에서 첫번째 완성봉 종가기준 진입 ->장시작 첫번째 완성봉 종가가 시가위이면 매수진입 (단 장시작 첫봉의 종가와 시가가 같을경우는 두번째 완성봉의 종가가 장시작가 위이면 매수) ->장시작 첫번째 완성봉 종가가 시가아래이면 매도 (단 장시작 첫봉의 종가와 시가가 같을경우는 두번째 완성봉의 종가가 장시작가 아래이면 매도) 두번째 완성봉의 종가도 장시작가와 같을경우 세번째 완성봉의 종가 기준으로 위 매수, 아래 매도 감사합니다.
프로필 이미지
dandy
2016-03-18
131
글번호 96380
시스템
답변완료

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

안녕하세요.. # 1차매도1,1차매도2는 가격이 상승해서 1차매도 가격을 터치한 것인지 시가가 갭으로 1차매도가격 이상에서 바로 시작해서 신호가 발생한것인지 구분하기 위해서 1차매도를 2개의 함수로 작성한 것입니다. # 시가가 지정한 가격보다 아래에서 시작하여 상승해서 지정한 가격 터치시 매도(1차매도1) # 시가가 지정한 가격보다 이상에서 바로 시작하면 시가에 바로 매도(1차매도2)로 하였습니다. # 2차매도1, 2차매도2도 마찬가지로 작성하였는데 신호가 제대로 잡히질 않네요.. # 추가질문으로 1차매도2의 경우 시가에 바로 매도하지 않고 시가의 1호가 아래에서 매도하는 수식도 부탁드립니다. 검토부탁드립니다. 전체 시스템식은 다음과 같습니다. -------------------------------------------------------------------------- ## 일봉상 일목균형표의 120일 기준선을 참조하여 3분봉에서 매매함. ## 2분할매수, 2분할매도 시스템식 ## 외부변수 설정 ## input : 전략시작일자(20160105), 전략시작시간(090000), 전략매수금액(1000); input : 매수위치1차(2), 매수위치2차(3); input : 매도위치1차(1.5), 매도위치2차(2); input : 매수비중1차(50), 매수비중2차(50); input : 매도비중1차(50), 매도비중2차(50); input : 전략진입횟수(1); input : 최종손절위치(10),최종익절위치(1); input : Period(26); ## 내부변수 설정 ## var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0),V8(0),V9(0); var : diff(0),TF(0),cnt(0),value(0); var : entrycond1(false),entrycond2(false),entrycond3(false); # Period 전기간 최고가의 값이 있으면 if dayhigh(Period) > 0 Then { var1 = dayhigh(0); # 당일최고가 (Period 기간동안 최고가를 계산하기 위한 초기값) var2 = daylow(0); # 당일최저가 (Period 기간동안 최고가를 계산하기 위한 초기값) var11 = dayhigh(1); # 전일최고가 (전일기준 Period 기간동안 최고가를 계산하기 위한 초기값) var12 = daylow(1); # 전일최저가 (전일기준 Period 기간동안 최고가를 계산하기 위한 초기값) # 0일부터 Period전일까지 최고가와 최저가를 불러와 # Period 기간동안 최고가/최저가를 계산 # 전일기준은 0을 제외하고 Period 기간이므로 +1 for cnt = 0 to Period-1 { if DayHigh(cnt) > var1 Then var1 = DayHigh(cnt); if dayhigh(cnt+1) > var11 Then var11 = dayhigh(cnt+1); if daylow(cnt) < var2 Then var2 = daylow(cnt); if daylow(cnt+1) < var21 Then var21 = daylow(cnt+1); } # Period기간동안 최고가가 전일보다 상승하면 # CL에 당일 중간값 저장 if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## "빨"타점-1타점 V2 = var1-((var1-CL)/5)*3; ## "주"타점-2타점 V3 = var1-((var1-CL)/5)*4; ## "노"타점-3타점 mid = (var1+var2)/2; ## 중간선 V4 = var1-((var1-CL)/5)*5; ## "초"타점-4타점 V5 = var1-((var1-CL)/5)*6; ## "파"타점-5타점 V6 = var1-((var1-CL)/5)*7; ## "남"타점-6타점 V7 = var1-((var1-CL)/5)*8; ## "보"타점-7타점 V8 = var1-((var1-CL)/5)*9; ## "점"타점-8타점 V9 = var1-((var1-CL)/5)*9; ## "검"타점-9타점 value = abs(var1-V0.5); ####################################################### if sdate >= 전략시작일자 and # 지정일 이후 TotalTrades < 전략진입횟수 and # 최대 진입횟수 이전 MarketPosition == 0 and # 현재 무포지션 stime >= 전략시작시간 and # 지정시간 이후 EntryCond1 == false and # EntryCond1은 false일때(첫진입이 발생하면 true로 변경되어 한번만 진입하게 됨) DayHigh(0) < var1 Then { # 당일고가가 period신고가를 돌파하지 않을 경우만 매수하기 위한 조건 # (1차매수1),(1차매수2)은 가격이 하락해서 1차매수가격을 터치한 것인지 # 시가가 갭으로 1차매수가격 이하에서 바로 시작해서 신호가 발생한것인지 # 구분하기 위해서 1차매수를 2개의 함수로 작성한 것입니다. # 시가가 지정한 가격보다 위에서 시작하면 하락해서 지정한 가격 터치시 매수(1차매수1) # 시가가 지정한 가격보다 이하에서 바로 시작하면 시가에 바로 매수(1차매수2) if stime <= 145500 Then { if NextBarOpen > var1-value*(매수위치1차+1) Then buy("1차매수1",atlimit,var1-value*(매수위치1차+1),Floor((전략매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수2",AtMarket,def,Floor((전략매수금액*10000*(매수비중1차/100))/C)); } if stime == 150000 Then { if L <= var1[1]-value[1]*(매수위치1차+1) Then buy("1차매수3",AtMarket,def,Floor((전략매수금액*10000*(매수비중1차/100))/C)); } } # 매수진입이후 if MarketPosition == 1 then { # 추가진입이 발생하면 1차매도가 다시 발생할수 있도록 false로 초기화 if CurrentContracts > CurrentContracts[1] Then Condition1 = false; # 매수시점의 var1와 V0.5의 차이값을 diff에 저장 diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and # 최대진입횟수가1이고(첫진입 한번만 발생한 상황) L >= var1-value*(매수위치2차+1) and # 저가가 2차매수가격 이상이고 EntryCond2 == false Then { # EntryCond2은 false일때(2차매수가 발생하면 true로 변경되어 한번만 진입하게 됨) # 다음봉에서 2차매수가격을 터치하면 신호발생(즉 가격이 하락해서 첫 터치가 발생하면 매수) # 시가가 지정한 가격보다 위에서 시작하면 하락해서 지정한 가격 터치시 매수(2차매수1) # 시가가 지정한 가격보다 이하에서 바로 시작하면 시가에 바로 매수(2차매수2) if stime <= 145500 or stime == 150000 Then { if NextBarOpen > var1-value*(매수위치2차+1) Then buy("2차매수1",atlimit,var1-value*(매수위치2차+1),Floor((전략매수금액*10000*(매수비중2차/100))/C)); Else buy("2차매수2",AtMarket,def,Floor((전략매수금액*10000*(매수비중2차/100))/C)); } if stime == 150000 and L <= var1[1]-value[1]*(매수위치2차+1) Then buy("2차매수3",AtMarket,def,Floor((전략매수금액*10000*(매수비중2차/100))/C)); } # Condition1과 Condition2는 각 매도의 횟수를 1번으로 제한하게 위한 변수 # 포지션 진행 중 1차매도란 이름의 청산이 발생하면 Condition1은 true if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "1차매도1" or LatestExitName(0) == "1차매도2" or LatestExitName(0) == "1차매도3") Then Condition1 = true; # 포지션 진행 중 2차매도란 이름의 청산이 발생하면 Condition2는 true if CurrentContracts < CurrentContracts[1] and (LatestExitName(0) == "2차매도1" or LatestExitName(0) == "2차매도2" or LatestExitName(0) == "2차매도3") Then Condition2 = true; # Condition1이 false일때(첫진입후 아직 1차매도는 발생하지 않은 상태) # 당일 최저가에서 diff*매도위치1차만큼 상승하면 매도1차비중만큼 청산 if Condition1 == false then { if stime <= 145500 Then { if NextBarOpen > lowest(L,BarsSinceEntry)+diff*매도위치1차 Then exitlong("1차매도1",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); Else exitlong("1차매도2",AtMarket,def,"",Floor(MaxContracts*(매도비중1차/100)),1); } if stime == 150000 and H >= lowest(L,BarsSinceEntry)[1]+diff[1]*매도위치1차 Then exitlong("1차매도3",AtMarket,def,"",Floor(MaxContracts*(매도비중1차/100)),1); } if Condition1 == true and CurrentContracts < MaxContracts then { if stime <= 145500 Then exitlong("최종익절1",AtStop,LatestExitPrice(0)-diff*최종익절위치); if stime == 150000 and L <= LatestExitPrice(0)-diff*최종익절위치 Then exitlong("최종익절2",AtMarket); } # Condition2는 false일때(첫진입후 아직 2차매도는 발생하지 않은 상태) # 당일 최저가에서 diff*매도위치2차만큼 상승하면 매도2차비중만큼 청산 if Condition2 == false then { if stime <= 145500 Then { if NextBarOpen > lowest(L,BarsSinceEntry)+diff*매도위치2차 Then exitlong("2차매도1",AtLimit,lowest(L,BarsSinceEntry)+diff*매도위치2차); Else exitlong("2차매도2",AtMarket); } if stime == 150000 and H >= lowest(L,BarsSinceEntry)[1]+diff[1]*매도위치2차 Then exitlong("2차매도3",AtMarket); } # 당일최고가에서 value*(최종손절위치+1)만큰 하락하면 전량청산 # 3분봉에서 정규장마지막봉 전봉까지만 만족했을때 신호발생 if stime < 145700 Then exitlong("최종손절1",AtStop,var1-value*(최종손절위치+1)); # 정규장 마지막봉에서 조건만족하면 다음봉(다음날)시가에 청산 if stime == 150000 and L <= var1[1]-value[1]*(최종손절위치+1) Then exitlong("최종손절2",AtMarket); } Else { # 매수포지션이 아니면 모두 false로 초기화 Condition1 = false; Condition2 = false; } } # 매수진입 후 1차매수1이나 1차매수2, 1차매수3 진입신호가 발생하면 true if MarketPosition == 1 and (LatestEntryName(0) == "1차매수1" or LatestEntryName(0) == "1차매수2" or LatestEntryName(0) == "1차매수3") Then entrycond1 = true; # 매수진입 후 2차매수1이나 2차매수2, 2차매수3 진입신호가 발생하면 true if MarketPosition == 1 and (LatestEntryName(0) == "2차매수1" or LatestEntryName(0) == "2차매수2" or LatestEntryName(0) == "2차매수3") Then entrycond2 = true; # 무포지션이면 flase로 초기화 if MarketPosition == 0 Then { entrycond1 = false; entrycond2 = false; }
프로필 이미지
종풍화성
2016-03-18
141
글번호 96378
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2016-03-18
10
글번호 96377
시스템

에쓰엠씨 님에 의해서 삭제되었습니다.

프로필 이미지
에쓰엠씨
2016-03-18
26
글번호 96376
시스템