커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

저녁 8시(20:00)기준 + 0.002에 매수진입 - 0.002에 매도진입식 부탁합니다. 청산은 익일 05:00에 일괄청산하고 싶습니다. 하루에 한번만 진입하도록 하고싶습니다. 그런 경우 해외선물 따로 시간 설정을 안해도 되는지요..? 감사합니다.
프로필 이미지
호시우보
2017-03-30
198
글번호 108342
시스템
답변완료

검색식좀 부탁드립니다..

당일 9시부터 9시1분까지의 1분간 거래량이 전일 9시부터 9시1분까지의 1분간 거래량 보다 X% 높은 종목 당일 9시부터 9시2분까지의 2분간 거래량이 전일 9시부터 9시2분까지의 2분간 거래량 보다 X% 높은 종목 이렇게 두가지 부탁드립니다 한마디로 전일과 당일 동일 시간대의 거래량이 얼마나 늘었나 검색되는 식입니다 X는 제가 임의로 설정할수있게 해주시면 감사하겠습니다
프로필 이미지
그리즐리
2017-03-29
212
글번호 108341
종목검색
답변완료

N 일중 특정조건만족시 당일 매수 발동은 어떻게하나요

예를들자면 3일 이내에 한번이라도 10% 이상 상승봉 존재시 당일 거래 발생 같이 오늘거래시키는 조건이 오늘이아니라 특정기간중 조건을 만족하는 봉이 존재할시를 조건에 활용해보고싶은데요
프로필 이미지
하얀머리
2017-03-29
201
글번호 108340
시스템
답변완료

부탁드립니다.

그림과 같이 부탁 드리고자 합니다. 미리 경배로 감사 인사 드립니다. 참고수식) var : sumv(0),valuev2(0),valuev3(0); var : sumvva1(0),valuev1(0),vlalev2(0),valuediv(0); sumv = sumv+ v; if bdate<>bdate[1] Then{ valuev1 = sumv[1]; valuev2 = sumvva1[1]; valuev3 = vlalev2[1]; } sumvva1=sumv-valuev1; valuediv=(valuev2+valuev3)/2;
프로필 이미지
yes
2017-03-29
248
글번호 108339
지표
답변완료

수식부탁드립니다.

60분봉 스토캐스틱 슬로우 참조 (Data2) 매수: 최근 5봉이내에 5일이평선이 20일 이평선 하향돌파 한적이 있고 + Data 2조건 만족(Condition2) + 현재 보유 포지션 없고, 5일선 10일선 상향 돌파시 매수. 매도: 최근 5봉이내에 5일이평선이 20일 이평선 상향돌파 한적이 있고 + Data 2조건 만족(Condition3) + 현재 보유 포지션 없고, 5일선 10일선 하향 돌파시 매수.
프로필 이미지
이대규
2017-03-29
200
글번호 108338
시스템
답변완료

수식부탁드립니다.

아래 양매도손익을 누적으로 만들려고 하고 있습니다. 당일시가진입-당일종가 청산 기준입니다. 1. 누적 수치가 n/a로 나옵니다. 2. 누적 기준을 특정일 or 옵션만기일 이후로 지정할 수 있게 부탁드립니다. 감사합니다. input : 계약수(1),n(60); Var : 양합시가(0),양합(0), 양합차(0),고가(0),저가(0),매수가(0),평가액(0),평가손익(0),양매도손익(0); 양합시가=(Data1(Dayopen)+Data2(Dayopen)); 양합=Data1(c)+Data2(c); 양합차=-양합+양합시가; 매수가=(Data1(Dayopen)+Data2(Dayopen))*계약수*2500*100; 평가액=(Data1(c)+Data2(c))*계약수*2500*100; 평가손익=-평가액+매수가; 양매도손익=양매도손익+(평가손익-평가손익[1]); 고가=highest(평가손익,n); 저가=lowest(평가손익,n); Plot1( 평가손익, "평가손익"); Plot2( 고가, "고가"); Plot3( 저가, "저가"); Plot4( 0, "0"); Plot5( 양매도손익, "양매도누적손익");
프로필 이미지
심심00
2017-03-29
220
글번호 108337
지표
답변완료

수식 수정부탁 드립니다

