커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의 합니다.

강제청산 후에는 무 포지션 상태이기에 기존의 시스템 신호가 변경이 되는데, 강제청산 후에도 기존의 포지션 상태를 유지 할 수 있는 방법이 있는지 알고 싶습니다. 있다면, 그 수식을 작성해 주시면 좋겠습니다.
프로필 이미지
너무조아
2013-04-03
289
글번호 61609
시스템
답변완료

문의드립니다.

먼저 감사드립니다. 1. 시가에서 0.3포인트 상방 종가 돌파후 이탈하면 매도 시가에서 0.3포인트 하방 종가 이탈후 돌파하면 매도 손절은 8틱, 익절은 1포인트. 2. 시가에서 1포인트 상방돌파하면 매수후 1.5포인트 상방돌파하면 추가매수 1돌파 매수한 포지션은 목표 10틱이상부터 50% 하락하면 청산. 1.5에 진입한 포지션은 목표 2.5포인트, 손절 0.5포인트
프로필 이미지
엘에이치
2013-04-03
258
글번호 61608
시스템
답변완료

재 문의좀 드립니다

시스템 성능 보고서에 주기(기간)2000/3/2 ~2013/3/29 총손익(pt) 31.840.50 총수익(pt) 48.041.70 총손실(pt) -16.201.20 이렇게 나와 있다면 저것이 13년 동안 총 손익이. 3천1백 84포인트 수익이 난것이 맞습니까?? 질문의 핵심은 수익이 난거는 맞는데 저것이 저 기간 동안에 3천1백 포인트인지 3만1천 포인트인지 정확한 수치를 알고 싶습니다. (총손익)pt 75.95 는 ..75포인트95 (총손익)pt 385.55 는 3백8십5포인트 55 (총손익)pt 파일첨부 하였습니다....파일에 있는 수치나 위에재가 적은 수치나 아무거나 답변 주셔두 상관없습니다^^수고하셔요~~
프로필 이미지
회원
2013-04-03
302
글번호 61607
시스템
답변완료

문의드립니다.(특정 시간대 거래량 누적)

안녕하세요.. 또 궁금한 사항이 있어 문의드립니다. 당일 9시부터 9시 10분까지의 거래량 누적과 전일 9시부터 9시10분까지의 거래량 누적을 구할 수 있는 수식 좀 알려주세요. 당일치는 구하겠는데.. 전일, 지난 5일간의 특정 시간대의 거래량 누적을 구하는 방법을 모르겠네요. 그리고 혹시 9시부터 9시 10분까지의 거래량 누적을 지난 5일동안의 평균을 구하는 식도 같이 부탁드립니다. 지난 5일동안의 거래량 누적 평균값보다 당일 9시 10분까지의 거래량이 크면 매매를 하려고 합니다... 부탁드려요.. 감사합니다.
프로필 이미지
때기리
2013-04-03
285
글번호 61606
시스템

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

프로필 이미지
starj5
2013-04-03
13
글번호 61605
지표
답변완료

부탁드립니다

c>a이면 매수,c<a이면서 캔들의시가보다 종가가 작은 조건을 만족하는 두번째 캔들에서 손절하는 식을 부탁드립니다 반대로,,, c<b이면 매도,c>b이면서 캔들의 시가보다 종가가 큰 조건을 만족하는 두번째 캔들에서 손절하는 식을 부탁드립니다. 감사합니다
프로필 이미지
회원
2013-04-02
201
글번호 61604
시스템
답변완료

이동평균션

