커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
이의정
2013-11-07
13
글번호 69298
시스템
답변완료

문의드립니다.

1. 하루에 거래횟수를 2번으로 제한하고 싶습니다. 즉 매수진입이후 반대신호가 나와서 반대진입이 되었으면 종가청산하도록하고싶습니다. 2. 참조데이타 외국인순매수데이터를 보고 있다면 그 참조데이타에 지표를 적용하는건 불가능한가요? 즉 외인순매수데이타에 macd를 적용을 시켜서 보고싶다면요.
프로필 이미지
희망의날개
2013-11-07
183
글번호 69297
시스템
답변완료

다시 문의요

안녕하세요~~ 다시 문의 합니다 첨부 올려놨으니 보시고 확인부탁합니다 하루에 2번들어가는 식이 몇개 나오는데요 ㅜㅜ 하루에 한번들어가는 식 문의했는데요 매수하는 방법이 35개정도 되는데요 이식 모두 하루에 한번 일어나게 해주세요 예를들어) a1식이 매수가들어가면 a2,a3,b1,b2.... 등등식은 오늘하루 진입안되게해주세요 그다음날은 다시 진입되게 해주세요 분봉으로 적용합니다 수고하십시오~~~ input : 투자금액(100000); Var : Body(0),HighBody(0),LowBody(0),Height(0),UpTail(0),DnTail(0),Long(False); var : Vol(0),cnt(0),count(0); count = 0; for cnt = 0 to 10{ if sdate == EntryDate(cnt) Then count = count+1; } if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int((투자금액)/C)/10)*10; Else vol = int((투자금액)/C); Body = Abs(C-O); HighBody = Max(C,O); LowBody = Min(C,O); Height = H-L; UpTail = H-Max(C,O); DnTail = Min(C,O)-L; if count < 1 Then{ If (C[3] > Ma(C,10)[3] and C[3] > O[3] and C[2] > O[2] and C[1] > O[1]) and (O[3] < O[2] and O[2] < O[1]) and (C[3] < C[2] and C[2] < C[1]) and (H[3] < H[2] and H[2] < H[1]) and (C[3] > O[2] and O[2] > O[3]) and (C[2] > O[1] and O[1] > O[2]) and (Body > ma(Body,10)*2 and C < O) and (O > H[1] and C < L[3]) Then buy("b1",OnClose,def,vol); If (C[4] >= Ma(C,10)[4] and C[4] > O[4] and Body[4] > Ma(Body,10)[4]*2) and (LowBody[3] > Highbody[4]) and (HighBody[3] >= HighBody[2] and HighBody[2] >= HighBody[1]) and (C > O and Body > Ma(Body,10)*2 and Close == Highest(C,5)) Then buy("b2",OnClose,def,vol); If (C[2] >= Ma(C,10)[2] and C[2] > O[2] and C[1] > O[1] and C > O) and (O[1] > LowBody[2] and Open[1]<=HighBody[2]) and (O > LowBody[1] and O <= HighBody[1]) and (C[2] < C[1] and C[1] < C[0]) and (Body[2]>Body[1] and Body[1]>Body[0]) Then buy("b3",OnClose,def,vol); If (C[1] >= Ma(C,10)[1] and C[1] < O[1] and Body[1] > Ma(Body,10)[1]*2 and C > O) and (Abs(Open-Open[1]) < Ma(Height,10)*0.1) Then buy("b4",OnClose,def,vol); If C[2] >= ma(C,10)[2] and C[2] > O[2] and Body[2] > Ma(Body,10)[2]*2 and C[1] > O[1] and Body[1] > Ma(Body,10)[1]*2 and Open[1] > Max(O,C)[2] and C < O and C < C[2] Then buy("b5",OnClose,def,vol); If C[2] >= Ma(C,10)[2] and C[2] > O[2] and Body[2] > Ma(Body,10)[2]*2 and C[1] > O[1] and C > O and O[1] > C[2] and Abs(Body-Body[1]) < Body*0.1 and Abs(O-O[1]) < Ma(Height,10)*0.1 Then buy("b6",OnClose,def,vol); If C[4] >= Ma(C,10)[4] and C[4] > O[4] and Body[4] > Ma(Body,10)[4]*2 and HighBody[3] < H[4] and LowBody[3] >= L[4] and HighBody[2] < H[4] and LowBody[2] >= L[4] and HighBody[1] < H[4] and LowBody[1] >= L[4] and HighBody[3] >= HighBody[2] and HighBody[2]>=HighBody[1] and C > O and Body > Ma(Body,10)*2 and Close == Highest(C,5) Then buy("b7",OnClose,def,vol); If C[2] > Ma(C,10)[2] and C[2] > O[2] and C[1] > O[1] and O[1] > Max(O,C)[2] and C < O and O >= LowBody[1] and O <= HighBody[1] and C > C[2] Then buy("b8",OnClose,def,vol); If C > Ma(C,10) and Body > Ma(Body,10)*2 and C > O and UpTail < Height*0.1 and DnTail < Height*0.1 Then buy("b9",OnClose,def,vol); If C[2] > Ma(C,10)[2] and C[2] > O[2] and C[1] > O[1] and C > O and O[1] >= LowBody[2] and O[1] <= HighBody[2] and O >= LowBody[1] and O <= HighBody[1] and C[2] < C[1] and C[1] < C and Body < Ma(Body,10)*0.5 and O > Max(C,O)[1] Then buy("b10",OnClose,def,vol); } DnTail = Min(O,C) - L; Uptail = H - Max(O,C); Height = H - L; body= Abs(O-C); highbody = Max(O,C); LowBody = Min(O,C); If Abs(Open-Close) > ma(Abs(Open-Close),10)*2 Then Long = True; Else Long = False; If UpTail == 0 and DnTail == 0 Then Condition1 = True; Else Condition1 = False; if count < 1 Then{ If C < Ma(C,10) and DnTail < Height*0.1 and C == O and Height > Ma(Height,10) Then buy("a1",OnClose,def,vol); Else If C < Ma(C,10) and (Uptail < Height * 0.1) and C == O and (Height > Ma(Height,10)) Then buy("a2",OnClose,def,vol); Else If C[1] < Ma(C,10)[1] and C[1] < O[1] and Long[1] == True and C > O and Long and O < L[1] and C >= (O[1]+C[1])/2 and C < O[1] Then buy("a3",OnClose,def,vol); Else If (C[2] >= Ma(C,10)[2] and C[2] < O[2] and C[1] < O[1] and C < O) and (O[1] > Min(O,C)[2] and O[1] < Max(O,C)[2]) and (O > Min(O,C)[1] and O < Max(O,C)[1]) and (C[2] > C[1] and C[1] > C[0]) and (L[2] < L[1] and L[1]< L[0]) Then buy("a4",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and C[2] < O[2] and C[1] > O[1] and C < O and O[1] > C[2] and O[1] == L[1] and O > Max(H[1],H[2]) and C[2] == C[0] Then buy("a6",OnClose,def,vol); Else If (C[4] < Ma(C,10)[4] and C[4] < O[4] and C[3] < O[3] and C[2] < O[2]) and (O[4] > O[3] and O[3] > O[2]) and (C[4] > C[3] and C[3] > C[2]) and (C[1] < O[1] and H[1] - MaxList(O,C)[1] > 0) and (H[1] < O[3] and C[2] > C[1]) and Close > Open and (O > O[1] and C > MaxList(H[1],H[2])) Then buy("a7",OnClose,def,vol); Else If (C[2] < Ma(C,10)[2] and Long[2] == True and C[2] < O[2]) and (C[1] == O[1] and Max(O,C)[1] < Min(O,C)[2])and (C > O and Min(O,C) > Max(O,C)[1])and (C > C[2]) Then buy("a8",OnClose,def,vol); Else If (C[1] < O[1] and Long[1] == True and Condition1[1] == True ) and (Long == True and C > O and Condition1 == True ) and (L > H[1]) Then buy("a9",OnClose,def,vol); Else If C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C > O and Abs(C-C[1]) < Ma(Height,10)*0.1 Then buy("a10",OnClose,def,vol); Else If C < Ma(C,10) and body > Ma(body,10)*2 and C > O and O == L and Uptail > 0 and Uptail < Height*0.1 Then buy("a11",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and C[2] == O[2] and C[1] == O[1] and C == O and HighBody[1]< LowBody[2] and HighBody[1] < LowBody[0] Then buy("a12",OnClose,def,vol); Else If C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C == O and Highbody < Highbody[1] and Lowbody > Lowbody[1] Then buy("a13",OnClose,def,vol); Else If C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C > O and Highbody < Highbody[1] and Lowbody > Lowbody[1] Then buy("a14",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and C[2] < O[2] and body[2] > Ma(body[2],10)*2 and C[1] > O[1] and Highbody[1] < Highbody[2] and Lowbody[1] > Lowbody[2] and C > O and C > C[1] Then buy("a15",OnClose,def,vol); Else If C[1] < Ma(c,10)[1] and C[1] < O[1] and C > O and Body > Ma(Body,10)*2 and Highbody > Highbody[1] and Lowbody < Lowbody[1] Then buy("a16",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and C[2] < O[2] and C[1] > O[1] and Body[1] > Ma(Body[1],10)*2 and Highbody[1] > Highbody[2] and Lowbody[1] < Lowbody[2] and C > O and C > C[1] Then buy("a17",OnClose,def,vol); Else If (C[4] < Ma(c,10)[4] and Body[4] > Ma(Body,10)[4]*2 and C[4] < O[4]) and (C[3] < O[3] and C[1] < O[1]) and (Body > Ma(Body,10)*2 and C > O) and (O[3] > HighBody[2] and HighBody[2] > O[1]) and (C[3] > LowBody[2] and LowBody[2] > C[1]) and (C >= O[1] and C > O[3] and C < C[4]) Then buy("a18",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and C[1] == O[1] and HighBody[1]<LowBody[2] and C > O and C > C[2] Then buy("a19",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and Body[1] < Ma(Body,10)[1]*0.5 and HighBody[1] < LowBody[2] and C > O and C > C[2] Then buy("a20",OnClose,def,vol); Else If C[3] < Ma(C,10)[3] and Body[3] > Ma(Body,10)[3]*2 and C[3] < O[3] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and O[3] == H[3] and C[3] == L[3] and O[2] == H[2] and C[2] == L[2] and O[1] < Min(O,C)[2] and H[1] > C[2] and UpTail[1] > Height*0.5 and O > H[1] and C < L[1] Then buy("a21",OnClose,def,vol); Else If C < Ma(C,10) and DnTail < Height*0.1 and UpTail > Body*2 and Height > Ma(Height,10) and C != O Then buy("a22",OnClose,def,vol); Else If C[2] < Ma(C,10)[2] and C[2] > O[2] and C[1] > O[1] and C > O and O[1] >= LowBody[2] and O[1]<= HighBody[2] and O <= HighBody[1] and C[2] <= C[1] and C[1] <= C Then buy("a23",OnClose,def,vol); Else If C[1] < Ma(C,10)[1] and C[1] < O[1] and Body[1] > Ma(Body,10)[1]*2 and C < O and Highbody < Highbody[1] and Lowbody > Lowbody[1] Then buy("a24",OnClose,def,vol); Else If C < Ma(C,10) and UpTail < Height*0.1 and DnTail > Body*2 and Height > Ma(Height,10) and C != O Then buy("a26",OnClose,def,vol); Else If (C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2]) and (C[1] < O[1] and C > O and Highbody[1] < Highbody[2] and Lowbody[1] > Lowbody[2]) and (L[1] < L[2] or L[1] < Min(L[2],L[3],L[4])) and (L[1] < O and C[1] > C) Then buy("a27",OnClose,def,vol); } SetStopProfittarget(3,PercentStop); if CurrentEntries >= 2 Then exitlong("매도2",atlimit,AvgEntryPrice*1.02);
프로필 이미지
회원
2013-11-07
200
글번호 69296
시스템
답변완료

질문 드립니다.

var : slowK(0), slowD(0), macdV(0), macdS(0), ma1(0), ma2(0); var : Cond1(False), Cond2(False), Cond3(False), Cond4(False), Cond5(False), Cond6(False), buyCond(0), bPosition(0); slowK = stochasticsK(20,12); //stochastics slowK선 slowD = stochasticsD(20,12,12); //stochastics slowD선 macdV = macd(12,26); //macd선 macdS = ema(macdV,9); //macd signal선 ma1 = ma(C,5); //단기이동평균 ma2 = ma(C,20); //장기이동평균 Cond1 = CrossUp(slowK, slowD); //매수조건1 Cond2 = CrossUp(macdV, macdS); //매수조건2 Cond3 = CrossUp(ma1, ma2); //매수조건3 Cond4 = CrossDown(slowK, slowD); //매수청산조건1 Cond5 = CrossDown(macdV, macdS); //매수청산조건2 Cond6 = CrossDown(ma1, ma2); //매수청산조건3 //매수식 if bposition != 1 then Begin if Cond1 then { buy(); buyCond = 1; bposition = 1; } if Cond2 then { buy(); buyCond = 2; bposition = 1; } if Cond3 then { buy(); buyCond = 3; bposition = 1; } End; //매수청산식 if buyCond == 1 and Cond4 then { exitlong(); bPosition = 0; } if buyCond == 2 and Cond5 then { exitlong(); bPosition = 0; } if buyCond == 3 and Cond6 then { exitlong(); bPosition = 0; }
프로필 이미지
회원
2013-11-07
172
글번호 69295
시스템
답변완료

질문 좀..

.
프로필 이미지
udud
2013-11-07
187
글번호 69294
종목검색

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

프로필 이미지
zephyr
2013-11-07
10
글번호 69293
시스템

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

프로필 이미지
dltkdal4
2013-11-07
4
글번호 69292
시스템
답변완료

문의드립니다

전일 거래량이 제일 많이 거래된봉 의 중간값 전일 거래량이 두번째 많이 거래된봉 의 중간값 전일 거래량이 세번째 많이 거래된봉 의 중간값을 당일 표시하고싶습니다
프로필 이미지
처음처럼22
2013-11-06
154
글번호 69290
지표
답변완료

수식문의

1.아래의 수식을가지고(아니면다른수식가능) #틱봉이 만들어지는 시간 계산을 할수있나요 1분안에 봉갯수를 몇개 만든가를 계산수식부탁합니다 틱은100틱사용합니다 input : P1(1),P2(5),P3(20),N(5),X(2000); var : S1(0),S2(0),stimeTosecond(0),E1(0),E2(0),timeTosecond(0),SecondMakecandle(0); var : sum(0),vol(0),cnt(0); #틱봉이 만들어지는 시간 계산 S1 = TimeToMinutes(stime)*60; S2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = S1+S2; E1 = TimeToMinutes(time)*60; E2 = FracPortion(time/100)*100;//&#44561;시간 초 timeTosecond = E1+E2; SecondMakecandle = timeTosecond-stimeTosecond; sum = 0; vol = 0; for cnt = 0 to 200{ sum = sum + SecondMakecandle[cnt]; if sum <= 300 Then{ vol = vol+V[cnt]; } //초합계가 300이 넘거나 이전봉의 날짜가 당일이 아니면 for문 중지 if sum > 300 or sdate[cnt] != sdate Then cnt = 201; } 2.아래수식에서반등반락시 38.2 위에서는매수 61.8 아래에서는 매도 시스템 수식 바뀌주세요 input:left(5),right(5),구분(1); var:j(0),prehv(0),prelv(0),prehb(0),prelb(0),tmpv(0),tmpb(0), ovr(0),반등(1),반락(-1); array:hv[10](0),lv[10](0),hb[10](0),lb[10](0), r[8](0),fr[8](0); r[0] = 0; r[1] = 0.236; r[2] = 0.382; r[3] = 0.50; r[4] = 0.618; r[5] = 0.764; r[6] = 1; r[7] = 1.618; #==============================================================================# # 변곡점 계산 #==============================================================================# //파동선 작성 설명은 자주 했으므로 생략 if highest(h[1],left) <= h then { prehv = h; prehb = 0; } else prehb = prehb + 1; if lowest(l[1],left) >= l then { prelv = l; prelb = 0; } else prelb = prelb + 1; for j = 1 to 9 begin hb[j] = hb[j] + 1; lb[j] = lb[j] + 1; end; if prehb == right and highest(h,right) <= h[right] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } hv[1] = prehv; hb[1] = prehb; if lb[1] > hb[2] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } tmpv = 0; for j = hb[1] + 1 to hb[2] - 1 { if tmpv > l[j] or tmpv ==0 then { tmpv = l[j]; tmpb = j; } } lv[1] = tmpv; lb[1] = tmpb; } } if prelb == right and lowest(l,right) >= l[right] then { for j = 9 downto 2 { lv[j] = lv[j-1]; lb[j] = lb[j-1]; } lv[1] = prelv; lb[1] = prelb; if hb[1] > lb[2] then { for j = 9 downto 2 { hv[j] = hv[j-1]; hb[j] = hb[j-1]; } tmpv = 0; for j = lb[1] + 1 to lb[2] - 1 { if tmpv < h[j] or tmpv ==0 then { tmpv = h[j]; tmpb = j; } } hv[1] = tmpv; hb[1] = tmpb; } } #==============================================================================# # Fibonacci Retracements 계산 #==============================================================================# //반등과 반락을 모두 표시하게 되면 복잡해지므로 한 방향만 표시하는 것이 옳음 if 구분 == 반등 then { if crossup(lb[1],hb[1]) then { for j = 0 to 7 begin fr[j] = hv[1] - (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } if 구분 == 반락 then { if crossup(hb[1],lb[1]) then { for j = 0 to 7 begin fr[j] = lv[1] + (hv[1] - lv[1]) * r[j]; end; ovr = 0; } if fr[6]>l then ovr = 1; } #==============================================================================# # 지표출력 #==============================================================================# if hb[1]==right then plot1(hv[1],"파동선",GREEN); if lb[1]==right then plot1(lv[1],"파동선",GREEN); plot2(fr[0],"0%",BLUE); plot3(fr[1],"23.6%",RED); plot4(fr[2],"38.2%",MAGENTA); plot5(fr[3],"50%",GRAY); plot6(fr[4],"61.8%",LBLUE); plot7(fr[5],"76.4%",LGREEN); plot8(fr[6],"100%",PINK); if ovr then plot9(fr[7],"161.8%",LMAGENTA); //점 그래프로 표시
프로필 이미지
백진강
2013-11-07
230
글번호 69284
시스템