커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

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

프로필 이미지
회원
2019-03-06
0
글번호 126795
시스템
답변완료

문의드립니다

어제 질문한 번호 61591 내용을 검색하여도 반응이었습니다 그래서 똑같은 내용으로 지표식으로 해보니 잘되고요 조건식을 지우고 해봐도 번응이었습니다 다시 확인 부탁드립니다 1 Input : Period1(222),Period2(222),p(9); var : cnt(0),sum1(0),sum2(0),sum3(0); Array : OO[222](0),CC[222](0); var1 = h[1]; var2 = l[1]; var3 = abs (var1 - var2)*100; if c >= h[1] and Upvol > DownVol and var3 > 3 or c <= l[1] and DownVol > Upvol and var3 > 3 Then { OO[0] = O; CC[0] = C; for cnt = 1 to 221 { OO[cnt] = OO[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if OO[Period1] > 0 then { sum1 = 0; for cnt = 0 to Period1-1 { sum1 = sum1 + OO[cnt]; } var8 = sum1/Period1; } if CC[Period2] > 0 then { sum2 = 0; for cnt = 0 to Period2-1 { sum2 = sum2 + CC[cnt]; } var9 = sum2/Period2; } if OO[P] > 0 then { sum3 = 0; for cnt = 0 to P-1 { sum3 = sum3 + OO[cnt]; } var10 = sum3/P; } if var8 >= var9 and crossup(var10,var8) and C[1] <= var8*1.03 and C[1] >= var8*0.97 Then find(1);
프로필 이미지
파파리리
2019-03-06
227
글번호 126794
종목검색
답변완료

함수변환 요청

안녕하세요? 아래는 시그널메이커로 작성된 스크립트입니다. 예스트레이더로 사용할 수 있도록 함수 변환 요청드립니다. 감사합니다. Vars : st(0), et(0); V1 = Dayofweek((10000 * Year(D)) + (100 * 3) + 1); If V1 = 0 Then Value2 = 8 Else Value2 = 15 - V1; // 3월 두번째 일요일 날짜 V2 = Dayofweek((10000 * Year(D)) + (100 * 11) + 1); If V2 = 0 Then Value4 = 1 Else value4 = 8 - V2; // 11월 첫번째 일요일 날짜 If date > (10000 * Year(D)) + (100 * 3) + value2 And date < (10000 * Year(D)) + (100 * 11) + value4 Then Begin st = 070000; // 써머타임 적용 시, 장시작 시간 et = 060000; // 써머타임 적용 시, 장종료 시간 End Else Begin st = 080000; // 장 시작 시간 et = 070000; // 장 종료 시간 End; condition1 = (IntPortion(time/10000) > IntPortion(et/10000) And IntPortion(time[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]; ///////////////////////////////////////////////////////////////// If condition1 Then v99 = 0; Vars : SP(0); SP = SignalPosition; If SP[1] <> SP And SP <> 0 Then v99 = v99 + 1; Vars : pDayClose(0), vDayOpen(0); pDayClose = DayClose(1); vDayOpen = DayOpen(0); If v99 = 0 Then Begin If pDayClose < vDayOpen Then Buy("B", atmarket) Else IF pDayClose > vDayOpen Then Sell("S", atmarket); End; SetExitOnClose;
프로필 이미지
흰둥이아빠
2019-03-06
277
글번호 126793
시스템
답변완료

부탁드립니다

수고하십니다 스마트폰에서 예스트레이더를 사용할 방법이 있나요?? 이게 되면 좋을텐데요. ?
프로필 이미지
파생돌이
2019-03-06
229
글번호 126791
지표

당일선물 님에 의해서 삭제되었습니다.

프로필 이미지
당일선물
2019-03-06
1
글번호 126782
지표
답변완료

문의드립니다

20이평선 위에 가격이 있으면서 전고가 돌파 시 매수 청산은 전저점 이탈 시에 하고 20이평선 아래 가격이 있으면서 전저가 아래로 깨면 매도 청산은 전고가 돌파 시 한다. 아래 식에서 20이평선을 어떻게 접목하면 될까요. 추가식 좀 부탁드립니다. IF H[1] < C Then buy(); IF L[1] > C Then Exitlong(); IF L[1] > C Then sell(); IF H[1] < C Then ExitShort();
프로필 이미지
선물대장
2019-03-06
188
글번호 126770
시스템
답변완료

문의드립니다

20이평선 위에 가격이 있으면서 전고가 돌파 시 매수 청산은 전저점 이탈 시에 하고 20이평선 아래 가격이 있으면서 전저가 아래로 깨면 매도 청산은 전고가 돌파 시 한다. 아래 식에서 20이평선을 어떻게 접목하면 될까요. 추가식 좀 부탁드립니다. IF H[1] < C Then buy(); IF L[1] > C Then Exitlong(); IF L[1] > C Then sell(); IF H[1] < C Then ExitShort();
프로필 이미지
선물대장
2019-03-06
207
글번호 126769
시스템
답변완료

수식의뢰 드려요

안녕하세요! 첨부한 수식에 아래 내용을 추가하고 싶습니다! 부탁드립니다! --------------------------------------------------------------------------- 1. 전전일 고가 2. 전전일 저가 3. 기준가(옵션 만기날이후 다음날 최저가: 보통 기준가라고 하지요!) 4. 월고 5. 월저 --------------------------------------------------------------------------- input : 날짜변경시간(090000); var : date0(0), date1(0), time0(0), time1(0); var : HH(0),HH1(0), Hdate(0),Htime(0),Hdate1(0), Htime1(0), TX11(0), TX1(0); var : LL(0),LL1(0), Ldate(0),Ltime(0),Ldate1(0), Ltime1(0), TX12(0), TX2(0); var : OO(0),OO1(0), Odate(0),Otime(0),Odate1(0), Otime1(0), TX13(0), TX3(0); var : MM(0),MM1(0), Mdate(0),Mtime(0),Mdate1(0), Mtime1(0), TX14(0), TX4(0); if stime == 날짜변경시간 then { date0 = sdate; date1 = date0[1]; time0 = stime; time1 = time0[1]; #전일고가 HH = H; HH1 = HH[1]; TL_Delete(var11); var11 = TL_New(date1, time1, HH1, date0, time0, HH1); TL_SetExtRight(var11,true); TL_SetColor(var11, red); #전일저가 LL = L; LL1 = LL[1]; TL_Delete(var12); var12 = TL_New(date1, time1, LL1, date0, time0, LL1); TL_SetExtRight(var12,true); TL_SetColor(var12, blue); #전일중심선 MM1 = (HH1+LL1)/2; Mdate1 = Mdate[1]; Mtime1 = Mtime[1]; TL_Delete(var14); var14 = TL_New(date1, time1, MM1, date0, time0, MM1); TL_SetExtRight(var14,true); TL_SetColor(var14, rgb(255,128,255)); #전일시가 OO = O; OO1 = OO[1]; Odate1 = Odate[1]; Otime1 = Otime[1]; TL_Delete(var13); var13 = TL_New(date1, time1, OO1, date0, time0, OO1); TL_SetExtRight(var13,true); TL_SetColor(var13, black); #당일시가 TL_Delete(var3); var3 = TL_New(sdate[1], stime[1], OO, date0, time0, OO); TL_SetExtRight(var3,true); TL_SetColor(var3, black); Text_delete(TX11); TX11 = Text_New(sdate, stime, HH1, "▶전일고가 : "+Numtostr(HH1,2)); Text_SetStyle(TX11, 0, 1); Text_setColor(TX11, red); Text_delete(TX12); TX12 = Text_New(sdate, stime, LL1, "▶전일저가 : "+Numtostr(LL1,2)); Text_SetStyle(TX12, 0, 0); Text_setColor(TX12, blue); Text_delete(TX13); TX13 = Text_New(sdate, stime, OO1, "▶전일시가 : "+Numtostr(OO1,2)); Text_SetStyle(TX13, 0, 0); Text_setColor(TX13, black); Text_delete(TX3); TX3 = Text_New(sdate, stime, OO, "▶당일시가 : "+Numtostr(OO,2)); Text_SetStyle(TX3, 0, 0); Text_setColor(TX3, black); Text_delete(TX14); TX14 = Text_New(sdate, stime, MM1, "▶전일중심 : "+Numtostr(MM1,2)); Text_SetStyle(TX14, 0, 0); Text_setColor(TX14, rgb(255,128,255)); } #당일고가 if stime <> 날짜변경시간 and H[1] >= HH then { HH = H[1]; Hdate = sdate[1]; Htime = stime[1]; TL_Delete(var1); var1 = TL_New(date0, time0, HH, sdate, stime, HH); TL_SetExtRight(var1,true); TL_SetColor(var1, red); } #당일저가 if stime <> 날짜변경시간 and L[1] <= LL then { LL = L[1]; Ldate = sdate[1]; Ltime = stime[1]; TL_Delete(var2); var2 = TL_New(date0, time0, LL, sdate, stime, LL); TL_SetExtRight(var2,true); TL_SetColor(var2, blue); } #당일중심 if stime <> 날짜변경시간 then { MM = (HH+LL)/2; TL_Delete(var4); var4 = TL_New(date0, time0, MM, sdate, stime, MM); TL_SetExtRight(var4,true); TL_SetColor(var4, rgb(255,128,255)); } Text_delete(TX1); TX1 = Text_New(date0, time0, HH, "▶당일고가 : "+Numtostr(HH,2)); Text_SetStyle(TX1, 0, 1); Text_setColor(TX1, red); Text_delete(TX2); TX2 = Text_New(date0, time0, LL, "▶당일저가 : "+Numtostr(LL,2)); Text_SetStyle(TX2, 0,0); Text_setColor(TX2, blue); Text_delete(TX4); TX4 = Text_New(date0, time0, MM, "▶당일중심 : "+Numtostr(MM,2)); Text_SetStyle(TX4, 0,0); Text_setColor(TX4, rgb(255,128,255)); if stime == 날짜변경시간 then { var8 = TL_New(sdate, stime, H, sdate, stime, 999999999); var9 = TL_New(sdate, stime, L, sdate, stime, 0); TL_setColor(var8, rgb(200,150,250)); TL_setColor(var9, rgb(200,150,250)); }
프로필 이미지
qha71
2019-03-06
247
글번호 126762
지표
답변완료

문의합니다

input : 시작시간(090000),종료시간(0); input : Period15(15),Period20(20),Period30(30),Period120(120),Period180(180),Period240(240),Period480(480), Period960(960),Period60(60),Period3(3),Period10(10),Period2(2),Period7(7),Period144(144),Period100(100); input : 익절틱수1(150),손절틱수1(150),익절틱수2(200),손절틱수2(200),익절틱수3(200),손절틱수3(200),익절틱수4(200),손절틱수4(200),익절틱수5(200),손절틱수5(200); var : mav15(0),mav20(0),mav30(0),mav120(0),mav180(0),mav240(0),mav480(0),mav960(0),mav60(0),mav1(0), mav3(0),mav10(0),mav2(0),mav7(0),mav144(0),mav100(0),Bxcond(false),Sxcond(false); var : Tcond(false); var : T(0); input : ntime1(4),P(50); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum1(0),tmav1(0),tmav11(0),tmav12(0),tmav13(0); Array : C1[50](0); var : BE1(0),BE2(0),BE3(0),BE4(0),BE5(0); var : SE1(0),SE2(0),SE3(0),SE4(0),SE5(0); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then { for cnt = 1 to 49 { C1[cnt] = C1[cnt-1][1]; } tmav11 = tmav1[1]; tmav12 = tmav11[1]; tmav13 = tmav12[1]; } C1[0] = C; if C1[P] > 0 then{ sum1 = 0; for cnt = 0 to P-1{ sum1 = sum1+C1[cnt]; } tmav1 = sum1/P; } } mav15 = ma(c, Period15); mav20 = ma(c, Period20); mav30 = ma(c, Period30); mav120 = ma(c, Period120); mav180 = ma(c, Period180); mav240 = ma(c, Period240); mav480 = ma(c, Period480); mav960 = ma(c, Period960); mav60 = ma(c, Period60); mav3 = ma(c, Period3); mav10 = ma(c, Period10); mav2 = ma(c, Period2); mav7 = ma(c, Period7); mav144 = ma(c, Period144); mav100 = ma(c, Period100); if (sdate != sdate[1] and stime >= 시작시간) or (sdate == sdate[1] and (Stime == 시작시간 or (stime > 시작시간 and stime[1] < 시작시간))) Then { Tcond = True; BXcond = false; SXcond = false; } if stime == 종료시간 or (stime > 종료시간 and stime[1] < 종료시간) Then { Tcond = false; if MarketPosition == 1 Then ExitLong(); if MarketPosition == -1 Then ExitShort(); } if TotalTrades > TotalTrades[1] then { BXcond = false; SXcond = false; if (IsExitName("bl",0) == true or IsExitName("bp",0) == true or IsExitName("bx",1) == true or IsExitName("bx",1) == true) Then BXcond = true; if (IsExitName("sl",0) == true or IsExitName("sp",0) == true or IsExitName("sx",1) == true or IsExitName("sx",1) == true) Then SXcond = true; } if Tcond == true then { if MarketPosition <= 0 and Bxcond == false and tmav13 < tmav12 and tmav12 < tmav11 and tmav11 < tmav1 and tmav12 > 0 Then { buy("매수1",OnClose,def,1); } if MarketPosition == 1 Then { if crossup(mav20, mav30) and MaxEntries == 1 Then buy("매수2",OnClose,def,1); if crossup(mav20, mav30) and MaxEntries == 2 Then buy("매수3",OnClose,def,1); if crossup(mav20, mav30) and MaxEntries == 3 Then buy("매수4",OnClose,def,1); if crossup(mav20, mav30) and MaxEntries == 4 Then buy("매수5",OnClose,def,1); } if MarketPosition == 1 Then { if (tmav12 > tmav11 and tmav11 > tmav1 and tmav12 > 0) Then exitlong("수청산1",OnClose,def,"매수1"); if (CrossDown(mav20, mav30)) or (tmav12 > tmav11 and tmav11 > tmav1 and tmav12 > 0) Then { exitlong("수청산2",OnClose,def,"매수2"); exitlong("수청산3",OnClose,def,"매수3"); exitlong("수청산4",OnClose,def,"매수4"); exitlong("수청산5",OnClose,def,"매수5"); } if CurrentContracts > CurrentContracts[1] and MaxEntries == 1 Then BE1 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 2 Then BE2 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 3 Then BE3 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 4 Then BE4 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 5 Then BE5 = LatestEntryPrice(0); ExitLong("bp1",atlimit,BE1+PriceScale*익절틱수1,"매수1"); ExitLong("bl1",AtStop,BE1-PriceScale*손절틱수1,"매수1"); ExitLong("bp2",atlimit,BE2+PriceScale*익절틱수2,"매수2"); ExitLong("bl2",AtStop,BE2-PriceScale*손절틱수2,"매수2"); ExitLong("bp3",atlimit,BE3+PriceScale*익절틱수3,"매수3"); ExitLong("bl3",AtStop,BE3-PriceScale*손절틱수3,"매수3"); ExitLong("bp4",atlimit,BE4+PriceScale*익절틱수4,"매수4"); ExitLong("bl4",AtStop,BE4-PriceScale*손절틱수4,"매수4"); ExitLong("bp5",atlimit,BE5+PriceScale*익절틱수5,"매수5"); ExitLong("bl5",AtStop,BE5-PriceScale*손절틱수5,"매수5"); } if MarketPosition >= 0 and Sxcond == false and tmav13 > tmav12 and tmav12 > tmav11 and tmav11 > tmav1 and tmav12 > 0 Then { sell("매도1",OnClose,def,1); } if MarketPosition == -1 then { if CrossDown(mav20, mav30) and MaxEntries == 1 Then sell("매도2",OnClose,def,1); if CrossDown(mav20, mav30) and MaxEntries == 2 Then sell("매도3",OnClose,def,1); if CrossDown(mav20, mav30) and MaxEntries == 3 Then sell("매도4",OnClose,def,1); if CrossDown(mav20, mav30) and MaxEntries == 4 Then sell("매도5",OnClose,def,1); } if MarketPosition == -1 then { if (tmav12 < tmav11 and tmav11 < tmav1 and tmav12 > 0) Then ExitShort("도청산1",OnClose,def,"매도1"); if (crossup(mav20, mav30)) or (tmav12 < tmav11 and tmav11 < tmav1 and tmav12 > 0) Then { ExitShort("도청산2",OnClose,def,"매도2"); ExitShort("도청산3",OnClose,def,"매도3"); ExitShort("도청산4",OnClose,def,"매도4"); ExitShort("도청산5",OnClose,def,"매도5"); } if CurrentContracts > CurrentContracts[1] and MaxEntries == 1 Then SE1 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 2 Then SE2 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 3 Then SE3 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 4 Then SE4 = LatestEntryPrice(0); if CurrentContracts > CurrentContracts[1] and MaxEntries == 5 Then SE5 = LatestEntryPrice(0); ExitShort("sp1",atlimit,SE1-PriceScale*익절틱수1,"매도1"); ExitShort("sl1",AtStop,SE1+PriceScale*손절틱수1,"매도1"); ExitShort("sp2",atlimit,SE2-PriceScale*익절틱수2,"매도2"); ExitShort("sl2",AtStop,SE2+PriceScale*손절틱수2,"매도2"); ExitShort("sp3",atlimit,SE3-PriceScale*익절틱수3,"매도3"); ExitShort("sl3",AtStop,SE3+PriceScale*손절틱수3,"매도3"); ExitShort("sp4",atlimit,SE4-PriceScale*익절틱수4,"매도4"); ExitShort("sl4",AtStop,SE4+PriceScale*손절틱수4,"매도4"); ExitShort("sp5",atlimit,SE5-PriceScale*익절틱수5,"매도5"); ExitShort("sl5",AtStop,SE5+PriceScale*손절틱수5,"매도5"); } } ---- 각 진입별로 손익절을 지정 하였으나 무슨 이유인지는 모르나 매수진입(매수2)후 바로 익절(bp2) 나오고 매도진입(매도2)후 바로 손절(sl2)이 발생하고 있습니다 수정 부탁합니다 감사합니다
프로필 이미지
남산
2019-03-06
211
글번호 126761
시스템