커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

안녕하세요 nuge=data2(accum(c)); 와 같이 참조데이타의 값을 변수에 누적시켰습니다. 그런데 누적되었던 값중에 최소값을 구하려면 어떻게 해야될지 모르겠습니다. aa= min(nuge); 또는 aa= minlist(nuge); 모두 정확한 최소값이 구해지는 것 같지 않습니다. 또한 일봉참조면 messagelog가 적용되지 않는 것 같은데 확인 부탁합니다.
프로필 이미지
봉자
2015-11-06
169
글번호 92103
지표
답변완료

부탁 드립니다.

44864 질문에 작성해주신 수식을 넣어봤습니다. 11월 5일 기준 3분봉 종가에서 기존 value1 값이 252.90 인데요, 1분봉에 3분봉을 data2로 불러와서 작성해주신 수식을 넣으면 val1 값이 2.55 입니다. 다시 부탁 드립니다. 감사합니다.
프로필 이미지
서쪽하늘
2015-11-06
145
글번호 92102
지표
답변완료

44826 VHF 검색식 재질문입니다.

원문과 답변입니다 안녕하세요 예스스탁입니다. 수식으로는 아래와 같이 내용이지만 종목검색에 240분봉은 제공되지 않습니다. 분봉은 120분봉까지만 제공됩니다. 일봉으로 설정하고 검색하셔야 합니다. Input : n(28),short(12),long(26),sig(9); var : Vertical(0),MACDO(0); Vertical = VHF(N); MACDO = MACD_OSC(short,long,sig); if Vertical >= 50 and MACDO < 0 and countif(MACDO > MACDO[1],2) == 2 Then find(1); 즐거운 하루되세요 > 신데렐라맨 님이 쓴 글입니다. > 제목 : 240분봉 vhf 값이 50이상이고 macd 오실레이터 > 240분봉 vhf 값이 50이상이고 macd 오실레이터 240분봉 12,26,9 기준 값이 0이하이고 오실레이터가 2봉연속 상승인 종목 검색식 수식 부탁드려요 ================================ 재요청건. 종목검색에서 단순히 VHF 일봉상 50이상 검색되는 수식 하나와 VHF 주봉상 50이상 검색되는 수식 VHF 120분봉상 50이상 검색되는 수식 이렇게 세가지 부탁드립니다. 완전초보라서 수식에 문외한 입니다. 미리 도움에 감사 드리고, 매일매일 행복함이 가득하길 바랍니다.
프로필 이미지
신데렐라맨
2015-11-05
161
글번호 92101
검색
답변완료

문의드립니다.

키움수식인데 예스수식으로 변환 좀 부탁드려요! -수식1- bc=(((h+L+c)/3)-ma(c,p28))/(0.015*stdev(c,p28)); sig=stdev(((h+L+c)/3),p28); sig -수식2- bc 수고하셔요 ^^
프로필 이미지
발광머리
2015-11-05
163
글번호 92100
지표
답변완료

검토부탁드립니다.

