커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수정 부탁드립니다.

금요일날 전화 드렸던 사람입니다. 수평추세선의 값을 옴기지를 못하니 값이 겹&#52451;을때 구별이 잘안되서 너무 불편해서요.. 고민해본결과 수평추세선 값을 맨 오른쪽부터 배열시키되 열의 위치를바꾸어서 순차적으로 배 열시키게 해주실수 있겟는지요. 즉,상위1 값은 맨 오른쪽 첫번째 열에 상위2번 수평추세선 값은 그거보다 왼쪽으로 옮긴 열에 3번째는 더 왼쪽으로 이렇게 순위가 내려갈때마다 열은 왼쪽으로 가게 순차적으로 배열되게 해주시면 제가 쓰기 훨씬 편하겠읍니다. 추세선위에 값이 표현되는것은 같지만 열의 위치를 바꾸어 주시면 값이 겹치지않을거같아요 input : Price(10000), Per(10),N(5); var : cnt(0),cnt1(0),cnt2(0),cnt3(0),idx(0),color(0); var : SameO(0),SameH(0),SameL(0),SameC(0); Array : VV[50](0),OO[50](0),HH[50](0),LL[50](0),CC[50](0); Array : OTL[50](0),HTL[50](0),LTL[50](0),CTL[50](0),ii[50](0); Array : OTx[50](0),HTx[50](0),LTx[50](0),CTx[50](0),TX[50](0); idx = idx+1; for cnt = 1 to 49{ VV[cnt] = 0; OO[cnt] = 0; HH[cnt] = 0; LL[cnt] = 0; CC[cnt] = 0; ii[cnt] = 0; } #N개값 출력 for cnt1 = 1 to N{ TL_Delete(OTL[cnt1]); TL_Delete(HTL[cnt1]); TL_Delete(LTL[cnt1]); TL_Delete(CTL[cnt1]); Text_Delete(OTx[cnt1]); Text_Delete(HTx[cnt1]); Text_Delete(LTx[cnt1]); Text_Delete(CTx[cnt1]); Text_Delete(Tx[cnt1]); if cnt1 == 1 Then color = black; if cnt1 == 2 Then color = red; if cnt1 == 3 Then color = blue; if cnt1 == 4 Then color = GREEN; if cnt1 == 5 Then color = YELLOW; #차트 과거봉 전체 스캔 for cnt2 = 0 to idx { #Price대비 +- Per%안에 종가가 형성된 if !(L[cnt2] > Price*(1+Per/100) or H[cnt2] < Price*(1-Per/100)) and V[cnt2] > VV[cnt1] and (cnt1 == 1 or (cnt1 >= 2 and V[cnt2] < VV[cnt1-1])) Then { VV[cnt1] = V[cnt2]; OO[cnt1] = O[cnt2]; HH[cnt1] = H[cnt2]; LL[cnt1] = L[cnt2]; CC[cnt1] = C[cnt2]; ii[cnt1] = cnt2; } } #동일값 체크 sameO = 0; sameH = 0; sameL = 0; sameC = 0; for cnt3 = 1 to N { if OO[cnt1] == OO[cnt3] or OO[cnt1] == HH[cnt3] or OO[cnt1] == LL[cnt3] or OO[cnt1] == CC[cnt3] Then SameO = SameO+1; if HH[cnt1] == OO[cnt3] or HH[cnt1] == HH[cnt3] or HH[cnt1] == LL[cnt3] or HH[cnt1] == CC[cnt3] Then SameH = SameH+1; if LL[cnt1] == OO[cnt3] or LL[cnt1] == HH[cnt3] or LL[cnt1] == LL[cnt3] or LL[cnt1] == CC[cnt3] Then SameL = SameL+1; if CC[cnt1] == OO[cnt3] or CC[cnt1] == HH[cnt3] or CC[cnt1] == LL[cnt3] or CC[cnt1] == CC[cnt3] Then SameC = SameC+1; } #시가선 if SameO == 1 then { if LastBarOnChart == 1 Then MessageLog("O %.2f",color); #시가선 추세선 출력 OTL[cnt1] = TL_New(Sdate[1],stime[1],OO[cnt1],sdate,stime,OO[cnt1]); TL_SetExtLeft(OTL[cnt1],true); TL_SetExtRight(OTL[cnt1],true); TL_SetColor(OTL[cnt1],color); #시가선값 텍스트 출력 OTx[cnt1] = Text_New(sdate,stime,OO[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 시가:"+NumToStr(OO[cnt1],0)+"|"+NumToStr(VV[cnt1],0)); Text_SetStyle(OTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameH == 1 then { #고가선 추세선 출력 HTL[cnt1] = TL_New(Sdate[1],stime[1],HH[cnt1],sdate,stime,HH[cnt1]); TL_SetExtLeft(HTL[cnt1],true); TL_SetExtRight(HTL[cnt1],true); TL_SetColor(HTL[cnt1],color); HTx[cnt1] = Text_New(sdate,stime,HH[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 고가:"+NumToStr(HH[cnt1],0)); Text_SetStyle(HTx[cnt1],0,0); Text_SetColor(HTx[cnt1],color); } if SameL == 1 then { LTL[cnt1] = TL_New(Sdate[1],stime[1],LL[cnt1],sdate,stime,LL[cnt1]); TL_SetExtLeft(LTL[cnt1],true); TL_SetExtRight(LTL[cnt1],true); TL_SetColor(LTL[cnt1],color); LTx[cnt1] = Text_New(sdate,stime,LL[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 저가:"+NumToStr(LL[cnt1],0)); Text_SetStyle(LTx[cnt1],0,0); Text_SetColor(OTx[cnt1],color); } if SameC == 1 then { CTL[cnt1] = TL_New(Sdate[1],stime[1],CC[cnt1],sdate,stime,CC[cnt1]); TL_SetExtLeft(CTL[cnt1],true); TL_SetExtRight(CTL[cnt1],true); TL_SetColor(CTL[cnt1],color); CTx[cnt1] = Text_New(sdate,stime,CC[cnt1],"상위"+NumToStr(cnt1,0)+"번째봉 종가:"+NumToStr(CC[cnt1],0)); Text_SetStyle(CTx[cnt1],0,0); Text_SetColor(CTx[cnt1],color); } if CC[cnt1] > 0 then{ Tx[cnt1] = Text_New(sdate[ii[cnt1]],stime[ii[cnt1]],CC[cnt1],"●"+NumToStr(cnt1,0)); Text_SetStyle(Tx[cnt1],2,2); Text_SetColor(Tx[cnt1],color); Text_SetColor(Tx[cnt1],white); } } 어렵지만 한번 부탁드립니다....밥벌이가 달린 일이라 고민이 많읍니다.ㅜ.ㅜ
프로필 이미지
앙이
2018-09-02
153
글번호 121796
사용자 함수
답변완료