plot60이 검은색일때 plot31을plot30에 일치시켜 거기서 다시시작하게 하고 그후 두라인의 변화를 보려는 의도인데 plot60이 검은색일때 plot31가 plot30에 일치하질 안네요 지수호가테마LENGTH1(10)때문인가요 ? plot60이 검은색이면 즉시 plot31을plot30에 일치시켜 다시시작하게 수정좀부탁드리겠슴니다 감사합니다 Input: 시간보정(0),보정후변화(0),호가더하기(0),지수더하기(0),보정치(0),폭보정(1.5),예비(0),지수호가테마LENGTH1(10),순매수LENGTH2(10),급변(0.05) ,순매수테마보정한계(0.3),순매수테마급증보정(0.5),순매수테마급감보정(0.5) ,지수테마보정한계(0.3),지수테마급증보정(0.5),지수테마급감보정(0.5) ; var : AsksMA(0),BidsMA(0), Period(1),idx(0),EP(0),E11(0),E12(0),E13(0),E21(0),E22(0),E23(0),ss(0); Var : value(0); Var : valuec(0); var : va61(0); var : va71(0); var : va80(0); var : va81(0); var : va90(0); var : va91(0); var : va92(0); var : va93(0); var : va94(0); var : va95(0); var : va96(0); VAR : TEMA1(0); VAR : TEMA2(0); VAR : TEMA3(0); VAR : vmin(0); VAR : vmax(0); BidsMa = ma(bids,Period); AsksMA = ma(asks,Period); value = ma(bids,period)-ma(asks,period)+29000; Plot2(BidsMA, "매수잔량이평"); Plot3(AsksMA, "매도잔량이평"); Plot4(value, "차"); //************************************************************** //************************************************************* va91=((c-c[1])/c[1]*100)*20000/20000; va93=((value-value[1])/value[1]*1.555); if stime == 시간보정*100 or (stime > 시간보정*100 and stime[1] < 시간보정*100) or Bdate != Bdate[1] Then{ PLOT62(100,"시간보정"); idx = 0; var1 = 100; var2 = var1; plot10(var1); plot11(var2); plot51(var2 +호가더하기/1000 ); } Else{ idx = idx+1; var1 = var1+(var1*(va91/100)); if abs(va96[10]-va96) <= 보정치 Then var2 = var1; // if var2[5] > var1[5] then var2 = var2 - ( var2[5] - var1[5] ); // if var2[5] < var1[5] then var2 = var2 + ( var1[5] - var2[5] ); else var2 = var2+(var2*(va93/95)); plot10(var1+지수더하기/1000 ); plot11(var2+호가더하기/1000 ); plot51(var2+호가더하기/1000 ); TEMA3 = (3 * Ema(var2+호가더하기/1000 ,순매수LENGTH2)) - (3 * Ema(Ema(var2+호가더하기/1000 ,순매수LENGTH2),순매수LENGTH2)) + (Ema(Ema(Ema(var2+호가더하기/1000 ,순매수LENGTH2),순매수LENGTH2),순매수LENGTH2)); if TEMA3 >TEMA3[1]+순매수테마보정한계 then TEMA3 = ((TEMA3 -TEMA3[1])*순매수테마급증보정)+TEMA3[1]; if TEMA3 <TEMA3[1]-순매수테마보정한계 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*순매수테마급감보정); if TEMA3 >TEMA3[1]+50 then TEMA3 = ((TEMA3 -TEMA3[1])*0.9)+TEMA3[1]; if TEMA3 <TEMA3[1]-50 then TEMA3 = TEMA3[1]-((TEMA3[1] -TEMA3)*0.9); plot52(TEMA3,"순매수테마"); } //if var2-var1 > 폭보정 Then var2=var1; //if var1-var2 > 폭보정 Then var2=var1; //if (va71[1]-va71) <= 폭보정 Then var2=var1; //if (va71-va71[1]) <= 폭보정 Then var2=var1; //if va71[1] < va71 and va71[1] + 폭보정 > va71 then var2=var1; //if va71[1] > va71 and va71[1] - 폭보정 > va71 then var2=var1; EP = 2/(지수호가테마LENGTH1+1); if idx == 0 Then{ E11 = var1; E21 = var2; } Else{ E11 = var1 * EP + E11 * (1-EP); E21 = var2 * EP + E21 * (1-EP); } if idx <= 1 Then{ E12 = E11; E22 = E21; } Else{ E12 = E11 * EP + E12 * (1-EP); E22 = E21 * EP + E22 * (1-EP); } if idx <= 2 Then{ E13 = E12; E23 = E22; } Else{ E13 = E12 * EP + E13 * (1-EP); E23 = E22 * EP + E23 * (1-EP); } TEMA1 = (3 * E11) - (3 * E12) + (E13); if TEMA1 >TEMA1[1]+지수테마보정한계 then TEMA1 = ((TEMA1 -TEMA1[1])*지수테마급증보정)+TEMA1[1]; if TEMA1 <TEMA1[1]-지수테마보정한계 then TEMA1 = TEMA1[1]-((TEMA1[1] -TEMA1)*지수테마급감보정); if TEMA2 >TEMA2[1]+지수테마보정한계 then TEMA2 = ((TEMA2 -TEMA2[1])*지수테마급증보정)+TEMA2[1]; if TEMA2 <TEMA2[1]-지수테마보정한계 then TEMA2 = TEMA2[1]-((TEMA2[1] -TEMA2)*지수테마급감보정); TEMA2 = (3 * E21) - (3 * E22) + (E23); PLOT30(TEMA1+지수더하기/1000 ,"지수테마",iff((TEMA1 +지수더하기/1000 )>(TEMA1 +지수더하기/1000)[1]+00,BLACK,iff((TEMA1 +지수더하기/1000 )<(TEMA1 +지수더하기/1000 )[1]-00,BLACK,BLACK))); PLOT31(TEMA2 +호가더하기/1000,"호가테마"); //PLOT31(TEMA2 +호가더하기/1000,"호가테마",iff(va71[3]-폭보정 > va71,RED,iff(va71[3]+폭보정 < va71,RED,GREEN))); vmin = min(TEMA1+지수더하기/1000 ,TEMA2+호가더하기/1000 ); vmax = max(TEMA1+지수더하기/1000 ,TEMA2+호가더하기/1000 ); if TEMA1+지수더하기/1000> TEMA2+호가더하기/1000 Then{ var80 = (TEMA1+지수더하기/1000- TEMA2 +호가더하기/1000 )*0.5+TEMA2+호가더하기/1000 ; } if TEMA1 < TEMA2+호가더하기/1000 Then{ var80 = (TEMA2+호가더하기/1000 -TEMA1+지수더하기/1000)*0.5+TEMA1+지수더하기/1000 ; } PLOT17(var80,"지호평균"); //테마합 일정 수량차이상의 급등락 표시 if TEMA1 > TEMA1[1]+ 급변 Then{plot21(vmin-0.05,"급등"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click01.wav"); } if TEMA1 < TEMA1[1]- 급변 Then{plot22(vmin-0.05,"급락"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click02.wav"); } va71 =( TEMA2+호가더하기/1000 - TEMA1+지수더하기/1000 )+100.3; if SS <= 0 and ( TEMA1+지수더하기/1000 )[1] < ( TEMA1+지수더하기/1000 ) and abs (( TEMA1+지수더하기/1000 ) - ( TEMA2+호가더하기/1000 )) < 예비 Then{ SS = 1; PLOT25((vmin )-0.05,"매수예비"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click01.wav"); } if SS <= 0 and ( TEMA1+지수더하기/1000 )[1] > ( TEMA1+지수더하기/1000 ) and abs (( TEMA1+지수더하기/1000 ) - ( TEMA2+호가더하기/1000 )) < 예비 Then{ SS = -1; PLOT26((vmin )-0.05,"매도예비"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click02.wav"); } PLOT60(va71,"55",iff(va71[2]-폭보정 > va71,GREEN,iff(va71[2]+폭보정 < va71,GREEN,BLACK))); if abs (va71[3] - va71) < 폭보정 then{ PLOT64(va71-0.1,"커플링"); //var1 = 100; var2 = var1; // PlaySound("C:₩예스트레이더₩data₩Sound₩Bandi.wav"); } if CrossUp(( TEMA2+호가더하기/1000 ),(TEMA1+지수더하기/1000)) Then{ //if sTime > (시간보정*100) and (TEMA1+지수더하기/1000)+보정후변화 < ( TEMA2+호가더하기/1000 ) and //(TEMA1+지수더하기/1000)[1] > (TEMA1+지수더하기/1000) //if (TEMA1+지수더하기/1000)[1]+0.0 < (TEMA1+지수더하기/1000) and va71[1]-0.01 < va71 // if ( TEMA1+지수더하기/1000 )[1] < ( TEMA1+지수더하기/1000 ) and va71[1] < va71[1] //then { PLOT45((vmin )-0.01,"매수막대"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click01.wav"); } if CrossDown(( TEMA2+호가더하기/1000 ),(TEMA1+지수더하기/1000)) Then{ //if sTime > (시간보정*100) and (TEMA1+지수더하기/1000)-보정후변화 > ( TEMA2+호가더하기/1000 ) and //(TEMA1+지수더하기/1000)[1] < (TEMA1+지수더하기/1000) //if (TEMA1+지수더하기/1000)[1]-0.0 > (TEMA1+지수더하기/1000) and va71[1]+0.01 > va71 // if ( TEMA1+지수더하기/1000)[1] > ( TEMA1+지수더하기/1000 ) and va71[1] > va71[1] // then { PLOT46((vmin )-0.01,"매도막대"); // PlaySound("C:₩Users₩Administrator₩Desktop₩효과₩click02.wav"); } if va71[1]+급변 < va71 Then { PLOT18((va71 )+0.01,"매도"); } if va71[1]-급변 > va71 Then { PLOT19((va71 )+0.01,"매수"); } va96 = (tema1 - tema2)*1000; PLOT61(va96,"66",iff(va96 > 0,RED,iff(va96 < 0,BLACK,BLACK))); PlotBaseLine1(100,"기준선100"); if stime == 시간보정*100 then { PLOT62(100,"시간보정"); }
프로필 이미지
leekss1
2017-03-29
281
글번호 108336
지표
답변완료