안녕하세요.. 그림과 같이 1차매수후 1차매도가 발생해서 인지 2차매수후에는 1차매도신호가 발생하지 않고 곧바로 2차매도 신호가 잡힙니다. 2차매수후 중간단계인 1차매도 신호가 발생하도록 수정 부탁드립니다. 기존 시스템식은 다음과 같습니다. ------------------------------------------------------------------------------------- input : 전략식시작일자(20151019), 전략식시작시간(090000), 전략총매수금액(2000); input : 매수위치1차(2), 매수위치2차(3); input : 매도위치1차(1), 매도위치2차(1.2); input : 매수비중1차(50), 매수비중2차(50); input : 매도비중1차(50), 매도비중2차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(120); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(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; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and # 지정일 이후 TotalTrades < 전략식진입횟수 and # 최대 진입횟수 이전 MarketPosition == 0 and # 현재 무포지션 stime >= 전략식시작시간 and #지정시간 이후 EntryCond1 == false Then{ #EntryCond1은 false일때(첫진입이 발생하면 true로 변경되어 한번만 진입하게 됨) # (1차매수),(1차매수.)은 가격이 하락해서 1차매수가격을 터치한 것인지 # 시가가 갭으로 1차매수가격 이하에서 바로 시작해서 신호가 발생한것인지 # 구분하기 위해서 1차매수를 2개의 함수로 작성한 것입니다. # 시가가 지정한 가격보다 위에서 시작하면 하락해서 지정한 가격 터치시 매수(1차매수) # 시가가 지정한 가격보다 이하에서 바로 시작하면 시가에 바로 매수(1차매수.) 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{ #매수시점의 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차매수가격을 터치하면 신호발생(즉 가격이 하락해서 첫 터치가 발생하면 매수) if stime <= 145500 Then buy("2차매수1",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if stime == 150000 and L <= var1[1]-value[1]*(매수위치2차+1) Then buy("2차매수2",AtMarket,def,Floor((전략총매수금액*10000*(매수비중2차/100))/C)); } #Condition1과 Condition2는 각 매도의 횟수를 1번으로 제한하게 위한 변수 #포지션 진행 중 1차매도란 이름의 청산이 발생하면 Condition1은 true if LatestExitName(0) == "1차매도1" or LatestExitName(0) == "1차매도2" Then Condition1 = true; #포지션 진행 중 2차매도란 이름의 청산이 발생하면 Condition2는 true if LatestExitName(0) == "2차매도1" or LatestExitName(0) == "2차매도2" Then Condition2 = true; #Condition1이 false일때(첫진입후 아직 1차매도는 발생하지 않은 상태) #당일 최저가에서 diff*매도위치1차만큼 상승하면 매도1차비중만큰 청상 if Condition1 == false then{ if stime <= 145500 Then exitlong("1차매도1",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if stime == 150000 and H >= lowest(L,BarsSinceEntry)[1]+diff[1]*매도위치1차 Then exitlong("1차매도2",AtMarket,def,"",Floor(MaxContracts*(매도비중1차/100)),1); } #Condition2는 false일때(첫진입후 아직 2차매도는 발생하지 않은 상태) #당일 최저가에서 diff*매도위치2차만큼 상승하면 매도2차비중만큰 청상 if Condition2 == false then{ if stime <= 145500 Then exitlong("2차매도1",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차); if stime == 150000 and H >= lowest(L,BarsSinceEntry)[1]+diff[1]*매도위치2차 Then exitlong("2차매도2",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차매수.진입신호가 발생하면 true if MarketPosition == 1 and (LatestEntryName(0) == "1차매수1" or LatestEntryName(0) == "1차매수2" or LatestEntryName(0) == "1차매수3") Then entrycond1 = true; #매수진입 후 2차매수가 발생하면 true if MarketPosition == 1 and (LatestEntryName(0) == "2차매수1" or LatestEntryName(0) == "2차매수2") Then entrycond2 = true; #무포지션이면 flase로 초기화 if MarketPosition == 0 Then{ entrycond1 = false; entrycond2 = false; }
프로필 이미지
종풍화성
2015-11-05
186
글번호 92099
시스템
답변완료

문의드립니다

cci지표가 10단위씩 올라갈때마다 고가와 저가를 알고싶습니다
프로필 이미지
처음처럼22
2015-11-05
159
글번호 92098
지표
답변완료

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

일봉 챠트에 적용 가능한 수식으로 부탁드립니다. 1. 매수 진입 날짜 지정 <== 이 날짜를 포함하여 이 날짜부터 감시를 시작하여 매수되어야 합니다. 2. 매수가 1, 매수가 2 <== 매수를 2회 하고요 - 금액으로 지정합니다. 이때 피라미딩 설정(중복진입)에는 "허용안함"을 해야되는건지 아니면 "모든 진입신호 허용"을 하고 진입 횟수 "2회"로 해야 하는건지 궁금합니다. 3. 매수가 1의 +10% 4. 손절가 - 금액으로 지정합니다.
프로필 이미지
승부사1
2015-11-05
151
글번호 92097
시스템
답변완료

문의드립니다.

선물차트 기준으로 문의드립니다. 1. 일목균형표 전환선20선이 삼각가중평균40선을 골든크로스할때 해당 봉의 아래에 윗방향화살표와 매수 글씨를, 전환선 20선이 삼각가중평균 40선을 데드크로스 할때 해당봉의 위에 아랫방향화살표와 매도 글씨가 나타나는 시스템 수식을 부탁드립니다. 2. 위 1항목처럼 이번에는 삼각가중평균 30선과 삼각가중평균 40선의 관계에서 골든크로스는 해당봉의 아래에 윗방향화살표와 매수 글씨를, 데드크로스는 해당봉의 위에 아랫방향화살표와 매도 글씨를 나타나게 하고 싶습니다. 부탁드립니다. 지난번 문의에 대한 해결책도 감사드립니다. 수고하세요!!!
프로필 이미지
해암
2015-11-05
151
글번호 92096
시스템
답변완료

시스템부탁합니다.

1.거래시간00:00:00 ~ 00:00:00 까지 2.거래량 n ~ n1 개 사이 3.가격 시가+(abs종가) n틱에서n1틱사이=꼬리뺀 봉기둥 4.하루1회거래 1and 2 and 3 조건을 만족하고 매수 : 양봉마감 진입 매수청산: n 봉 청산<예 1= 1봉후청산> 매도 : 음봉마감 진입 매도청산: n 봉 청산<예 1= 1봉후청산> 감사합니다.
프로필 이미지
djhsfg
2015-11-05
141
글번호 92094
시스템