커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식작성

input : StartTime(70000),EndTime(55000),Xtime(55500); var : Tcond(false),entry(0); var : B1(0),B2(0),BX1(0),BX2(0); var : S1(0),S2(0),SX1(0),SX2(0); if sdate != sDate[1] Then SetStopEndofday(Xtime); if (sdate != sdate[1] and stime >= EndTime) or (sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then Tcond = False; if (sdate != sdate[1] and stime >= StartTime) or (sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then { Tcond = true; SetStopEndofday(0); entry = 0; } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; B1 = DayLow(1)+(DayHigh(1)-DayLow(1))*5.638; B2 = DayLow(1)+(DayHigh(1)-DayLow(1))*5.939; BX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*1.400; BX2 = DayHigh(1); S1 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.118; S2 = DayHigh(1)+(DayHigh(1)-DayLow(1))*-0.230; SX1 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.236; SX2 = DayLow(1)+(DayHigh(1)-DayLow(1))*-0.764; if Tcond == true and entry < 1 Then { if (MarketPosition == 0 or (MarketPosition == 1 and MaxEntries == 1)) Then { if L > B1 Then Buy("b1",AtLimit,B1); if L > B2 Then Buy("b2",AtLimit,B2); } if MarketPosition == 1 Then { ExitLong("bx1",AtLimit,BX1,"B1"); ExitLong("bx2",AtLimit,BX2,"B2"); } if (MarketPosition == 0 or (MarketPosition == -1 and MaxEntries == 1)) Then { if H < S1 Then Sell("S1",AtLimit,S1); if H < S2 Then Sell("s2",AtLimit,S2); } if MarketPosition == -1 Then { ExitShort("sx1",AtLimit,SX1,"S1"); ExitShort("sx2",AtLimit,SX2,"S2"); } } SetStopProfittarget(PriceScale*300,PointStop); SetStopLoss(PriceScale*30,PointStop); -------------------------------- 늘 감사드립니다. s1 (-0.118) 진입후 전일 피보나치 전체 수열의 0.236로 청산되는 수식 작성에 어려움이 있네요 수정 부탁드립니다.
프로필 이미지
푸른
2021-06-22
1801
글번호 150160
시스템
답변완료

월봉의 켈트너 채널, 볼린저 밴드

안녕하세요? 월봉의 켈트너 채널, 볼린저 밴드를 일봉에서 사용하고 싶은데요. 공식 도움 부탁드립니다. 너무 오래걸리시는 건이면 패스해주세요... 감사합니다~
프로필 이미지
롬롬7
2021-06-22
1850
글번호 150159
지표
답변완료

시스템식 문의 드립니다.

예전에 요청드렸던 시스템 식입니다. 여기에 추가적인 조건을 넣고 싶은데 계속 실패해서 이렇게 요청드리게 되었습니다. 위 그림에도 적혀있다 시피 1차 매수 타점은 당일 시가 X 0.97 (-3%)하락했을 경우 인데 전일 상한가를 쳤을 경우 또는 당일 오후 1시 이후 에는 1차 매수 타점이 당일 시가 X 0.94 (-6 %) 이 되록 바꾸고 싶습니다. 지난번에 요청드린 시스템식도 같이 올려드리오니 부탁드리겠습니다. 항상 감사드리고 있습니다. ---------------------------------------------- var : entry(0),AP(0); if Bdate != Bdate[1] Then entry = 0; if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if MarketPosition == 0 Then { if entry == 0 or (entry >= 1 and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06) and IsExitName("Bp1",1) == true) Then Buy("b1",AtLimit,DayOpen*0.97); } if (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b1") == true) or (MarketPosition == 0 and entry >= 1 and IsExitName("Bp2",1) == true and (sTime < 115000 or Highest(H,BarsSinceExit(1)) < AP*1.06)) Then Buy("b2",AtLimit,DayOpen*0.94); if (MarketPosition == 1 and MaxEntries == 2 and IsEntryName("b1") == true) or (MarketPosition == 1 and MaxEntries == 1 and IsEntryName("b2") == true) Then Buy("b3",AtLimit,DayOpen*0.91); if MarketPosition == 1 Then { AP = AvgEntryPrice; if MaxEntries == 1 and IsEntryName("b1") == true Then { ExitLong("bp1",AtLimit,AP*1.02); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx1"); } if (MaxEntries == 2 and IsEntryName("b1") == true) or (MaxEntries == 1 and IsEntryName("b2") == true) Then { ExitLong("bp2",AtLimit,AP*1.01); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx2"); } if (MaxEntries == 3 and IsEntryName("b1") == true) or (MaxEntries == 2 and IsEntryName("b2") == true) Then { ExitLong("bp3",AtLimit,AP*1.005); if TimeToMinutes(sTime) >= TimeToMinutes(EntryTime)+60 Then ExitLong("bx3"); } ExitLong("bl",AtStop,DayOpen*0.88); } SetStopEndofday(151800); -----------------------------------------------------------------------------
프로필 이미지
맴맴잉
2022-02-27
2119
글번호 150158
시스템
답변완료

종목 검색 후 특정 조건 연동 관련 질문

안녕하세요, 1) 3분봉으로 A 조건에 부합하는지 검색 2) 당일 일봉 B 조건에도 부합 (예. 현재가가 일봉 5일선 위에 있는지 확인 if(Close > ma(c,50)) 1) 2) 조건 둘다 해당하는 경우에만 대응을 하려고 하는데요, 예스스팟으로 다음과 같이 구현이 될까요? 1. 1) 조건으로 검색 2. 검색결과로 나온 종목들에 2)를 시스템으로 적용하여 조건부합시 매수신호 발생 3. 매수신호 받아서 대응 처리 이런식으로 테스트로 만들어봤는데 일봉으로 시스템을 적용하면 적용시점에 바로 조건부합해서 매수신호가 들어가도 예스스팟에서 매수신호를 받지 못하는것 같아서요.. 분봉은 해당분이 끝나면 봉이 완성되는데 일봉은 그날 장마감이 되어야 완성되는것 같아서.. 이런 경우 어떻게 풀면 좋을지 조언 부탁드립니다.
프로필 이미지
edan
2021-06-22
1889
글번호 150157
시스템
답변완료