안녕하세요 예스스탁입니다. 하나의 지표식에서 지표출력함수는 plot1~plot99까지 사용가능합니다. 총 99개의 값을 지표로 그려보실수 있습니다. plot함수는 하나의 지정한 값을 차트에 지표로 그립니다. 그리고자 하시는 값이 여려개면 해당 갯수만큼 사용해서 지표식을 작성하시면 됩니다. 아래식은 이동평균을 하나 그리는 식입니다. Plot1(ma(C,5), "이동평균1"); 위식에 10이동평균을 추가하면 아래와 같이 작성됩니다. Plot1( ma(C,5) ); Plot2( ma(C,10) ); 위와 같이 plot함수를 늘려가시면서 이동평균함수에 사용하자고자 하시는 기간을 지정하셔서 지정해 주시면 됩니다. Plot1( ma(C,5) ); Plot2( ma(C,10) ); Plot3( ma(C,20) ); Plot4( ma(C,30) ); Plot5( ma(C,55) ); Plot6( ma(C,60) ); Plot7( ma(C,120) ); Plot8( ma(C,200) ); Plot9( ma(C,275) ); Plot10( ma(C,300) ); 여기에서 이동평균선을 변수에 넣고 싶어요 그래서 이평을 자유로이 조정 할수 있게 되도록 많은 변수를 만들고 싶어요 ... 즐거운 하루되세요 싶어요 수식을 알려주셔요
프로필 이미지
회원
2013-04-02
243
글번호 61603
지표
답변완료

일목균형표

지표조건설정 숏5미드12 롱39 선행스팬1 1 5 12 선행스팬2 3 39 12 그리고 선행스팬1 tur1 prd5 std12 선행스팬2 tur2 prd39 std12 차트를 만들어 주셔요!!!!!!!
프로필 이미지
회원
2013-04-02
317
글번호 61602
지표
답변완료

지표식 다시 질문드립니다.

