커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

장시작후 40분경과 추가질문

안녕하세요 예스스탁입니다. input : N(40); var : TF(0); if dayindex == 0 Then{ TF = TimeToMinutes(stime); var1 = 0; var2 = 0; } if dayindex >= 0 and TimeToMinutes(stime) <= TF+N Then{ if C > O or (C==O and C >= C[1]) then var1 = var1+1; if C < O or (C==O and C < C[1]) then var2 = var2+1; } if TimeToMinutes(stime) == TF+N Then{ if var1 >= (var1+var2)*0.7 Then buy(); if var2 >= (var1+var2)*0.7 Then sell(); } 즐거운 하루되세요 > inno33 님이 쓴 글입니다. > 제목 : 장시작후 40분 경과후 봉갯수 > 장시작후 40분간 양봉과 음봉의 갯수를 카운트해서 많은쪽으로 진입하는 시스템을 작성하려 합니다. 시간조정할수 있고 ,또한가지 40분간 양봉과 음봉의 비율이 7:3 이상이되면 진입하는 수식도 부탁합니다. 40분동안 7:3 비율이 되지 않으면 7:3비율 조건 충족시에 진입하는 방식으로 수식 부탁드립니다. 매번 친절한 답변 감사드립니다. 그럼 수고하세요 -추가질문- 위 내용을 적용해서 시뮬레이션 한결과 특정시간 9:40분 이든 최적화적용된 시간가지 신호가 발생하지 않을경우 기본시스템을 40분까지 신호 발생하는것을 적용하되 그시간까지 신호가 없는경우 70%조건 충족되는 시점에 신호가 1일에 1회는 발생하는 조건을 추가하고 싶습니다. 그럼수고하세요
프로필 이미지
inno33
2014-08-03
135
글번호 77341
시스템
답변완료

지표식 부탁드립니다.

파라볼릭 상승이나 하락 신호시에 첫번째 봉(그 이외의 봉은 생략)을 기준으로 오른쪽 수평선(상승신호시에는 빨간색, 하락신호시에는 파랑색)을 그릴 수 있는지, 즉 지지저항분석선처럼 가능한지요
프로필 이미지
서태공
2014-08-03
163
글번호 77340
지표
답변완료

데이터처리시간 절약 방법??

제가 시스템을 만들어봤는데 변수나 값, 함수, 식 등등이 복잡해서 데이터처리시간이 상당히 긴 편 (시스템을 아주 긴 주기의 시뮬레이션차트에 넣을 때는 렉이 2분 이상 걸리기도 합니다) 입니다. 따라서 조금이나마 그런 시간을 줄일 수 있도록 편집을 하려는데요 아주 간략화해서 상황을 설명드리자면...... 1안 input: bbperiod(60), bbstdev(2), mcperiod1(12), mcperiod2(26); var: bbu(0), bbd(0),mc(0); bbu = bollbandup(bbperiod, bbstdev); bbd = bollbanddown(bbperiod, bbstdev); mc = macd(mcperiod1,mcperiod2); 이 밑으로 여러 식들, condition들........... 2안 var: bbu(0), bbd(0),mc(0); bbu = bollbandup(60, 2); bbd = bollbanddown(60, 2); mc = macd(12,26); 이 밑으로 여러 식들, condition들........... 위와 같이 1안은 input을 활용해서 60,2,12,26의 변수값들을 input으로 끌어내는 방식으로 작성하는 것이고 2안은 input 쪽으로 꼭 변수값을 묶어서 나타내야 하는 경우가 아니라면 그냥 60,2,12,26등의 변수값을 직접 입력하는 방식으로 작성한 것입니다 input에 값을 입력함으로써 데이터처리가 한 번 더 이뤄진다면 1안이 시간 잡아먹는게 그만큼 클 것이고 2안이 시간이 적게드는 방식일 것이라 생각될 수 있고 반대로 bbu와 bbd와 같이 같은 변수값을 사용하는 식이 있을때 그 변수값들을 통일해서 bbperiod, bbstdev로 쓰고 input 란을 통해서 구현함으로써 bbu와 bbd의 변수값들을 각각 데이터처리하는게 아니라 bbperiod, bbstdev로 1번에 처리하는 거라면 1안이 더 시간이 적게드는 방식이 될 수 있을거라 생각도 듭니다 어느쪽으로 하는 것이 데이터처리시간을 조금이라도 단축할 수 있을까요?? (데이터처리시간 = 차트에 시스템 넣고 구현되기까지 소요시간 내지는 렉 걸리는 시간)
프로필 이미지
billy
2014-08-02
202
글번호 77339
시스템

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

