커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 수정 의뢰드립니다!

안녕하세요! 아래 수식은 전메 만들어 주신겁니다! 매매를 하면서 전일시장과 당일 시장이 연장되지 않고 당일에 새로운 바탕선이 적용될 수 있도록 수정 부탁드립니다! 감사합니다! Input : Af(0.02), MaxAf(0.2); Var : direction(0), sar1(0), afval(0), ep(0),lowval(0),highval(0),count(0); if count == 0 then //변수들의 초기화 { highval = High; lowval = Low; direction = 0; sar1 = 0; afval = 0; ep = 0; count = 1; } if(ep != 0 ) then // 추세가 진행중 { if(direction == 1) then // 상승추세이면 { ep = highval; sar1 = sar1 + afval*(ep-sar1); // 상승추세에서 SAR값 계산 if(high > highval) then // 신고가 발생 { highval = high; afval = afval+Af; // 상승추세에서 신고가가 발생했으므로 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } if( low < sar1) then // 추세변경(상승->하락) { // 다음 SAR값을 계산할 때 필요한 전SAR값은 하락추세로 전환되기 직전의 direction = -1; // 최고가를 사용하므로 sar1 = ep (ep에는 highval 들어있다) sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화 afval = 0; ep = 0; lowval = low; } } else // 하락 추세 { ep = lowval; // 하락추세에서는 EP로 저가 사용 sar1 = sar1 + afval*(ep-sar1); if(low < lowval) then // 신저가 발생 { lowval = low; afval = afval + Af; if( afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } if(high > sar1) then // 추세 변경(하락->상승) { // 다음 SAR 값을 계산할 때 필요한 전SAR값은 상승추세로 전환되기 직전의 direction = 1; // 최저가를 사용하므로 sar1 = ep (ep에는 lowval값이 들어있다) sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화 afval = 0; ep = 0; highval = high; } } } else if(sar1 != 0 && ep == 0) then //추세가 변경된후 첫번째 SAR계산 { if(direction == 1) then // 상승 추세 { ep = highval; // 상승추세에서는 신고가를 EP로 사용하므로 afval = Af; // 가속변수의 초기값인 AF(0.02) 적용 sar1 = sar1 + afval*(ep-sar1); if ( high > highval) then // 신고가가 발생 { Highval = high; afval = afval + Af; // 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } } else // 하락추세 { ep = lowval; afval = Af; // 가속변수의 초기값인 AF(0.02) 적용 sar1 = sar1 + afval*(ep-sar1);// 하락추세에서 SAR 계산 if(low < lowval) then // 신저가 발생 { lowval = low; afval = afval + Af; // 가속변수 증가 if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다) afval = MaxAf; } } } else // SAR 첨 시작 { if direction == 0 then // 추세가 없으므로 { if(c > c[1]) then // 상승추세로 시작 direction = 1; else if( c < c[1]) then // 하락추세로 시작 direction = -1; } else if direction == 1 then // 상승추세(추세변경이 일어날 경우 SAR 계산하기 시작) { if(c < c[1]) then // 추세 변경 (상승->하락) SAR 계산하기 시작 { direction = -1; sar1 = highval; // 하락추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최고가를 사용하므로 } } else if direction == -1 then // 하락추세(추세변경이 일어날 경우 SAR 계산하기 시작) { if( c > c[1]) then // 추세 변경 (하락->상승) SAR 계산하기 시작 { direction = 1; sar1 = lowval; // 상승추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최저가를 사용하므로 } } lowval = min(low, lowval); // 추세 변경시 전 SAR값으로 최고가나 최저가가 필요하므로 highval = max(high,highval); // low, high를 전의 최고가, 최저가와 비교하여 최고가, 최저가를 저장 } //처음 시작할 때 다음 추세 변경이 일어날 때까지 SAR는 invalid #if(sar1 != 0) then # User_Func_Sar = sar1; if sar1 > sar1[1] Then plot1(sar1,"파리볼릭",BLUE); else plot1(sar1,"파리볼릭",blue); Plot2(C,"종가");
프로필 이미지
qha71
2021-06-22
1893
글번호 150168
지표
답변완료

시스템 질문입니다

지수선물 적용예정 입니다 1.N봉 전의 주가 보다 현재 주가가 더 높으면 매수 N봉 전의 주가 보다 현재 주가가 더 낮으면 매도 2. N일 전의 주가 보다 현재 주가가 더 높으면 매수 N일 전의 주가 보다 현재 주가가 더 낮으면 매도 신속한 답변 바랍니다
프로필 이미지
우리상향
2021-06-22
1908
글번호 150167
시스템
답변완료

수식 질문드립니다.

예를들어서 현재 buy 포지션 유지중인데, 익절이 20 pt 입니다. 그런데 익절 나오기전에 또 buy 신호가 뜬다면 여기서 추가로 한개 더 진입하게할수없나요? 사진에서 피라미딩하용하면 하루에 몰아서 다 때려넣는데, 이렇게 말고 신호뜨면 하루 1개만 추가진입하게하고 싶습니다. 반대신호 뜨면 다 청산하고 다시 한개만 진입하고,, data --------------------- # input : StartTime(90500),EndTime(151000); Input : s1(120), s2(200); //input : s11(28),s12(265); input : 손절(5.6); input : 익절(30.2); //input : way(9),road(-8),road2(-8); //input : 최소이익(2),손실범위(0.1); input : bf11(0.2),sf11(-0.85),bf12(0.85),sf12(-0.5); input : bf13(0.8),sf13(-0.8),bf14(0.5),sf14(-0.32); //var : condi(0); var : Tcond(false,Data1); var : C2(0,Data2); var : C3(0,Data3); var : C4(0,Data4); var : C5(0,Data5); var : C6(0,Data6); var : C7(0,Data7); value1 = ma(c2,s1); value2 = ma(c2,s2); //value12 = Ma(c2,600); //value13 = Ma(c3,600); //value14 = Ma(c4,600); //value15 = Ma(c5,600); value12 = Average(c2,600); value13 = Average(c3,600); value14 = Average(c4,600)*4; value15 = Average(c5,600)*4; 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; C2 = Data2(c); C3 = Data3(c); C4 = Data4(c); C5 = Data5(c); C6 = Data6(c); C7 = Data7(c); if Tcond == true Then { If #CrossUp(Value3,0) value13 < -0.32 and (value14 < -0.32 or value14>0.32) //and c6+c7>road #39.62 //and c2<bf11 //and c3<bf12 #47.86 //and c4<bf13 //and c5<bf14 Then { Buy(); } If #CrossDown(Value3,0) value13 > 0.32 and (value14 < -0.32 or value14 > 0.32) //and c6+c7<-road //and c2>sf11 //and c3>sf12 //and c4>sf13 //and c5>sf14 Then { Sell(); } } # #SetStopEndofday(EndTime); SetStoploss(손절,PointStop); SetStopProfittarget(익절,PointStop); #SetStopContract();#생략가능 #SetStopTrailing(손실범위 , 최소이익 , PointStop);
프로필 이미지
캣피쉬
2021-06-22
1725
글번호 150161
시스템
답변완료

수식작성

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
1911
글번호 150160
시스템
답변완료

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

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

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

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

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

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

72976번 재문의 합니다

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