당일 종가의 바로 직전 호가를 구하는 식을 알고 싶습니다.

당일종가 : C[0] 직전호가 : 동시호가가 시작되기 직전의 호가 직전호가로 미리 의사결정을 하고 당일종가로 매매주문을 내려는 의도입니다.
프로필 이미지
yon
2021-06-21
1584
글번호 150156
강조
답변완료

72976번 재문의 합니다

항상감사합니다 72976호 2번수식 확인 부탁드립니다 시그널에 나오지 않네요? 수식 요약하면 스토캐스틱 과열구간에서 10일 이평선과 60이평선 골든시 매수시그널 스토캐스틱 침체구간에서 10일 이평선과 60이평선 데드시 매도시그널입니다 그리고 지표식 삼각표시로도 부탁드립니다
프로필 이미지
gopang
2021-06-21
1795
글번호 150155
시스템
답변완료

문의

외부변수 Period1 ,p1,period3 수식1 LT=lowest(L,P1); HT=highest(H,P1); NewH=valuewhen(1,H>HT(1),H); NewL=valuewhen(1,L<LT(1),L); T=ma(c,period3); Z=(NewL==low(1)&&NewL<low) or (NewH== high(1) && NewH>high); SL=valuewhen(1,Z,T); valuewhen(1,SL!=SL(1),ma(c,period3)) 수식2 t1=ma(c,period1); x=valuewhen(1,crossdown(c,t1), highestsince(1,crossup(c,t1),t1)); 수식3 t1=ma(c,period1); x=valuewhen(1,crossup(c,t1), lowestsince(1,crossdown(c,t1),t1)); 부탁드립니다
프로필 이미지
레전드
2021-06-21
1962
글번호 150154
지표
답변완료

늘 고맙습니다

만들어 주신 식으로 해 보니 절 작동하네요 고맙습니다 1. 여태 피라미딩을 위해 기존 수량 차트와 피라미딩용 차트로 두개를 써 왔는데 혹시 한 화면서 피라미딩과 기존 수량을 동시에 컨트롤 할 수 있을까요? 2.피라미딩된 수량을 매도하기 위해 수동으로 수량 지정해줬었는데 자동으로 한번에 매도 하고 싶습니다 3. 피라미딩된 수량을 1/2 씩 분할매도 하고 싶습니다 4.5분봉서 30일의 고가를 표현하고 싶습니다.,가능할까요? 많은 도움에 늘 감사드립니다 만들어 주신 식 안녕하세요 예스스탁입니다. 아래와 같이 작성하시면 당일에는 15시 당일청산이 적용되지 않고 전일까지만 15시 당일청산이 적용됩니다. var1 = ma(C,5); Var2 = ma(C,20); if CrossUp(var1,Var2) Then Buy(); if sDate != sDate[1] Then { if CurrentDate != sDate Then SetStopEndofday(150000); Else SetStopEndofday(0); } 즐거운 하루되세요 > 안미남 님이 쓴 글입니다. > 제목 : 늘 고맙습니다 > 다음날 피라미딩을 위해 당일 오후 세시에 시간청산을 하고 있습니다 근데 시스텀 변경을 가끔 잊어버려서 피라미딩으로 매수된 종목이 오후 세시에 시간청산 되는 경우가 있습니다 매수식으로 피라미딩 된 종목이 계속 보유할 식을 알고 싶습니다 5,20 골드 매수식으로 예제 부탁드립니다 수고하세요
프로필 이미지
안미남
2021-06-22
1915
글번호 150153
시스템
답변완료

문의드립니다

1 매수진입 첫봉완성시 첫봉만 무조건 매수진입하고 이후에 매수-매도-진입-청산 이 아래와 같이 연속해서 나오는 시스템입니다 매수청산 매수진입후 최고가 대비 종가가 A% 하락시 매도진입 매수청산 후 매도진입 매도청산 매도진입후 최저가 대비 종가가 B% 상승시 매수진입 매도청산 후 매수진입 2 매도진입 첫봉완성시 매도청산 매도진입후 최저가 대비 종가가 C% 상승시 매수진입 매도청산 후 매수진입 매수청산 매수진입후 최고가 대비 종가가 D% 하락시 매도진입 매수청산 후 매도진입 감사합니다
프로필 이미지
파인애플
2021-06-21
1729
글번호 150142
시스템