커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

함수요청

안녕하세요? 아래 글번호 82039번 재질문입니다. 시스템에서 종가청산이 가능하지 않는다면 혹 시가청산은 가능한지요? 그래서 일봉차트에 적용해서 첫봉에 적용하는 것으로 시스템 구현이 가능할련지요? 가령 매주 월요일이 일봉상 캔들이 상승 양봉이면 화요일 시초가에 매수 진입 목요일 시가에 청산 이렇게요
프로필 이미지
흰둥이아빠
2023-05-12
964
글번호 168916
시스템
답변완료

검색결과에 대한 질문

5/8일 질문한 내용에 대한 답을 주셨는데 .. var1 = ma(C,20); var2 = ma(C,60); var3 = ma(C,120); if highest(max(C,O),30) <= lowest(min(C,O),30)*1.25 and max(var1,Var2,Var3) <= min(var1,Var2,Var3)*1.07 Then Find(1); 그런데 이수식으로 검색을 하면 30거래일중 주가 변동폭이 50%도 넘는 종목도 검색되고 있습니다. 주가 변동폭이 작은 종목이 이평이 밀집되었을때 검색되는 수식을 원하는데 결과는 다르네요. 어떻게 수정해야 되나요?
프로필 이미지
khkwon
2023-05-12
1296
글번호 168913
종목검색
답변완료

변경 부탁드립니다.

안녕하세요.항상도와주신데 감사드립니다. 라인하나로보기위함입니다. 수식1:M15=Eavg(c,15); M40=Eavg(c,40); M50=Eavg(c,50); 조건1=crossup(M15,M40); A1=valuewhen(1,조건1(1),L(1)); 매수라인=A1-(틱단위*갭); 조건2=crossdown(M15,M40); A2=valuewhen(1,조건2(1),H(1)); 매도라인=A2+(틱단위*갭); if(M15(1)>M40(1),매수라인,매도라인) 조건설정:틱단위(0.5) 갭:10 라인색상:적색
프로필 이미지
렉스턴
2023-05-12
1327
글번호 168911
지표
답변완료

부탁드립니다.

안녕하세요. 키움의지표수식입니다. 변경부탁드립니다. 1번 수식이름:STO_RSI 수식1:((RSI(R기간)-lowest(RSI(R기간),S기간))/(highest(RSI(R기간),S기간)- (lowest(RSI(R기간),S기간))))*-1 조건설정:R기간값13 S기간값10 시그날 3 과열:-0.2 침체:-0.8 2번 수식이름:이평이격OSC(일목균형표) 수식4:ma(c,기간1,종류)-ma(c,기간2,종류) 수식5:ma(c,기간2,종류)-ma(c,기간1,종류) 조건설정:기간1(5) 기간2(60) 종류(단순) 구름영역채우기
프로필 이미지
렉스턴
2023-05-12
1232
글번호 168908
지표
답변완료

문의 드립니다1

안녕하세요! 제가 아래수식을 활용코자하는 목적은... 세로선이 발생하기전에 이 세로선의 가격에 미리 가로선이 N봉전에 발생하는것을 보고자함이었습니다 헌데 며칠간 실시간에서 검증해본결과 오히려 세로선이 발생후(N봉후)에 이 가로선이 나중에 발생이됩니다 + - 어떤것을 적용해도 이치는 똑같습니다 저의 의도대로 수정이 가능하다면 다시한번 부탁드리겠습니다 여러번 번거롭게 해드려서 죄송합니다 ------------------------------------------------------------------------------ input : 굵기1(5),굵기2(5),굵기3(5),굵기4(5); var : cond11(false,data2),cond21(false,data2); var : cond12(false,data2),cond22(false,data2); var : TL1(0,Data1),TL2(0,Data1),TL3(0,Data1),TL4(0,Data1); if Bdate != Bdate[1] Then { value1 = 0; value2 = 0; value3 = 0; value4 = 0; } cond11 = data3(highD(0)) >= data2(highD(0)-PriceScale*1); cond21 = data2(lowD(0)) <= data3(lowD(0)+PriceScale*1); cond11 = data2(highD(0)) >= data3(highD(0)-PriceScale*1); cond21 = data3(lowD(0)) <= data2(lowD(0)+PriceScale*1); if data2(sTime >= 90300 and Cond11 == true and cond11[1] == false) Then { PlaySound("C:₩예스트레이더₩data₩Sound₩.wav"); TL1 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL1,White); TL_SetSize(TL1,굵기1); value1 = data3(highD(0)); } if data2(sTime >= 90300 and Cond21 == true and cond21[1] == false) Then { PlaySound("C:₩예스트레이더₩data₩Sound₩.wav"); TL2 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL2,black); TL_SetSize(TL2,굵기2); value2 = data3(lowD(0)); } cond12 = data3(LowD(0)) <= data2(lowD(0)+PriceScale*1); cond22 = data2(highD(0)) >= data3(highD(0)-PriceScale*1); cond12 = data2(LowD(0)) <= data3(lowD(0)+PriceScale*1); cond22 = data3(highD(0)) >= data2(highD(0)-PriceScale*1); if data2(sTime >= 90300 and Cond12 == true and cond12[1] == false) Then { PlaySound("C:₩예스트레이더₩data₩Sound₩.wav"); TL3 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL3,White); TL_SetSize(TL3,굵기3); value3 = data3(LowD(0)); } if data2(sTime >= 90300 and Cond22 == true and cond22[1] == false) Then { PlaySound("C:₩예스트레이더₩data₩Sound₩.wav"); TL4 = TL_New(sDate,stime,0,sDate,sTime,99999999); TL_SetColor(TL4,black); TL_SetSize(TL4,굵기4); value4 = data3(highD(0)); } if value1 > 0 Then Plot1(value1); Else noplot(1); if value2 > 0 Then Plot2(value2); Else noplot(2); if value3 > 0 Then Plot3(value3); Else noplot(3); if value4 > 0 Then Plot4(value4); Else noplot(4); FixPlotShift(1,-10); FixPlotShift(2,-10); FixPlotShift(3,-10); FixPlotShift(4,-10);
프로필 이미지
유로파54
2023-05-12
1376
글번호 168901
지표
답변완료

