커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1509
글번호 230811
답변완료
문의 드립니다
Pivot = (DayHigh+DayLow+c)/3;복합차트에 주간 당일피봇을 표시하고 싶습니다감사합니다
2025-12-02
128
글번호 228554
답변완료
부탁드립니다
1) 현재가 캔들을 기준으로 직전 8개 캔들의 - 평균고점 라인과 평균저점 라인의 박스 수식좀 부탁드립니다- 중심가 위로는 빨강박스, 중심가 아래로는 파랑박스- 고점 저점에 수치표시도 함께 부탁드립니다.2) 위와 같은 방식으로 - 임의고점 라인과 임의저점 라인의 박스 수식좀 부탁드립니다- 중심가 위로는 빨강박스, 중심가 아래로는 파랑박스- 고점 저점에 수치표시도 함께 부탁드립니다.
2025-12-02
128
글번호 228552
답변완료
3연속봉 박스
1. 지표 연속봉이 3개보다 많아질 때 박스의 끝이, 음봉은 끝까지 연장되는데 양봉은 3개에서 멈춤. 양봉도 끝까지 연장. 2.시스템 음봉 박스가 생성되면 (3음봉) 매수, 다음봉에 매수청산. 양봉 박스 생성되면 매도, 다음봉에 매도청산. 감사합니다. Inputs: N(3), // 연속 봉 개수 기준 BullishColor(Red), // 양봉 선 색상 BearishColor(Blue); // 음봉 선 색상Vars: bullishCount(0),bearishCount(0), FirstDate(0),FirstTime(0),LineTop(0),bullishBox(0), LastDate(0),LastTime(0),lineBottom(0),BearishBox(0);If Close > Open ThenBegin bullishCount = bullishCount + 1; If bullishCount == 1 Then Begin firstDate = sDate; firstTime = sTime; lineBottom = L; End; lastDate = sDate; lastTime = sTime; lineTop= high; // 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가 if bullishCount >= N Then Begin if bullishCount == N Then Begin bullishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom); box_SetColor(bullishBox, BullishColor); Box_SetFill(bullishBox,true); end; Box_SetEnd(bullishBox,lastDate, lastTime, lineBottom); end;EndElseBegin bullishCount = 0; #Box_Delete(bullishBox);End;If Close < Open ThenBegin BearishCount = BearishCount + 1; If BearishCount == 1 Then Begin firstDate = sDate; firstTime = sTime; lineTop = H; End; lastDate = sDate; lastTime = sTime; lineBottom = Low; // 상단 선: 첫봉 시간 ~ 현재 시간, 가격 = 마지막 봉 고가 if BearishCount >= N Then Begin if BearishCount == N Then Begin BearishBox = Box_New(firstDate, firstTime, lineTop, lastDate, lastTime, lineBottom); box_SetColor(BearishBox, BearishColor); Box_SetFill(BearishBox,true); end; Box_SetEnd(BearishBox,lastDate, lastTime, lineBottom); end;EndElseBegin BearishCount = 0; #Box_Delete(BearishBox);End;
2025-12-02
175
글번호 228551
답변완료
문의드립니다
input : length(20);input : mult(2.0);input : lengthKC(20);input : multKC(1.5);input : useTrueRange(true);#1:TrueRange 0:고저폭var : source(0),basis(0),dev(0),upperbb(0),lowerbb(0);var : mav(0),r(0),rangema(0),upperKC(0),lowerKC(0);var : sqzOn(False),sqzOff(False),noSqz(False),val(0),bcolor(0),scolor(0);// Calculate BBsource = close;basis = ma(source, length);dev = multKC * std(source, length);upperBB = basis + dev;lowerBB = basis - dev;// Calculate KCmav = ma(source, lengthKC);r = iff(useTrueRange == 1 , TrueRange , (high - low));rangema = ma(r, lengthKC);upperKC = mav + rangema * multKC;lowerKC = mav - rangema * multKC;sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC);sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC);noSqz = (sqzOn == false) and (sqzOff == false);val = LRL(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),ma(close,lengthKC)), lengthKC);bcolor = iff( val > 0, iff( val > iff(IsNan(val[1]),0,val[1]), lime, green), iff( val < iff(IsNan(val[1]),0,val[1]), red, maroon));scolor = iff(noSqz ,blue ,IFf( sqzOn , black , gray ));if bcolor == lime and scolor == Gray Then Buy("b");if bcolor == green and scolor == black Then ExitLong("bx");수고많으십니다 위 수식은 lime과 Gray 가 만나는 지점에서 매수green와 black이 만나면 청산 입니다만매수 진입은 똑 같이하고매수 청산을 회색과 검정색 상관 없이 maroon 색이 나오면 매수 청산 하는 식을 부탁드립니다 항상 감사드립니다
2025-12-02
175
글번호 228550
답변완료
수식요청
지표 변환 부탁드립니다.aa= C >= Avg(C, 5);bb = ma(aa,10);
2025-12-02
103
글번호 228549
답변완료
시스템매매 관련 문의합니다..^^*
**아래시스템 매매에서 해당매매종목에 원하는 가격대를 돌파할때 진입이 되는 수식 요청드립니다.... 예를 들어 삼성전자를 11만원 돌파시 진입 매수 일때 11만원 가격을 정해놓으면 매수진입한다는 의미 입니다... 이러한 조건을 변수로 지정해 주시면 감사하겠습니다... ===================================================================================input : 시작일(20250702),갭상승(2),P(20),하락per(1),분할(20);input : starttime(91500),EndTime(151500);Var : value(0),mav(0);var : Tcond(False);input : 최소수익(10),수익감소(3);var : bh(0),sl(0);//매수진입 후 20%이상 수익후 최고가에서 5%이상 하락하면 청산if MarketPosition == 1 Then{ bh = highest(H,BarsSinceEntry); if bh >= EntryPrice*(1+최소수익/100) Then ExitLong("bx",AtStop,bh*(1-수익감소/100));}//매도진입 후 20%이상 수익후 최저가에서 5%이상 상승하면 청산if MarketPosition == -1 Then{ sl = lowest(L,BarsSinceEntry); if sl <= EntryPrice*(1-최소수익/100) Then ExitShort("sx",AtStop,sl*(1+수익감소/100));}if Bdate != Bdate[1] Then tcond = False;if (sdate != sDate[1] and sTime >= starttime) or (sdate == sDate[1] and sTime >= starttime and sTime[1] < starttime) Then Tcond = true;if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False;Var1=rsi(32);mav = ma(c,p);value = 0;if sDate >= 시작일 and DayOpen <= DayClose(1)*(1+갭상승/100) and Tcond == true Then{ # 매수 / 매도청산 If CCI(9) > 0 Then value = 1; If MACD(12,26) > 0 Then value = value+1; If DIPlus(14) > DIMinus(14) Then value = value+1; If StochasticsK(12,5) > StochasticsD(12,5,5) Then value = value+1; # 매수/매도청산 If value >= 3 and mav > mav[1] Then { Buy("b1"); } value = 0; if MarketPosition == 1 and MaxEntries < 분할 OR MarketPosition <= 0 and value >= 3 and mav > mav[1] Then { Buy("b2",AtStop,EntryPrice(0)*(1-(하락per*MaxEntries)/100)); } if rsi(14)<32 Then buy("b3"); if CrossUp(c,DayOpen)Then Buy("v1"); if CrossUp(c,DayOpen)Then Buy("v2"); if CrossUp(c,DayOpen)Then Buy("v3"); if CrossUp(c,DayOpen)Then Buy("v4"); }# 매도/매수청산If CCI(9) < 0 Then value = 1;If MACD(12,26) < 0 Then value = value+1;If DIPlus(14) < DIMinus(14) Then value = value+1;If StochasticsK(12,5) < StochasticsD(12,5,5) Then value = value+1;If value >= 3 Then{ SetStopProfittarget(15, PercentStop);}
2025-12-01
238
글번호 228548
답변완료
조건검색문의드립니다
아래수식 적용시 첨부이미지 에러가 뜨는데 수정 부탁드립니다var : vWeekMA30(0);var : vMonthOpen(0);var : vWeekOpen(0);var : Cond_Event(False);var : Cond_Trend(False);var : Cond_Pullback(False);vWeekMA30 = ma(C, 150);vMonthOpen = OpenM(0);vWeekOpen = OpenW(0);Cond_Event = CountIf(CrossUp(vWeekMA30, vMonthOpen), 10) >= 1;Cond_Trend = C > vWeekMA30;Cond_Pullback = C < vWeekOpen;if Cond_Event and Cond_Trend and Cond_Pullback Then Find(1);
2025-12-01
149
글번호 228547
답변완료
수식문의드립니다
input : 기간S(10), 시그널S(20), 기간L(30), 시그널L(60),기간(26) ; var : HmaM(0) ,M0(0), M1(0), M2(0), M3(0), M4(0), M5(0) ; Value1 = highest(iff(C>O, Ema(C,기간S), 0), 시그널S) ; #기준선S Value2 = highest(iff(C>O, Ema(C,기간L), 0), 시그널L) ; #기준선L var1 = wma(C, 기간/2); var2 = wma(C, 기간); HmaM = wma(2*var1-Var2,SqRt(기간)); #HMA선if Value2 != Value2 Then{ M0= Value2 ; #Value2의 변동후의 Value2 M1= M0[1] ; #Value2의 1변동전 Value2 M2= M1[1] ; #Value2의 2변동전 Value2 M3= M2[1] ; #Value2의 3변동전 Value2 M4= M3[1] ; #Value2의 4변동전 Value2 M5= M4[1] ; #Value2의 5변동전 Value2 }기준캔들 = Value2는 계단식 변동을 하는데 변동전보다 변동후의 Value2가 낮아야 하고(M1>M0) , Value2를 시가종가로 하향이탈하는 캔들. 하향이탈하는 캔들을 포함하여 Max(C,O)>Value2 가 최근 10봉이내에 최소 2개이상 있어야 한다.종목검색수식1> 기준캔들이 발생된 후 5봉이내에 Value2선을 양봉으로 시가종가로 상향 돌파하는 종목 검색식. 단, 기준캔들 발생시의 Value2와 상향돌파할 때의 Value2는 변동이 없어야 하고, 기준캔들 발생시의 Value2의 하향변동이 3회이상 되어야 한다종목검색수식2> 기준캔들이 발생된 후 최소 15봉이후에 하향추세의 HmaM선을 양봉으로 시가종가로 상향 돌파하는 종목 검색식(1차). 단, 기준캔들 발생시부터 하향추세의 HmaM선을 시가종가로 상향 돌파할때까지 Value2>HmaM선 조건이거나, HmaM선이 Value2선을 하향이탈한 것이 최소 10봉이전에 있어야 한다는 것이다. 그리고 상향돌파후 고가로 Value2선을 돌파하지 못하고 재차 하락하는 경우에는 다시 하향추세의 HmaM선을 양봉으로 시가종가로 상향 돌파할 때에 2차 종목 검색되게 한다. 1차돌파시의 시가보다 2차돌파시의 양봉종가는 낮아야 한다. 검색은 2차까지만 허용된다.
2025-12-01
170
글번호 228546
답변완료
수정부탁 드립니다
gpt 수식을구현했는데44 에 숫자나 숫자값이라고 오류가그리고 마지막 돌파된 per 이 깨면 전량 청산인데 per16 됐습니다수정 부탁드릴게요input : per1(30),per2(42),per3(50),per4(62),per5(84),per6(110),per7(155),per8(210), per9(255), per10(310),per11(384),per12(420),per13(500),per14(684),per15(800),per16(1000);var : cnt(0);Array : p[16](0), va[16](0); // 실제 코드에서는 "_" 제거하세요./* --------------------------- ① p 배열 저장--------------------------- */p[1]=per1; p[2]=per2; p[3]=per3; p[4]=per4;p[5]=per5; p[6]=per6; p[7]=per7; p[8]=per8;p[9]=per9; p[10]=per10; p[11]=per11; p[12]=per12;p[13]=per13; p[14]=per14; p[15]=per15; p[16]=per16;/* --------------------------- ② va[] 기준선 계산--------------------------- */for cnt = 1 to 16{ va[cnt] = DayLow * (1 + p[cnt] / 100);}/* --------------------------- ③ per1~per16 상향 돌파 시마다 1계약 매수--------------------------- */for cnt = 1 to 16{ if CrossUp(C, va[cnt]) then { Buy("Long", onclose, def, 1); };}/* --------------------------- ④ 마지막 per16 라인 이탈 시 전체 청산--------------------------- */if marketposition > 0 and CrossDown(C, va[16]) then{ ExitLong("ExitAll", onclose, "Long");};
2025-12-01
297
글번호 228545