해선 시스템식

기준 : 거래시간( 한국시간기준) 당일 20시부터 익일 04시까지 사용프로그램이 한국투자증권프로그램이라 시간 변경이 되지않습니다. 아래 3가지식 부탁드리겠습니다. 감사합니다. (참고로 분봉차트 입니다.) 1. 당일 20시부터 현재시간까지 고가 - 저가 2. 당일 20시부터 현재시간까지 ABS(현재봉 종가- 당일20시 시가) 3. 아래식은 한국시간 기준으로 작성한것인데 이것을 위 거래시간으로 표현 하려고합니다. dayindex,dayhigh,DayOpen,date등이 걸리네요. if dayindex == 0 or (dayindex > 0 and H==dayhigh and H[1] < dayhigh) Then var1 = TimeToMinutes(stime); if TimeToMinutes(stime) == var1+상수 and countif(dayhigh == dayhigh[1],상수) == 상수 Then var2 = dayhigh; if date!=date[1] Then var2=DayOpen; if var2[1]!=var2 Then var3=(DayIndex-상수); if var2[1]==var2 Then var3=var3[1] ; if dayindex == 0 Then var3=0; var4=Lowest(c,(dayindex-var3)); var5=Lowest(c,BarsSinceEntry(0)); if EntryName=="매수1" and BarsSinceEntry(0)>=상수 and Crossdown(c, var4[1])Then ExitLong("정리3"); if EntryName=="매수2" and BarsSinceEntry(0)>=상수 and Crossdown(c, var5[1])Then ExitLong("정리4");
프로필 이미지
orfeu
2017-03-29
220
글번호 108335
시스템
답변완료