트렌드 크기

inputs: ATRLength(15), Strength(18), 폭(0.2); input : 쌍봉상(1),쌍봉하(2),쌍바닥상(2),쌍바닥하(2); var : STrend(0),ATRv(0), avgv(0), dnv(0), upv(0), trend(1), flag(0), flagh(0), ST(0),hl(0); var : idx(0),hh(0),ll(0),EP1(0),EP2(0); var : ema1(0),ema2(0),ema3(0),h1(0),l1(0),h2(0),h3(0),l2(0),l3(0),h4(0),l4(0); var :tx(0),tl(0); Ep1 = 2/(ATRLength+1); Ep2 = 2/(Strength+1); idx = idx+1; if idx < ATRLength Then { hh = DayHigh; ll = daylow; } Else { hh = Highest(High, ATRLength); ll = Lowest(Low, ATRLength); } if idx < Strength Then { h1 = DayHigh; l1 = daylow; } Else { h1 = Highest(High, Strength); l1 = Lowest(Low, Strength); } hl = hh-ll; if idx == 1 Then { ema1 = hl; ema2 = h; ema3 = l; } Else { ema1 = hl * EP1 + ema1 * (1-EP1); ema2 = h * EP2 + ema2 * (1-EP2); ema3 = l * EP2 + ema3 * (1-EP2); } atrv = ema1; avgv = (ema2+ema3)/2; upv = avgv + ATRv; dnv = avgv - ATRv; if idx >= 2 then { if c > upv[1] and c > h1[1] then trend = 1; else if c < dnv[1] and c < l1[1] then trend = -1; if trend < 0 and trend[1] > 0 then flag=1; else flag=0; if trend > 0 and trend[1] < 0 then flagh = 1; else flagh = 0; if trend > 0 and dnv < dnv[1] then dnv=dnv[1]; if trend < 0 and upv > upv[1] then upv=upv[1]; if flag == 1 then upv = avgv + ATRv; if flagh == 1 then dnv = avgv - ATRv; if trend == 1 then ST = dnv; else ST = upv; STrend = trend; } Plot1(st,"SuperTrend",iff(strend == 1,red,blue)); if Trend != Trend[1] Then { if Trend == 1 Then { var1 = h; var2 = var1[1]; tx = Text_New_Self(sDate,sTime, st,"●"); Text_SetColor(tx,Red); Text_SetSize(tx,20); Text_SetStyle(tx,2,2); if Var4 > 0 and var3 <= Var4+PriceScale*쌍바닥상 and var3 >= Var4-PriceScale*쌍바닥하 Then { tx = Text_New_Self(sDate,sTime, st,"●"); Text_SetColor(tx,Magenta); Text_SetSize(tx,25); Text_SetStyle(tx,2,2); } } Else { Var3 = l; Var4 = Var3[1]; tx = Text_New_Self(sDate,sTime, st,"●"); Text_SetColor(tx,Blue); Text_SetSize(tx,20); Text_SetStyle(tx,2,2); if Var2 > 0 and var1 <= Var2+PriceScale*쌍봉상 and var1 >= Var2-PriceScale*쌍봉하 Then { tx = Text_New_Self(sDate,sTime, st,"●"); Text_SetColor(tx,Cyan); Text_SetSize(tx,25); Text_SetStyle(tx,2,2); } } } Else { if Trend == 1 Then { if h > var1 Then var1 = h; } if Trend == -1 Then { if l < var3 Then var3 = l; } } if Trend != Trend[1] Then { if Trend == 1 Then { h2 = h; h3 = h2[1]; h4 = h3[1]; if L4 > 0 and max(L2,l3,l4) <= min(L2,l3,l4)+폭 Then { tx = Text_New_Self(sDate,sTime, st,"●"); Text_SetColor(tx,Black); Text_SetSize(tx,20); Text_SetStyle(tx,2,2); } } Else { L2 = l; l3 = l2[1]; l4 = l3[1]; } } Else { if Trend == 1 Then { if h > h2 Then h2 = h; } if Trend == -1 Then { if l < L2 Then L2 = l; } } 상승 트렌드가 생기면 트렌드 상단에, 크기를 트렌드를 따라 올라가며 red로 표기. 하락 트렌드로 바뀌면 하단을 따라 내려가며 크기를 blue로 표기. 표기는 마자막 상단 하나, 하단 하나만 남기고 이전은 삭제. 감사합니다.
프로필 이미지
고성
2023-05-12
1648
글번호 168900
지표
답변완료