프로필 이미지
wisdom
2014-08-02
28
글번호 77338
사용자 함수
답변완료

수식 문의

주가가 횡보하고 볼밴이 가장 좁아졌다가 벌어지며 상단 돌파 매수. 중단이탈 청산 반대로 하단 이탈 매도..중단 돌파 청산 식을 작성해 주세요.
프로필 이미지
회원
2014-08-02
179
글번호 77337
시스템
답변완료

문의드립니다

안녕하세요 개별주식선물을 지수이동평균선(5분선, 20분선)이 상향돌파할 때 매수, 하향돌파할 때 매도하고 있읍니다. (예를 들어, 자동주문으로 A주식선물을 고정자산기준 3백만원으로 설정할 때, 매수신호는 9시30분에 나오고 매수량은 35계약, 매수청산신호는 10시45분에 나올 경우) 1. 매수신호(9시30분)시 실제로 매수량이 20계약만 매수되었을 경우, 매수청산신호(10시45분)시 35계약이 매수청산되지 않고, 실제 매수된 20계약만 매수청산되게 하는 식 2. 10시에 A주식선물을 자동주문으로 작동하면 10시 45분에 매수청산으로 매도되는 바, 매수청산(10시45분)시 매도되지 않고, 순서대로 매수후 매수청산 방식으로, 다음 매수신호 발생시 매수.매수청산 되게하는 식 부탁드립니다.
프로필 이미지
cycu
2014-08-02
161
글번호 77336
시스템
답변완료

시스템식 부탁드립니다.

