커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1505
글번호 230811
답변완료
문의 드립니다
분봉 단타시 아침 8시부터 시작되는 종목이 많은데종목검색 또는 파워종목 검색을 하면 9시 이후에 검색됩니다장이 8시 부터 시작하는 종목들 검색하는 방법 문의드립니다.
2026-01-07
208
글번호 229622
답변완료
부탁드립니다.
항상 감사하게 생각하고 있습니다. 새해 복 많이 받으세요.아래 조건 검색식을 부탁드립니다~1. 거래대금 10억이상2. 등락률 1% 이상 3. 일봉상 480선 돌파 감사합니다.
2026-01-06
152
글번호 229619
답변완료
문의합니다.
주간만 사용할 경우 진입명에 따라 청산명이 나오나 복합으로 하면 진입명에 따라 청산명이 exitlongno로 나오며, 청산 위치가 아닌 곳에서 청산이 됩니다.차트를 복합으로 변경할 경우 정상적으로 운영하도록 변경 부탁합니다.감사드립니다. input : 시작시간(090000),종료시간(0); input : Period1(1),Period2(2),Period3(3),Period4(4),Period5(5),Period6(6),Period7(7),Period8(8),Period9(9),Period10(10),Period11(11),Period12(12),Period15(15),Period20(20),Period25(25),Period30(30),Period35(35),Period40(40),Period52(52),Period70(70),Period80(80),Period105(105),Period140(140),Period150(150),Period220(220),Period280(280),Period284(284),Period300(240), Period30201(1200),Period30202(1200),Period30301(800),Period30302(1200),Period30401(900),Period30402(3200),Period30501(790),Period30502(1800),Period30601(910),Period30602(2110),Period30701(3400),Period30702(4700), Period450(450),Period480(480),Period520(520),Period560(560),Period600(480),Period700(700),Period800(800),Period900(900),Period1120(1120),Period1200(960),Period1800(1800),Period2400(1920),Period2800(2800),Period3360(3360),Period3600(3600),Period4800(3840),Period7200(7680), Period58(58),Period60(60),Period62(62),Period82(82),Period84(84),Period28(70),Period31(11),Period32(24),Period33(5), Period41(35),Period42(35),Period43(35),Period48(15),Period1001(850),Period1002(520),Period1003(480),Period1008(36),aa1(0.1),aa2(0.2),aa3(0.3),aa4(0.4),aa5(0.5),aa6(0.6), bb3(1600),bb31(140),bb32(910),bb4(1007),bb5(700),bb6(150),bb61(262),bb7(170),bb71(280),bb8(88),bb81(25),bb9(88),bb91(25),bb10(30),bb101(126),bb11(100),bb12(188),bb13(80),bb14(1500),bb141(350),bb15(64),bb16(100),z1(1140), 익절틱수b9(1980),손절틱수b9(600),익절틱수b91(300),손절틱수b91(300),익절틱수b92(300),손절틱수b92(300),익절틱수b93(300),손절틱수b93(300),익절틱수b94(300),손절틱수b94(300), 익절틱수b10(538),손절틱수b10(282),익절틱수b11(196),손절틱수b11(196),익절틱수b12(214),손절틱수b12(118),익절틱수b13(418),손절틱수b13(200),익절틱수b14(194),손절틱수b14(220),익절틱수b15(234),손절틱수b15(170),익절틱수b16(470),손절틱수b16(170), 익절틱수s1(2000),손절틱수s1(224),익절틱수s2(73),손절틱수s2(91),익절틱수s3(63),손절틱수s3(91),익절틱수s4(104),손절틱수s4(91),익절틱수s5(88),손절틱수s5(91),익절틱수s6(57),손절틱수s6(91),익절틱수s7(86),손절틱수s7(91); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0),mav7(0),mav8(0),mav9(0),mav10(0),mav11(0),mav12(0),mav15(0),mav20(0),mav25(0),mav30(0),mav35(0),mav40(0),mav52(0),mav70(0),mav80(0),mav105(0),mav140(0),mav150(0),mav220(0),mav280(0),mav284(0),mav300(0), mav30201(0),mav30202(0),mav30301(0),mav30302(0),mav30401(0),mav30402(0),mav30501(0),mav30502(0),mav30601(0),mav30602(0),mav30701(0),mav30702(0), mav450(0),mav480(0),mav520(0),mav560(0),mav600(0),mav700(0),mav800(0),mav900(0),mav1120(0),mav1200(0),mav1800(0),mav2400(0),mav2800(0),mav3360(0),mav3600(0),mav4800(0),mav7200(0), mav58(0),mav60(0),mav62(0),mav82(0),mav84(0),mav28(0),mav31(0),mav32(0),mav33(0), mav41(0),mav42(0),mav43(0),mav48(0),mav1001(0),mav1002(0),mav1003(0),mav1008(0),Bxcond(false),Sxcond(false); var : var5(0),var10(0),var20(0),var40(0),var80(0),var150(0),var300(0),var450(0),var600(0),var900(0),var1200(0),var1800(0),var2400(0),var3600(0),var4800(0),var1224(0),var2448(0); var : Tcond(false); var : T(0); var : ii3(0),ii31(0),ii32(0),ii4(0),ii5(0),ii6(0),ii61(0),ii7(0),ii71(0),ii8(0),ii81(0),ii9(0),ii91(0),ii10(0),ii101(0),ii11(0),ii12(0),ii13(0),ii14(0),ii141(0),ii15(0),ii16(0); var : BE1(0),BE2(0),BE3(0),BE4(0),BE5(0); var : SE1(0),SE2(0),SE3(0),SE4(0),SE5(0); mav1 = ma(c, Period1); mav2 = ma(c, Period2); mav3 = ma(c, Period3); mav4 = ma(c, Period4); mav5 = ma(c, Period5); mav6 = ma(c, Period6); mav7 = ma(c, Period7); mav8 = ma(c, Period8); mav9 = ma(c, Period9); mav10 = ma(c, Period10); mav11 = ma(c, Period11); mav12 = ma(c, Period12); mav15 = ma(c, Period15); mav20 = ma(c, Period20); mav25 = ma(c, Period25); mav30 = ma(c, Period30); mav35 = ma(c, Period35); mav40 = ma(c, Period40); mav52 = ma(c, Period52); mav70 = ma(c, Period70); mav80 = ma(c, Period80); mav105 = ma(c, Period105); mav140 = ma(c, Period140); mav150 = ma(c, Period150); mav220 = ma(c, Period220); mav280 = ma(c, Period280); mav284 = ma(c, Period284); mav300 = ma(c, Period300); mav30201 = ma(c, Period30201); mav30202 = ma(c, Period30202); mav30301 = ma(c, Period30301); mav30302 = ma(c, Period30302); mav30401 = ma(c, Period30401); mav30402 = ma(c, Period30402); mav30501 = ma(c, Period30501); mav30502 = ma(c, Period30502); mav30601 = ma(c, Period30601); mav30602 = ma(c, Period30602); mav30701 = ma(c, Period30701); mav30702 = ma(c, Period30702); mav450 = ma(c, Period450); mav480 = ma(c, Period480); mav520 = ma(c, Period520); mav560 = ma(c, Period560); mav600 = ma(c, Period600); mav700 = ma(c, Period700); mav800 = ma(c, Period800); mav900 = ma(c, Period900); mav1120 = ma(c, Period1120); mav1200 = ma(c, Period1200); mav1800 = ma(c, Period1800); mav2400 = ma(c, Period2400); mav2800 = ma(c, Period2800); mav3360 = ma(c, Period3360); mav3600 = ma(c, Period3600); mav4800 = ma(c, Period4800); mav7200 = ma(c, Period7200); mav58 = ma(c, Period58); mav60 = ma(c, Period60); mav62 = ma(c, Period62); mav82 = ma(c, Period82); mav84 = ma(c, Period84); mav28 = ma(c, Period28); mav31 = ma(c, Period31); mav32 = ma(c, Period32); mav33 = ma(c, Period33); mav41 = ma(c, Period41); mav42 = ma(c, Period42); mav43 = ma(c, Period43); mav48 = ma(c, Period48); mav1001 = ma(c, Period1001); mav1002 = ma(c, Period1002); mav1003 = ma(c, Period1003); mav1008 = ma(c, Period1008); var5 = abs(mav5-mav10); var10 = abs(mav10-mav20); var20 = abs(mav20-mav40); var40 = abs(mav40-mav80); var80 = abs(mav80-mav150); var150 = abs(mav150-mav300); var300 = abs(mav300-mav450); var450 = abs(mav450-mav600); var600 = abs(mav600-mav900); var900 = abs(mav900-mav1200); var1200 = abs(mav1200-mav1800); var1800 = abs(mav1800-mav2400); var2400 = abs(mav2400-mav3600); var3600 = abs(mav3600-mav4800); var4800 = abs(mav4800-mav7200); var1224 = abs(mav1200-mav2400); var2448 = abs(mav2400-mav4800); input : Atime(30),P1(2),P2(5),P3(10),P4(20),P5(40),P6(80); var : TF(0),cnt(0),sum1(0),bmav2(0),sum2(0),bmav5(0),sum3(0),bmav10(0),sum4(0),bmav20(0),sum5(0),bmav40(0),sum6(0),bmav80(0); Array : CC[500](0); TF = TimeToMinutes(stime)%Atime;if dayindex() == 0 or (TF < TF[1] and stime > stime[1]) Then{ for cnt = 1 to 499 { CC[cnt] = CC[cnt-1][1]; }} CC[0] = C; if CC[P6-1] > 0 then { sum1 = 0; sum2 = 0; sum3 = 0; sum4 = 0; sum5 = 0; sum6 = 0; for cnt = 0 to P6 { if cnt < P1 Then sum1 = sum1+CC[cnt]; if cnt < P2 Then sum2 = sum2+CC[cnt]; if cnt < P3 Then sum3 = sum3+CC[cnt]; if cnt < P4 Then sum4 = sum4+CC[cnt]; if cnt < P5 Then sum5 = sum5+CC[cnt]; if cnt < P6 Then sum6 = sum6+CC[cnt]; } Bmav2 = sum1/P1; Bmav5 = sum2/P2; Bmav10 = sum3/P3; Bmav20 = sum4/P4; Bmav40 = sum5/P5; Bmav80 = sum6/P6; } 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",0) == true or IsExitName("bx",0) == true) Then BXcond = true; if (IsExitName("sl",0) == true or IsExitName("sp",0) == true or IsExitName("sl4",0) == true or IsExitName("sp4",0) == true) Then SXcond = true; } if Tcond == true then { if MarketPosition <= 0 Then {#b9 if mav7200 > mav4800 and mav4800 < mav2400 Then { if CurrentContracts < 1 Then buy("b9",OnClose,def,1); } } if MarketPosition == 1 Then { if IsEntryName("b9") == true Then {#b91 if mav600 > mav300 and mav300 > mav150 and mav150 > mav80 and mav150 > c and crossuP(mav40,mav80) Then { if CurrentContracts < 20 Then buy("b91",OnClose,def,0); }#b9 if mav7200 < mav4800 and crossDown(mav1200,mav2400) Then { exitlong("b9-1",OnClose,def,"b9"); } Else if mav7200 > mav4800 and crossDown(mav600,mav1200) Then { exitlong("b9-2",OnClose,def,"b9"); } Else if mav7200 < mav4800 and mav2400 > mav1200 Then { exitlong("b9-3",OnClose,def,"b9"); }#b91 if mav7200 < mav4800 and mav4800 < mav3600 and mav3600 < mav2400 and mav2400 < mav1800 and mav1800 < mav1200 and mav1200 < mav900 and mav900 < mav800 and mav800 < mav700 and mav700 < mav600 and mav600 < mav450 and mav450 < mav300 and crossDown(mav900,mav1200) Then { exitlong("b91-1",OnClose,def,"b91"); } Else if mav4800[1] > mav4800 and mav4800 < mav40 and crossDown(mav20,mav40) Then { exitlong("b91-2",OnClose,def,"b91"); } Else if mav4800[1] > mav4800 and mav1800 < mav900 and crossDown(mav600,mav1200) Then { exitlong("b91-3",OnClose,def,"b91"); } Else if mav7200 > mav4800 and mav600 < mav300 and mav7200[1] > mav7200 and mav4800[1] > mav4800 and mav600[1] > mav600 and crossDown(mav150,mav300) Then { exitlong("b91-4",OnClose,def,"b91"); } Else if mav7200 > mav4800 and mav4800 > mav3600 and mav3600 > mav2400 and mav2400 > mav1200 and mav600 < mav300 and crossDown(mav150,mav300) Then { exitlong("b91-5",OnClose,def,"b91"); } ExitLong("bp9",atlimit,AvgEntryPrice+PriceScale*익절틱수b9,"b9"); ExitLong("bl9",AtStop,AvgEntryPrice-PriceScale*손절틱수b9,"b9"); ExitLong("bp91",atlimit,AvgEntryPrice+PriceScale*익절틱수b91,"b91"); ExitLong("bl91",AtStop,AvgEntryPrice-PriceScale*손절틱수b91,"b91"); } } if MarketPosition >= 0 Then { if crossuP(mav300,mav600) Then { ii11=Index; } if ii11 > 0 and Index >= ii11+z1 and mav2400 > mav1200 and mav1200 > mav600 and mav600 > mav300 and mav2400[1] < mav2400 and mav1800[1] < mav1800 and mav1200[1] < mav1200 and mav150[1] > mav150 and crossDown(mav150,mav300) Then { if CurrentContracts < 1 Then sell("s1",OnClose,def,1); } } if MarketPosition == -1 then { #매도 s1 if mav600 > c and mav1200 > mav600 and mav600 > mav300 and crossuP(mav80,mav150) Then { ExitShort("s1-1",OnClose,def,"s1"); } Else if mav600 > c and mav1200 > mav600 and mav600 > mav300 and crossuP(mav150,mav300) Then { ExitShort("s1-2",OnClose,def,"s1"); } Else { if mav600[1] < mav600 and crossuP(mav150,mav300) and mav7200 < mav4800 and mav4800 < mav3600 and mav3600 < mav2400 and mav2400 < mav1800 and mav1800 < mav1200 and mav1200 < mav600 Then ExitShort("s1-5",OnClose,def,"s1"); } ExitShort("sp1",atlimit,AvgEntryPrice-PriceScale*익절틱수s1,"s1"); ExitShort("sl1",AtStop,AvgEntryPrice+PriceScale*손절틱수s1,"s1"); } }
2026-01-06
928
글번호 229611
러블리 님에 의해서 삭제되었습니다.
2026-01-06
1
글번호 229609
답변완료
문의 드립니다.
안녕하세요지금 외국인 선물 매매 동향이 30초 마다 업그레이드 되는것으로 알고 있습니다.이것을 보조지표 스토캐스틱이나 MACD 를 선택하면은 아래에 나오는것처럼 그래프로 챠트로 아랫부분에 나타낼수는 없는지 알고싶습니다.항상 감사드립니다.
2026-01-06
162
글번호 229606
답변완료
종목검색식 부탁드립니다
RSII = eavg(RSI(length), SSF);TR = abs(RSII - RSII(1));ATRRSI = eavg(eavg(TR, length), length);QQEF = eavg(RSI(length), SSF);QUP = QQEF + ATRRSI * multiplier;QDN = QQEF - ATRRSI * multiplier;trend = if(QQEF > QQEF(1), 1, if(QQEF < QQEF(1), -1, 0));prev_trend = if(trend != 0, trend, if(QQEF(1) != QQEF(2), if(QQEF(1) > QQEF(2), 1, -1), if(QQEF(2) != QQEF(3), if(QQEF(2) > QQEF(3), 1, -1), if(QQEF(3) != QQEF(4), if(QQEF(3) > QQEF(4), 1, -1), 0))));raw_QQES = if(prev_trend > 0, QDN, if(prev_trend < 0, QUP, (QUP + QDN) / 2));QQES = eavg(raw_QQES, SSF);CrossUp(QQEF, QQES) && QQEF(1)<=50지표조건length: 14SSF: 5multiplier: 4.236
2026-01-06
162
글번호 229597
답변완료
문의드립니다
1번 시스템input : short1(9),long1(18),sig1(26);input : short2(15),long2(28),sig2(36);input : short3(21),long3(37),sig3(48);var : macdv1(0),macds1(0);var : macdv2(0),macds2(0);var : macdv3(0),macds3(0);macdv1 = macd(short1,long1);macds1 = ema(macdv1,sig1);macdv2 = macd(short2,long2);macds2 = ema(macdv2,sig2);macdv3 = macd(short3,long3);macds3 = ema(macdv3,sig3);if macdv1 > 0 and CrossUp(macdv1,macds1) and macdv2 > 0 and CrossUp(macdv2,macds2) and macdv3 > 0 and CrossUp(macdv3,macds3) Then Buy();2번 지표input : length(20),BB_mult(2.0);var : BB_basis(0),dev(0),BB_upper(0),BB_lower(0);BB_basis = ma(close, length);dev = BB_mult * std(close, length);BB_upper = BB_basis + dev;BB_lower = BB_basis - dev;input : KC_mult_high(1.0);input : KC_mult_mid(1.5);input : KC_mult_low(2.0);var : KC_basis(0),devKC(0);var : KC_upper_high(0),KC_lower_high(0);var : KC_upper_mid(0),KC_lower_mid(0);var : KC_upper_low(0),KC_lower_low(0);var : NoSqz(False),LowSqz(False),MidSqz(False),HighSqz(False);var : mom(0),iff_1(0),iff_2(0),mom_color(0),sq_color(0);KC_basis = ma(close, length);devKC = ma(TrueRange, length);KC_upper_high = KC_basis + devKC * KC_mult_high;KC_lower_high = KC_basis - devKC * KC_mult_high;KC_upper_mid = KC_basis + devKC * KC_mult_mid;KC_lower_mid = KC_basis - devKC * KC_mult_mid;KC_upper_low = KC_basis + devKC * KC_mult_low;KC_lower_low = KC_basis - devKC * KC_mult_low;//SQUEEZE CONDITIONSNoSqz = BB_lower < KC_lower_low or BB_upper > KC_upper_low; //NO SQUEEZE: GREENLowSqz = BB_lower >= KC_lower_low or BB_upper <= KC_upper_low; //LOW COMPRESSION: BLACKMidSqz = BB_lower >= KC_lower_mid or BB_upper <= KC_upper_mid ;//MID COMPRESSION: REDHighSqz = BB_lower >= KC_lower_high or BB_upper <= KC_upper_high; //HIGH COMPRESSION: ORANGE//MOMENTUM OSCILLATORmom = LRL(close - avg(avg(highest(high, length), lowest(low, length)),ma(close, length)), length);//MOMENTUM HISTOGRAM COLORiff_1 = iff(mom > iff(isnan(mom[1])==true,0,mom[1]) , lime , green);iff_2 = iff(mom < iff(isnan(mom[1])==true,0,mom[1]) , red , maroon);mom_color = iff(mom > 0 , iff_1 , iff_2);//SQUEEZE DOTS COLORsq_color = iff(HighSqz , red ,IFf(MidSqz , Cyan ,IFf(LowSqz , black , Yellow)));//PLOTSplot1(mom, "MOM",mom_color);plot2(0, "SQZ", sq_color);수고많으십니다 문의드릴 내용은 위 1번 시스템에서매수 신호가 나왔을 때2번 지표의 색깔이 red이면 진입하지 않고 건너 뛰고다음 신호를 대기한다라는 수식을 부탁드립니다 감사합니다
2026-01-06
897
글번호 229595
답변완료
문의 드립니다
var1 = (data2(c)-data3(c));If var1[0] > 0 Then Plot1(var1, "잔량건수차이",red);Else Plot1(var1, "잔량건수차이",blue); PlotBaseLine1(0,"기준선1");-----------------------------위식에서 잔량건수차이가 +로 (red) 제일 클때의 값 & 잔량건수 차이가 -로 (blue) 제일 클때의 값을 추가로 표시해주세요감사합니다
2026-01-06
169
글번호 229593
답변완료
symbolName 관련 문의?
1)옵션의 경우 심볼네임 풋 출력했을경우Kp200 P 2602 600 (코스피200 풋옵션 26년2월물 600(옵션명)) 이렇게 출력 됩니다.이걸 P 600(콜풋분류와 옵션명만)출력이 가능한지 부탁드립니다.
2026-01-06
132
글번호 229592