수식 문의

please check attaschment. always thank you
프로필 이미지
흑수돌
2018-09-06
159
글번호 121795
시스템
답변완료

오류 수정 및 질문

안녕하세요? 아래의 조건과 수식에서 오류가 있어 수정 및 질문 드립니다. 1. 질문 : 아래의 1번진입조건은 3가지 외부변수를 입력하는것인데, 양봉틱수와 음봉틱수라는 외부변수가 있습니다. 이것은 무엇인지요? 2. 오류 : 성능보고서가 먹통인데, 본 전략은 조건봉의 전략을 수행할만큼 충분합니다. 아래의 수식이 제대로 되어있는지 꼼꼼히 확인 부탁드립니다. 정확한 의도 전달을 위하여 매매조건을 최대한 쉽고 자세히 다시 서술해놓았습니다. 아래 매매조건과 수식을 비교하여 주시고, 부디 이전에 의견전달을 제가 잘 못하 여 잘못되있는 부분을 찾아 수정 부탁드리겠습니다. 감사합니다. ======================================================================================== * 진입조건 - 장시작후 day high와 day low사이가 (외부변수)틱 이상 벌어진후 아래의 매매 시작. (재진입시에는 무시하고 아래의 조건이 나오면 매매. - 모든매매는 틱차트. - 진입을 하였으면 익절 또는 손절을 하기전까지 재진입 하지않고, 익절 또는 손절 이후 조건 이 나오면 매매. 1. Day high 에서 (음봉x틱, 외부변수) 혹은 (음봉x틱, 외부변수) 혹은 (음봉x틱, 외부변 수) 출현시 매도 Day low 에서 (양봉 x틱, 외부변수) 혹은 (양봉 x틱, 외부변수) 혹은 (양봉 x틱, 외부변 수) 양봉매수 2. Day high 출현이후 발생하는 음봉의 고점과의 간격이 (외부변수,틱) 이내일시 그 해당 음봉에 매도진입. (Day high가 그 해당음봉일 수 도 있음) Day low 출현이후 발생하는 양봉의 저점과의 간격이 (외부변수,틱) 이내일시 그 해당 양봉에 매수진입. (Day low가 그 해당양봉일 수 도 있음) * 청산조건 1. 손절 (외부변수,틱) 2. 익절 (외부변수,틱) ---------------------------------------------------------------------------------------- input : N1(1),N2(2),N3(3),profit(10),loss(10),x(10),양봉틱수(5),음봉틱수(5); var1 = DayHigh-daylow; if C > O and (L == DayLow(0)+PriceScale*n1 or L == DayLow(0)+PriceScale*n2 or L == DayLow(0)+PriceScale*n3) and var1 >= x*PriceScale and abs(C-O) == 양봉틱수 Then buy(); if C < O and (H == DayHigh(0)-PriceScale*n1 or H == DayHigh(0)-PriceScale*n2 or H == DayHigh(0)-PriceScale*n3) and var1 >= x*PriceScale and abs(C-O) == 음봉틱수 Then sell(); SetStopProfittarget(profit*PriceScale,PointStop); SetStopLoss(loss*PriceScale,PointStop);
프로필 이미지
대구어린울프
2018-09-01
128
글번호 121794
시스템
답변완료

타주기시스템 오류수정

항상 감사드립니다 아래 시스템식에서 data1은 정상적으로 나오는데 data2는 원래식과 다르게 나옵니다. 수정부탁드립니다 Input : Period(12), Period1(5), Period2(5); var : val1(0,data1),V1(0,data1),v11(0,data1),v2(0,data1),v22(0,data1); var : H1(0,data1),L1(0,data1),H2(0,data1),L2(0,data1); var : cond1(false,data1),cond2(false,data1),T1(0,data1); Input : sto1(20), sto2(10), sto3(8); var : d2H1(0,data2),d2L1(0,data2),d2H2(0,data2),d2L2(0,data2); var : d2value1(0,data2),d2condition1(false,data2),d2condition2(false,data2); var : d2var1(0,data2),d2var11(0,data2),d2var2(0,data2),d2var22(0,data2),T2(0,data2); /**********************************************************************************/ val1 = StochasticsD(Period,Period1,PEriod2); Cond1 = val1 > 80; Cond2 = val1 < 20; if Cond1 == true and Cond1[1] == false Then { H1 = H; L1 = L; } if Cond1 == true then { if h > H1 Then H1 = h; if l < L1 Then L1 = l; } if Cond1 == false and Cond1[1] == true Then { v1 = (H1+L1)/2; v11 = v1[1]; } if Cond2 == true and Cond2[1] == false Then { H2 = H; L2 = L; } if Cond2 == true then { if h > H2 Then H2 = h; if l < L2 Then L2 = l; } if Cond2 == false and Cond2[1] == true Then { v2 = (H2+L2)/2; v22 = v2[1]; } /*************************************************************/ d2Value1 = StochasticsD(sto1,sto2,sto3); d2Condition1 = d2value1 > 80; d2Condition2 = d2value1 < 20; if d2Condition1 == true and d2Condition1[1] == false Then { d2H1 = data2(H); d2L1 = data2(L); } if d2Condition1 == true then { if data2(h) > d2H1 Then d2H1 = data2(h); if l < d2L1 Then d2L1 = data2(l); } if d2Condition1 == false and d2Condition1[1] == true Then { d2var1 = (d2H1+d2L1)/2; d2var11 = d2var1[1]; } if d2Condition2 == true and d2Condition2[1] == false Then { d2H2 = data2(H); d2L2 = data2(L); } if d2Condition2 == true then { if data2(h) > d2H2 Then d2H2 = data2(h); if data2(l) < d2L2 Then d2L2 = data2(l); } if d2Condition2 == false and d2Condition2[1] == true Then { d2var2 = (d2H2+d2L2)/2; d2var22 = d2var2[1]; } if v1 > v11 and crossup(val1,80) Then t1 = 1; if v2 < v22 and CrossDown(val1,20) Then T1 = -1; if d2var1 > d2var11 and crossup(d2value1,80) Then T2 = 1; if d2var2 < d2var22 and CrossDown(d2value1,20) Then T2 = -1; /********************************************************************/ if t2 == 1 and t2 == 1 Then buy("b1"); if t2 == -1 and t2 == -1 Then sell("s1"); 감사합니다
프로필 이미지
조민철
2018-08-31
136
글번호 121793
시스템
답변완료

수정부탁드립니다

$$,아래수식에서 월물시작 날자와시간를 외부변수로 지정해서 작성하려면 식을 어찌 수정해야할지 몰라 헤매고있습니다,(즉 만기일 개념없이 당월 시작일시를 지정해서 지정일로부터 1개월동안의 당월고,저점의 피보나치수열을 만들고 싶습니다),관리자님 도움부탁드립니다. var : month(0),nday(0),week(0); var :EX(false),HH(0),LL(0); var : t1(0),t2(0),t3(0),t4(0),t5(0),t6(0),t7(0),t8(0),t9(0),t10(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; week = DayOfWeek(date); #선물만기 #if Month%3 == 0 and nday >= 8 and nday <= 14 and week == 4 then if nday >= 8 and nday <= 14 and week == 4 then#옵션만기 EX = true; Else EX = false; if EX == false and EX[1] == true Then{ Condition1 = true; HH = H; LL = L; } if Condition1 == true then{ if H > HH Then HH = H; if L < LL Then LL = L; var1 = HH; var2 = LL; var3 = var1-var2; var4 = DayOpen(0); var5 = DayClose(1); plot1(var1,"Maxi"); plot2(var2+var3*0.764,"Outzone"); plot3(var2+var3*0.618,"Return"); plot4(var2+var3*0.500,"Middle"); plot5(var2+var3*0.382,"3차M"); plot6(var2+var3*0.236,"2차M"); plot7(var2+var3*0.112,"1차M"); plot8(var2,"Mini"); plot9(var4,"Open"); plot10(var5,"close"); } Text_Delete(t1); Text_Delete(t2); Text_Delete(t3); Text_Delete(t4); Text_Delete(t5); Text_Delete(t6); Text_Delete(t7); Text_Delete(t8); Text_Delete(t9); Text_Delete(t10); t1 = Text_New(sdate,stime,var1," Maxi :"+NumToStr(var1,2)); t2 = Text_New(sdate,stime,var2+var3*0.764," Outzone :"+NumToStr(var2+var3*0.764,2)); t3 = Text_New(sdate,stime,var2+var3*0.618," Return :"+NumToStr(var2+var3*0.618,2)); t4 = Text_New(sdate,stime,var2+var3*0.500," Middle :"+NumToStr(var2+var3*0.500,2)); t5 = Text_New(sdate,stime,var2+var3*0.382," 3차M :"+NumToStr(var2+var3*0.382,2)); t6 = Text_New(sdate,stime,var2+var3*0.236," 2차M :"+NumToStr(var2+var3*0.236,2)); t7 = Text_New(sdate,stime,var2+var3*0.112," 1차M :"+NumToStr(var2+var3*0.112,2)); t8 = Text_New(sdate,stime,var2," Mini : "+NumToStr(var2,2)); t9 = Text_New(sdate,stime,var4," Open : "+NumToStr(var4,2)); t10 = Text_New(sdate,stime,var5," Close : "+NumToStr(var5,2)); Text_SetStyle(t1,5,2); Text_SetStyle(t2,5,2); Text_SetStyle(t3,5,2); Text_SetStyle(t4,5,2); Text_SetStyle(t5,5,2); Text_SetStyle(t6,5,2); Text_SetStyle(t7,5,2); Text_SetStyle(t8,5,2); Text_SetStyle(t9,5,2); Text_SetStyle(t10,5,2); Text_SetColor(t1,YELLOW); Text_SetColor(t2,YELLOW); Text_SetColor(t3,YELLOW); Text_SetColor(t4,WHITE); Text_SetColor(t5,CYAN); Text_SetColor(t6,CYAN); Text_SetColor(t7,CYAN); Text_SetColor(t8,CYAN); Text_SetColor(t9,WHITE); Text_SetColor(t10,BLACK); $$$,언제나 늘 고맙습니다.
프로필 이미지
회원
2018-09-03
194
글번호 121792
지표
답변완료

타주기 시스템 변환

아래 시스템을 타주기 변환에 적용할수있도록(챠트1,챠트2) 부탁드립니다 Input : Period(100), Period1(28), Period2(13); var : fk(0),StoK(0),StoD(0); fk = (c-lowest(L,Period))/(highest(H,Period)-lowest(L,period))*100; StoK = wma(fk,Period1); StoD = ema(stok,Period2); 감사합니다
프로필 이미지
조민철
2018-08-31
136
글번호 121791
시스템
답변완료

청산시점

청산 월, 일, 시간지정 예) 09월 11일 14시 15분 23초 에 청산 하도록 하고자 할 때 그에 따른 수식을 부탁드립니다.
프로필 이미지
너무조아
2018-09-01
136
글번호 121790
시스템
답변완료

수식 부탁

주식 종목 이격도 매매 SYS 식에서 전일 기관과 외인이 순 매수일때만 매매신호가 나오는 수식 부탁합니다.
프로필 이미지
대주발
2018-08-31
144
글번호 121789
시스템
답변완료

함수요청

안녕하세요? 함수요청드립니다. A = 당일시가 + {당일제외 과거 10일 (고가-시가)의 평균} B = 당일시가 + {당일제외 과거 10일 (시가-저가)의 평균} C = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 시가)의 절대값의 평균} D = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 고가)의 절대값의 평균} E = 전일종가 + {당일제외 과거 10일 (전영업일 종가-당영업일 저가)의 절대값의 평균} 당일 시가 발생시 A,B,C,D,E 값이 도출되면 매수: A~E 사이에 시가에 제일 가까운 값보다 작은 값 터치시 익봉 시가에 진입 매도: A~E 사이에 시가에 제일 가까운 값보다 큰 값 터치시 익봉 시가에 진입 손절: 매수가 아랫 가격, 매도가 아랫가격 당일 종가 강제청산 가령, A =100 B = 90 C = 80 D = 70 E = 60 이고 당일 시가가 77이라면 현재가가 90터치시 익봉 시가에 매도 신호 70터치시 익봉 시가에 매수 신호 발생, 매도진입시 손절은 100에, 매수진입시 손절은 60입니다. 손절조건이 만족하지 않을 시 당일 종가에 강제 청산하고자합니다.
프로필 이미지
흰둥이아빠
2018-08-31
135
글번호 121787
시스템