1. 가상매매조건은 다음과 같습니다. var : SH(0),SL(0),SHi(0),SLi(0); var : var1(0),var2(9999999999999),var3(9999999999999); SH = SwingHigh(1,H,3,3,7); SL = SwingLow(1,L,3,3,7); var1 = round(ma((H+L+O+C)/4,60)*20,0)/20; if SH != -1 and SH > var1 Then{ if SH > var2 Then{ var2 = SH; SHi = index; } if SH < var2 and index > SLi and SLi > SHi Then{ var2 = SH; } } if SL != -1 and SL < var1 Then{ if SL < var3 Then{ var3 = SL; SLi = index; } if SL > var3 and index > SHi and SHi > SLi Then{ var3 = SL; } } If H>var2+0.07 Then{ var4=Index; Exitshort("sx1"); Playsound("K:₩음성₩드럼소리.wav"); } If Marketposition==1 and L<var1-0.47 Then{ Playsound("K:₩음성₩드럼소리.wav"); } If L<var3-0.07 Then{ var5=Index; Exitlong("bx1"); Playsound("K:₩음성₩유리.wav"); } If Marketposition==1 and L<var1-0.47 Then{ Playsound("K:₩음성₩유리.wav"); } condition1=Marketposition(1)==1 and Marketposition==0; condition2=Marketposition(1)==-1 and Marketposition==0; If SL>var1 Then var6=SL; If SH<var1 Then var7=SH; If condition1==false and var4>var5 and L<=var6 Then{ Buy("b",atlimit,var6,1); Playsound("K:₩음성₩종소리.wav"); } If condition2==false and var4<var5 and H>=var7 Then{ Sell("s",atlimit,var7,1); Playsound("K:₩음성₩종소리.wav"); } 2. 실제매매조건 위의 가상매매조건대로 매매했다고 가정할 때 (전일가상매매도 함께 이어서 카운트) 직전6번의 실현손익이 (4연속손실+1회이익+1회손실) 또는 직전5번의 실현손익이 (5연속손실)일 때에만 가상매매조건의 매수(매도)조건에 매수(매도). 가상매매조건의 매수(매도)청산조건에 청산. 1포인트 익절. 청산되고 나면 다시 가상매매조건의 손익순서와 횟수를 카운트하여 맞는 조건에 진입 [가상거래 수익(승)손실(패)거래와 실제매매(0)의 예 가상거래 : 승패패패패승패승승승패패패패패패승패승 실제거래 : 0 0 0 0 3. 위와 같은 방법을 전제로 하는 시스템식을 부탁드립니다.
프로필 이미지
묘선낭자
2014-08-02
246
글번호 77335
시스템
답변완료

37402 재질문

앞에 37402에 올렸던 추세선 수식입니다 하락추세를 상향추세 돌파할때 매매식 37402 참고하여 부탁합니다 input : 기간(7); var : cnt(0),TL11(0),TL12(0),TL21(0),TL22(0); Array :HD[10](0),HT[10](0),HH[10](0),LD[10](0),LT[10](0),LL[10](0); if SwingHigh(1,H,기간,기간,기간*2+1) != -1 Then{ HD[0] = sdate[기간]; HT[0] = sTime[기간]; HH[0] = H[기간]; #plot1(HH[0]); for cnt = 1 to 2{ HD[cnt] = HD[cnt-1][1]; HT[cnt] = HT[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; if HH[cnt] > 0 and HH[0] < HH[cnt] Then{ if cnt == 1 Then{ TL_SetExtRight(TL11,False); TL11 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]); TL_SetExtRight(TL11,true); TL_SetColor(TL11,RGB(0, 191, 255)); TL_SetSize( TL11,3); } if cnt == 2 Then{ TL_SetExtRight(TL12,False); TL12 = TL_New(HD[cnt],HT[cnt],HH[cnt],HD[0],HT[0],HH[0]); TL_SetExtRight(TL12,true); TL_SetColor(TL12,RGB(0, 191, 255)); TL_SetSize( TL12,2); } } } } if SwingLow(1,L,기간,기간,기간*2+1) != -1 Then{ LD[0] = sdate[기간]; LT[0] = sTime[기간]; LL[0] = L[기간]; #plot1(LL[0]); for cnt = 1 to 2{ LD[cnt] = LD[cnt-1][1]; LT[cnt] = LT[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; if LL[cnt] > 0 and LL[0] > LL[cnt] Then{ if cnt == 1 Then{ TL_SetExtRight(TL21,False); TL21 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]); TL_SetExtRight(TL21,true); TL_SetColor(TL21,RGB(255, 20, 147)); TL_SetSize( TL21,3); } if cnt == 2 Then{ TL_SetExtRight(TL22,False); TL22 = TL_New(LD[cnt],LT[cnt],LL[cnt],LD[0],LT[0],LL[0]); TL_SetExtRight(TL22,true); TL_SetColor(TL22,RGB(255,20, 147)); TL_SetSize( TL22,2); #TL2 추세선을 점선으로 지정 } } } } if (C > TL_GetValue(TL11,sdate,stime) and C[1] < TL_GetValue(TL11,sdate[1],stime[1])) or (C > TL_GetValue(TL12,sdate,stime) and C[1] < TL_GetValue(TL12,sdate[1],stime[1])) Then plot1(H); if (C < TL_GetValue(TL21,sdate,stime) and C[1] > TL_GetValue(TL21,sdate[1],stime[1])) or (C < TL_GetValue(TL22,sdate,stime) and C[1] > TL_GetValue(TL22,sdate[1],stime[1])) Then plot1(L);
프로필 이미지
미래테크
2014-08-01
191
글번호 77334
시스템
답변완료

수급 재질문

수급 참조 당일 초기화 시키는 질문에 대해 아래와 같이 답변 주셨었는데요. 기관과 외국인 수급을 합한 지표를 만들고 싶은데 그것에 대한 식을 알려주시면 감사하겠습니다. 아래 두가지 값에 대해 당일 초기화가 필요합니다. var1 = AA+CC var2 = ma(var1, 20) ------------------------------------------------------- 안녕하세요 예스스탁입니다. 당일 data2에서 첫번째 데이터가 들어올때부터 값이 출력되게 작성했습니다. 그 이전에는 모두 0으로 출력됩니다. input : p1(30); var : BB(0,data2),mav(0,data2); var : cond(false,data1); if data1(sdate != sdate[1]) Then{ cond = false; } if sdate == data2(sdate) Then cond = true; if cond == true Then{ mav = data2(ma(c,P1)); BB = data2(c); } Else{ mav= 0; BB = 0; } plot1(BB,"개인"); plot2(mav,"ma"); PlotBaseLine1(0,"기준선"); 이평값을 당일 데이터만 이용해서 그리신다면 아래와 같습니다. data2가 당일 30개 봉 이전에는 당일것만 모아서 평균 30개 이후에는 30이평 input : p1(30); var : BB(0,data2),sum(0,data2),idx(0,data2),mav(0,data2); var : cond(false,data1); if data1(sdate != sdate[1]) Then{ cond = false; } if data2(sdate != sdate[1]) Then{ sum = 0; idx = 0; } if sdate == data2(sdate) Then cond = true; sum = sum+data2(c); idx = idx+1; if cond == true Then{ if data2(dayindex < P1) Then mav = sum/idx; Else mav = data2(ma(c,P1)); BB = data2(c); } Else{ mav= 0; BB = 0; } plot1(BB,"개인"); plot2(mav,"ma"); PlotBaseLine1(0,"기준선");
프로필 이미지
회원
2014-08-01
190
글번호 77333
시스템