커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

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
167
글번호 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
180
글번호 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
214
글번호 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
184
글번호 126761
시스템
답변완료

함수요청

안녕하세요? 함수요청드립니다. 해외선물 크루드오일을 거래하고자 합니다. 진입: 개장 1분봉으로 당일시가 > 전일종가이면 익봉 시가에 매수, 당일시가 < 전일종가이면 익봉 시가에 매도 청산: 당일 종가매매(혹은 익일 시가청산) 진입기준으로 일 1회입니다.
프로필 이미지
흰둥이아빠
2019-03-06
176
글번호 126760
시스템
답변완료

문의

안녕하세요 시초가에서10틱상승시매수진입시초가이탈청산매도는반대이며 손실이40틱이면진입금지 손실을빼고이익40틱이면종료되는수식부탁합니다;
프로필 이미지
질갱이
2019-03-06
164
글번호 126759
시스템
답변완료

단순 스토캐스틱 매수/매도 신호 매매 도와주세요

안녕하세요 공부한지 얼마안된 완전 새내기입니다 300틱 차트에서 스토캐스틱 10.6.6 골든 크로스일때 포지션 없을땐 매수 포지션있으면 매도청산후 매수, 데드크로스일때 포지션 없으면 매도 포지션있으면 매수청산후 매도 수식을 배우고싶습니다 도와주세요 ㅠㅠ 계약수 1계약 (2계약 3계약 으로도 바꾸는 방법 알려주시면 감사하겠습니다)
프로필 이미지
부는바람
2019-03-06
206
글번호 126758
시스템
답변완료

문의합니다.

수고하십니다. 아래 수식은 2개 라인만 나오는데 가능하다면 중간 라인까지 상,중,하로 3개가 나오게 해주십시오. input : P1(20),al(30),ah(70); var : R(0); R=RSI(P1); if crossup(r,aL) Then var1 = L; if CrossDown(r,ah) Then var2 = H; plot1(var1); plot2(var2);
프로필 이미지
뚜벅뚜벅
2019-03-06
187
글번호 126757
지표
답변완료

지표 관련 문의

이전 게시물에서 체결강도 관련 설명을, 수식에서 체결강도는 upvol,downvol 데이터를 이용. 직전체결보다 높은 가격에 체결된 거래량은 upvol, 직전 체결가격보다 낮은 가격에 체결된 거래량은 downvol로 집계 직전체결가와 같은 체결가격이면 이전상승이나 하락쪽으로 집계 된다고 들었습니다. 또, 해당 데이터는 선물사별로 제공되는 곳도 있고 제공되지 않는 곳도 있다고 하셨는데요, (해선기준) 질문 : 그림에서 처럼, 현재가창을 보면 해당 데이타가 이미 제공되고 있는거 아닌가요? 실시간으로 나오는 이 매수/매도 체결량 숫자를 해당 봉 안에서 각각 쌓아주면 up,downvol이 될거 같은데요. 제가 어떤 부분에 대해 잘못이해하고 있는지 질문드리고 싶습니다.
프로필 이미지
부똘이
2019-03-06
272
글번호 126756
지표