원하던 수식이 아니라서 ...

안녕하세요 리플이 없어서 다시 글남깁니다 감사합니다 만들어주신 수식이 제가 원하는것이 아니라 다시 문의 드립니다 Period = 일봉상 9봉전부터 현재까지; 이렇게 말씀드렷는데요 input : Period(10),BarRio(0.01),Percent1(50); 이렇게 해주셨네요 저는 일봉의 기간조건으로 말씀 드렸는데 Period(10), 이렇게 하면 분봉에서 갯수를 나타내는것으로 표현이 되는것 같습니다. 일봉조건으로 수정부탁드립니다 밑에 종목검색도 같이 부탁드립니다 종목검색에서도 거래대금이 일봉상 9봉전부터 현재까지 거래대금이 200억 이상인 조건이 아니라 9봉전까지 200억이 하나라도 포함된 거래대금이 있는 일봉으로 수정 부탁드립니다. 감사합니다 ~ > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식문의 드립니다. > 안녕하세요 예스스탁입니다. 1. input : Period(10),BarRio(0.01),Percent1(50); var : B(0),sumB(0); B=iff((C-O)/O>BarRio,V,iff((C-O)/O<-BarRio,-V,0)); sumB = sumB+B; var1 = sumB-Lowest(sumB,Period); var2 = highest(SumB,Period)-SumB; var3 = highest(SumB-Lowest(SumB,Period),Period)*(Percent1/100); plot1(var1); plot2(var2); plot3(var3); 2 아래종목검색은 15분 주기에서 과거 데이터가 10일이상 필요하므로 속성에서 검색에 필요한 최소기간에 350봉 이상 지정하고 검색하셔야 합니다. 2-1 input : Period(10),BarRio(0.01),Percent1(50); var : B(0),sumB(0),cnt(0),sumM(0); Array : MM[20](0); if date != date[1] Then{ MM[0] = 0; for cnt = 1 to 19{ MM[cnt] = MM[cnt-1][1]; } } MM[0] = MM[0]+M; B=iff((C-O)/O>BarRio,V,iff((C-O)/O<-BarRio,-V,0)); sumB = sumB+B; var1 = sumB-Lowest(sumB,Period); var2 = highest(SumB,Period)-SumB; var3 = highest(SumB-Lowest(SumB,Period),Period)*(Percent1/100); if MM[Period-1] > 0 Then{ sumM = 0; for cnt = 0 to Period-1{ sumM = sumM + MM[cnt]; } if sumM >= 20000000000 and var1 > var3 Then find(1); } 2-2 input : Period(10),BarRio(0.01),Percent1(50); var : B(0),sumB(0),cnt(0),sumM(0); Array : MM[20](0); if date != date[1] Then{ MM[0] = 0; for cnt = 1 to 19{ MM[cnt] = MM[cnt-1][1]; } } MM[0] = MM[0]+M; B=iff((C-O)/O>BarRio,V,iff((C-O)/O<-BarRio,-V,0)); sumB = sumB+B; var1 = sumB-Lowest(sumB,Period); var2 = highest(SumB,Period)-SumB; var3 = highest(SumB-Lowest(SumB,Period),Period)*(Percent1/100); if MM[Period-1] > 0 Then{ sumM = 0; for cnt = 0 to Period-1{ sumM = sumM + MM[cnt]; } if sumM >= 20000000000 and var1 > 5000000 Then find(1); } 즐거운 하루되세요 > 하루4% 님이 쓴 글입니다. > 제목 : 수식문의 드립니다. > 안녕하세요! 키움 수식을 변환하고 싶습니다. 일봉 9봉전까지 조건으로 분봉에 지표를 출력했습니다. 마찬가지로 일봉조건으로 분봉에 출력하고 싶습니다. Period = 일봉상 9봉전부터 현재까지; BarRio = 0.01; Percent1 = 50; 수식1 B=if((C-O)/O>BarRio,V,if((C-O)/O<-BarRio,-V,0)); Buy=Sum(B)-Lowest(Sum(B),Period) 수식2 highest(Sum(B),Period)-Sum(B) 수식3 highest(Sum(B)-Lowest(Sum(B),Period),Period)*(Percent1/100) 그리고 1. 일봉상 9봉전부터 현재까지 거래대금이 200억 이상인 조건에서 위의 거래량지표로 15분봉상 수식1 > 수식3 인 종목을 검색하고 싶습니다. 2. 일봉상 9봉전부터 현재까지 거래대금이 200억 이상인 조건에서 위의 거래량지표로 15분봉상 수식1 > 5백만주 인 종목을 검색하고 싶습니다. 가능한가요? 감사합니다.
프로필 이미지
하루4%
2017-03-29
226
글번호 108334
지표