basis 하이로우

data2 k200선물 data3 k200지수 bs =(data2(c)-data3(c)); 입력한 시간사이에 발생한 bs값의 하이로우를 계산합니다. 진입은 입력한 마지막시간 다음부터 가능합니다. 10시와 14시면 14시후부터 진입 if 10시 에서 14시 and bs로우값 하향돌파 then sell( ); 수식 부탁드립니다.
프로필 이미지
좌오비우오비
2023-06-22
1328
글번호 168899
시스템
답변완료

박스 중앙선

input : Period(250); Var:j(0),T(0); Var: date11(0),date12(0),time11(0),time12(0), date21(0),date22(0),time21(0),time22(0), date31(0),date32(0),time31(0),time32(0); var : TL(0),TL1(0),TX(0),tl4(0),tl5(0),tl9(0); var : box(0),box1(0),txx(0); Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0); Plot1(value12); For j = 0 To 19 { HiBar[j] = HiBar[j] + 1; LoBar[j] = LoBar[j] + 1; } if crossup(c,highest(H,Period)[1]) Then T = 1; if CrossDown(c,Lowest(L,Period)[1]) Then T = -1; If T == -1 Then { If T[1] != -1 Then { For j = 18 DownTo 0 { LoVal[j+1] = LoVal[j]; LoBar[j+1] = LoBar[j]; } LoVal[0] = L; LoBar[0] = 0; date11 = date[HiBar[0]]; time11 = stime[HiBar[0]]; Value11 = HiVal[0]; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date21 = date[HiBar[0]]; time21 = stime[HiBar[0]]; date22 = date[0]; time22 = stime[0]; box = box_new(date11,time11,Value11,date12,time12,Value12); } If LoVal[0] > L Then { LoVal[0] = L; LoBar[0] = 0; date12 = date[LoBar[0]]; time12 = stime[LoBar[0]]; Value12 = LoVal[0]; date22 = date[0]; time22 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } if value12 > value11-0.7 Then { Box_SetColor(box,LCyan); Box_SetFill(box,true,20); } else if value12 <= value11-0.7 and value12 > value11-1 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,50); } else if value12 <= value11-1 and value12 > value11-1.7 Then { Box_SetColor(box,Cyan); Box_SetFill(box,true,40); } else { Box_SetColor(box,Yellow); Box_SetFill(box,true,30); } } If T == 1 Then { If T[1] != 1 Then { For j = 18 DownTo 0 { HiVal[j+1] = HiVal[j]; HiBar[j+1] = HiBar[j]; } HiVal[0] = H; HiBar[0] = 0; date11 = date[LoBar[0]]; time11 = stime[LoBar[0]]; Value11 = LoVal[0]; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date31 = date[LoBar[0]]; time31 = stime[LoBar[0]]; date32 = date[0]; time32 = stime[0]; box = box_new(date11,time11,Value11,date12,time12,Value12); } If HiVal[0] < H Then { HiVal[0] = H; HiBar[0] = 0; date12 = date[HiBar[0]]; time12 = stime[HiBar[0]]; Value12 = HiVal[0]; date32 = date[0]; time32 = stime[0]; Box_SetEnd(box,date12,time12,Value12); } if Value12 >= value11+1 Then { Box_SetColor(box,Magenta); Box_SetFill(box,true,20); } Else { Box_SetColor(box,Orange); Box_SetFill(box,true,20); } } 박스의 상하 정중앙에(50%), 커짐에 따라 상하로 이동하는 "수평" 라인 추가. 감사합니다.
프로필 이미지
고성
2023-05-12
1754
글번호 168898
지표
답변완료

청산이 되지않아요 수식검토 부탁드립니다.

수고많으십니다. 프로그램을 다시접속해서 그런지 디버킹을 정상적으로 됩니다. if Date==20230512 and sTime==033500 Then { Buy("매수",AtMarket); } //Data1============================================= 나스닥 호가 0.25 틱가치 5 var1=c-EntryPrice; //지수차이를 나타냄 Var2=var1/0.25; Var3=Var2 * 5; if Var3 == 200.00 or Var3 == -200.00 Then { ExitLong("청산"); //매수포지션 청산 } MessageLog("지수차이 %.2f",Var1); MessageLog("틱수 %.2f",Var2); MessageLog("손익금액 %.2f",Var3); 1분봉에 자동주문 적용하니 033600에 정상적으로 매수 되었습니다. 수익200달러이거라 손실200달러일때 청산하도록 코딩을 한것 같은데 청산이 되지 않았습니다. 챠트상 잠시 청산신호는 나왔다가 사라졌습니다.
프로필 이미지
멋진감자
2023-05-12
1511
글번호 168896
시스템