어제 질문드렸는데 식이 너무 길어서 일부만 올렸네요.. 오늘은 다 올립니다. 길어도 양해바랄께요. 에러가 나는 부분 수정 하는 법 문의드립니다. >>======================= Input:n(5),단기(True),중기(True),장기(False),미완성사용(True); Var:j(0),q(0),k(0),상단(200),하단(100),고점표시(0),저점표시(0),Exit(100), 고점갱신(False),저점갱신(False),중기고점갱신(False),중기저점갱신(False), 중기추세갱신(False),장기추세갱신(False), 단기상단기울기(0),단기상단Bar(0),단기상단절편(0),단기하단기울기(0), 단기하단Bar(0),단기하단절편(0), 중기상단기울기(0),중기상단Bar(0),중기상단절편(0),중기하단기울기(0), 중기하단Bar(0),중기하단절편(0), 장기상단기울기(0),장기상단Bar(0),장기상단절편(0),장기하단기울기(0), 장기하단Bar(0),장기하단절편(0), 단기상단채널(0),단기하단채널(0),중기상단채널(0),중기하단채널(0), 장기상단채널(0),장기하단채널(0); Array:고[50](0),저[50](0),고Bar[50](0),저Bar[50](0), 중기고[20](0),중기저[20](0),중기고Bar[20](0),중기저Bar[20](0), 장기고[20](0),장기저[20](0),장기고Bar[20](0),장기저Bar[20](0); #==========================================# # 초기처리 (Initialize Routine) #==========================================# for j = 1 to 19 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; 중기고Bar[j] = 중기고Bar[j] + 1; 중기저Bar[j] = 중기저Bar[j] + 1; 장기고Bar[j] = 장기고Bar[j] + 1; 장기저Bar[j] = 장기저Bar[j] + 1; } for j = 20 to 49 { 고Bar[j] = 고Bar[j] + 1; 저Bar[j] = 저Bar[j] + 1; } 단기상단Bar = 단기상단Bar + 1; 단기하단Bar = 단기하단Bar + 1; 중기상단Bar = 중기상단Bar + 1; 중기하단Bar = 중기하단Bar + 1; 장기상단Bar = 장기상단Bar + 1; 장기하단Bar = 장기하단Bar + 1; 고점표시=(O[n]+C[n])/2; 저점표시=(O[n]+C[n])/2; #==========================================# # 단기 파동선 계산 #==========================================# # 전고점(Peak) 계산 #------------------------------------------# //Highest(H,2)[3] <= H[2] and H[2] > Highest(H,2) if Highest(H,n)[n+1] <= H[n] and H[n] > Highest(H,n) then { if 미완성사용 == True then { for j = 48 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } 고[1] = H[n]; 고Bar[1] = n; 고점갱신 = True; 고점표시 = 고[1]*1.005; if 저Bar[1] > 고Bar[2] then { for j = 48 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } k = n + 1; for j = n + 2 to 고Bar[2]-1 { if L[k] > L[j] then k = j; } 저[1] = L[k]; 저Bar[1] = k; } } if 미완성사용 == False then { if 고Bar[1] > 저Bar[1] then { for j = 48 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } } if 고Bar[1] > 저Bar[1] or 고[1] <= H[n] then { 고[1] = H[n]; 고Bar[1] = n; 고점갱신 = True; 고점표시 = 고[1]*1.005; } } } #------------------------------------------# # 전저점(Trough) 계산 #------------------------------------------# //Lowest(L,2)[3] >= L[2] and L[2] < Lowest(L,2) if Lowest(L,n)[n+1] >= L[n] and L[n] < Lowest(L,n) then { if 미완성사용 == True then { for j = 48 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } 저[1] = L[n]; 저Bar[1] = n; 저점갱신 = True; 저점표시 = 저[1]*0.995; if 고Bar[1] > 저Bar[2] then { for j = 48 downto 1 { 고[j+1] = 고[j]; 고Bar[j+1] = 고Bar[j]; } k = n + 1; for j = n + 2 to 저Bar[2]-1 { if H[k] < H[j] then k = j; } 고[1] = H[k]; 고Bar[1] = k; } } if 미완성사용 == False then { if 저Bar[1] > 고Bar[1] then { for j = 48 downto 1 { 저[j+1] = 저[j]; 저Bar[j+1] = 저Bar[j]; } } if 저Bar[1] > 고Bar[1] or 저[1] >= L[n] then { 저[1] = L[n]; 저Bar[1] = n; 저점갱신 = True; 저점표시 = 저[1]*0.995; } } } #==========================================# # 중기 파동선 계산 #==========================================# # 중기고점 계산 #------------------------------------------# //단기 고점이 발생한 다음 꼭지점을 찾아 중기고점으로 설정 if 고점갱신 == True and 고[3] < 고[2] and 고[2] > 고[1] then { //↗↘ if 미완성사용 == True then { for j = 18 downto 1 { 중기고[j+1] = 중기고[j]; 중기고Bar[j+1] = 중기고Bar[j]; } 중기고[1] = 고[2]; 중기고Bar[1] = 고Bar[2]; 중기고점갱신 = True; if 중기저Bar[1] > 중기고Bar[2] then { for j = 18 downto 1 { 중기저[j+1] = 중기저[j]; 중기저Bar[j+1] = 중기저Bar[j]; } k = 2; for j = 3 to 19 { if 중기고Bar[2] > 저Bar[j] and 저[k] > 저[j] then { k = j; } } 중기저[1] = 저[k]; 중기저Bar[1] = 저Bar[k]; } } if 미완성사용 == False then { if 중기고Bar[1] > 중기저Bar[1] then { for j = 18 downto 1 { 중기고[j+1] = 중기고[j]; 중기고Bar[j+1] = 중기고Bar[j]; } } if 중기고Bar[1] > 중기저Bar[1] or 중기고[1] <= 고[2] then { 중기고[1] = 고[2]; 중기고Bar[1] = 고Bar[2]; 중기고점갱신 = True; } } 고점갱신 = False; 중기추세갱신 = 상단; } #------------------------------------------# # 중기저점 계산 #------------------------------------------# //단기 저점이 발생한 다음 꼭지점을 찾아 중기저점으로 설정 if 저점갱신 == True and 저[3] > 저[2] and 저[2] < 저[1] then { if 미완성사용 == True then { for j = 18 downto 1 { 중기저[j+1] = 중기저[j]; 중기저Bar[j+1] = 중기저Bar[j]; } 중기저[1] = 저[2]; 중기저Bar[1] = 저Bar[2]; 중기저점갱신 = True; if 중기고Bar[1] > 중기저Bar[2] then { for j = 18 downto 1 { 중기고[j+1] = 중기고[j]; 중기고Bar[j+1] = 중기고Bar[j]; } k = 2; for j = 3 to 19 { if 중기저Bar[2] > 고Bar[j] and 고[k] < 고[j] then { k = j; } } 중기고[1] = 고[k]; 중기고Bar[1] = 고Bar[k]; } } if 미완성사용 == False then { if 중기저Bar[1] > 중기고Bar[1] then { for j = 18 downto 1 { 중기저[j+1] = 중기저[j]; 중기저Bar[j+1] = 중기저Bar[j]; } } if 중기저Bar[1] > 중기고Bar[1] or 중기저[1] >= 저[2] then { 중기저[1] = 저[2]; 중기저Bar[1] = 저Bar[2]; 중기저점갱신 = True; } } 저점갱신 = False; 중기추세갱신 = 하단; } #==========================================# # 장기 파동선 계산 #==========================================# # 장기고점 계산 #------------------------------------------# //중기 고점이 발생한 다음 꼭지점을 찾아 장기고점으로 설정 if 중기고점갱신 == True and 중기고[3] < 중기고[2] and 중기고[2] > 중기고[1] then { if 미완성사용 == True then { for j = 18 downto 1 { 장기고[j+1] = 장기고[j]; 장기고Bar[j+1] = 장기고Bar[j]; } 장기고[1] = 중기고[2]; 장기고Bar[1] = 중기고Bar[2]; if 장기저Bar[1] > 장기고Bar[2] then { for j = 18 downto 1 { 장기저[j+1] = 장기저[j]; 장기저Bar[j+1] = 장기저Bar[j]; } k = 2; for j = 3 to 19 { if 장기고Bar[2] > 중기저Bar[j] and 중기저[k] > 중기저[j] then { k = j; } } 장기저[1] = 중기저[k]; 장기저Bar[1] = 중기저Bar[k]; } } if 미완성사용 == False then { if 장기고Bar[1] > 장기저Bar[1] then { for j = 18 downto 1 { 장기고[j+1] = 장기고[j]; 장기고Bar[j+1] = 장기고Bar[j]; } } if 장기고Bar[1] > 장기저Bar[1] or 장기고[1] <= 중기고[2] then { 장기고[1] = 중기고[2]; 장기고Bar[1] = 중기고Bar[2]; } } 중기고점갱신 = False; 장기추세갱신 = 상단; } #------------------------------------------# # 장기저점 계산 #------------------------------------------# //중기 저점이 발생한 다음 꼭지점을 찾아 장기저점으로 설정 if 중기저점갱신 == True and 중기저[3] > 중기저[2] and 중기저[2] < 중기저[1] then { if 미완성사용 == True then { for j = 18 downto 1 { 장기저[j+1] = 장기저[j]; 장기저Bar[j+1] = 장기저Bar[j]; } 장기저[1] = 중기저[2]; 장기저Bar[1] = 중기저Bar[2]; if 장기고Bar[1] > 장기저Bar[2] then { for j = 18 downto 1 { 장기고[j+1] = 장기고[j]; 장기고Bar[j+1] = 장기고Bar[j]; } k = 2; for j = 3 to 19 { if 장기저Bar[2] > 중기고Bar[j] and 중기고[k] < 중기고[j] then { k = j; } } 장기고[1] = 중기고[k]; 장기고Bar[1] = 중기고Bar[k]; } } if 미완성사용 == False then { if 장기저Bar[1] > 장기고Bar[1] then { for j = 18 downto 1 { 장기저[j+1] = 장기저[j]; 장기저Bar[j+1] = 장기저Bar[j]; } } if 장기저Bar[1] > 장기고Bar[1] or 장기저[1] >= 중기저[2] then { 장기저[1] = 중기저[2]; 장기저Bar[1] = 중기저Bar[2]; } } 중기저점갱신 = False; 장기추세갱신 = 하단; } #==========================================# # 자동추세선 계산 #==========================================# if 고Bar[1] == n then { 단기상단채널 = 0; 단기상단기울기 = 0; for j = 2 to 49 { if 고[1] < 고[j] and 단기상단기울기 == 0 then { 단기상단기울기 =((고[1]-고[j])/(고Bar[j]-고Bar[1])); 단기상단Bar = 고Bar[j]; 단기상단절편 = 고[j]; j = Exit; } else if 고[j] <= 0 then j = Exit; } } if 저Bar[1] == n then { 단기하단채널 = 0; 단기하단기울기 = 0; for j = 2 to 49 { if 저[1] > 저[j] and 단기하단기울기 == 0 then { 단기하단기울기 = ((저[1]-저[j])/(저Bar[j]-저Bar[1])); 단기하단Bar = 저Bar[j]; 단기하단절편 = 저[j]; j = Exit; } else if 저[j] <= 0 then j = Exit; } } if 중기추세갱신 == 상단 then { 중기상단채널 = 0; 중기상단기울기 = 0; for j = 2 to 19 { if 중기고[1] < 중기고[j] and 중기상단기울기 == 0 then { 중기상단기울기 = ((중기고[1]-중기고[j])/(중기고Bar[j]-중기고Bar[1])); 중기상단Bar = 중기고Bar[j]; 중기상단절편 = 중기고[j]; j = Exit; } else if 중기고[j] <= 0 then j = Exit; } 중기추세갱신 = 0; } if 중기추세갱신 == 하단 then { 중기하단채널 = 0; 중기하단기울기 = 0; for j = 2 to 19 { if 중기저[1] > 중기저[j] and 중기하단기울기 == 0 then { 중기하단기울기 = ((중기저[1]-중기저[j])/(중기저Bar[j]-중기저Bar[1])); 중기하단Bar = 중기저Bar[j]; 중기하단절편 = 중기저[j]; j = Exit; } else if 중기저[j] <= 0 then j = Exit; } 중기추세갱신 = 0; } if 장기추세갱신 == 상단 then { 장기상단채널 = 0; 장기상단기울기 = 0; for j = 2 to 19 { if 장기고[1] < 장기고[j] and 장기상단기울기 == 0 then { 장기상단기울기 = ((장기고[1]-장기고[j])/(장기고Bar[j]-장기고Bar[1])); 장기상단Bar = 장기고Bar[j]; 장기상단절편 = 장기고[j]; j = Exit; } else if 장기고[j] <= 0 then j = Exit; } 장기추세갱신 = 0; } if 장기추세갱신 == 하단 then { 장기하단채널 = 0; 장기하단기울기 = 0; for j = 2 to 19 { if 장기저[1] > 장기저[j] and 장기하단기울기 == 0 then { 장기하단기울기 = ((장기저[1]-장기저[j])/(장기저Bar[j]-장기저Bar[1])); 장기하단Bar = 장기저Bar[j]; 장기하단절편 = 장기저[j]; j = Exit; } else if 장기저[j] <= 0 then j = Exit; } 장기추세갱신 = 0; } if 단기상단기울기 < 0 then 단기상단채널 = 단기상단기울기 * 단기상단Bar + 단기상단절편; if 단기하단기울기 > 0 then 단기하단채널 = 단기하단기울기 * 단기하단Bar + 단기하단절편; if 중기상단기울기 < 0 then 중기상단채널 = 중기상단기울기 * 중기상단Bar + 중기상단절편; if 중기하단기울기 > 0 then 중기하단채널 = 중기하단기울기 * 중기하단Bar + 중기하단절편; if 장기상단기울기 < 0 then 장기상단채널 = 장기상단기울기 * 장기상단Bar + 장기상단절편; if 장기하단기울기 > 0 then 장기하단채널 = 장기하단기울기 * 장기하단Bar + 장기하단절편; #=================================# # 지표식 #=================================# if 고점표시 > H[n] then Plot1(고점표시,"전고점",RED); //점그래프,수평이동 if 저점표시 < L[n] then Plot2(저점표시,"전저점",BLUE); //점그래프,수평이동 #------------------------------------------# # 채널 표시 #------------------------------------------# if 단기 == True then { if 단기상단채널 > 0 then Plot3(단기상단채널,"단기상단채널",RED); //점그래프 if 단기하단채널 > 0 then Plot4(단기하단채널,"단기하단채널",BLUE); //점그래프 } if 중기 == True then { if 중기상단채널 > 0 then Plot5(중기상단채널,"중기상단채널",RED); //점그래프 if 중기하단채널 > 0 then Plot6(중기하단채널,"중기하단채널",BLUE); //점그래프 } if 장기 == True then { if 장기상단채널 > 0 then Plot7(장기상단채널,"장기상단채널",RED); //점그래프 if 장기하단채널 > 0 then Plot8(장기하단채널,"장기하단채널",BLUE); //점그래프 }
프로필 이미지
비엔에프
2013-04-02
361
글번호 61601
지표