커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다.

항상 감사드립니다. 현재 캔들 기준 이전 n번째 캔들의 고가 돌파시 즉시 매수, 저가 돌파시 즉시 매도. 손절은 매수는 n번째 캔들의 저가를 돌파시,매도는 n번째 캔들의 고가를 돌파시. 그리고 현재캔들 기준인데, 거래시간 전의 캔들은 포함하지 않는 건지요? 제가 원하는 것은 거래시간 시작이후 첫 캔들이 n번째 이전 캔들의 고가 저가를 반영해서 로직대로 진행하는 것입니다. 수식을 작성했는데요. 안 맞는 부분이 있어서 수정 부탁드립니다. 감사합니다. input : n1(n); input : StartTime(235000),EndTime(060000); input : 익절틱수(800),손절틱수(0),거래횟수(10); var : Tcond(false), entry(0); IF Endtime > starttime Then SetStopEndofday(Endtime); Else { if sDate != sDate[1] Then SetStopEndofday(Endtime); } if (NextBarSdate != sdate and NextBarStime >= EndTime) or (NextBarSdate == sdate and NextBarStime >= EndTime and stime < EndTime) Then Tcond = False; if (NextBarSdate != sdate and NextBarStime >= StartTime) or (NextBarSdate == sdate and NextBarStime >= StartTime and stime < StartTime) Then { Tcond = true; entry = 0; IF Endtime <= starttime Then { SetStopEndofday(0); } } if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or (MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then entry = entry+1; if Tcond == true Then { if MarketPosition <= 0 and NextBarOpen <= H[n1] and entry < 거래횟수 Then Buy("b1",AtStop,H[n1]+PriceScale*1); if MarketPosition >= 0 and NextBarOpen >= L[N1] and entry < 거래횟수 Then Sell("s1",AtStop,L[N1]-PriceScale*1); if MarketPosition == 1 Then ExitLong("bx",AtStop,L[N1]-PriceScale*1); if MarketPosition == -1 Then ExitShort("sx",AtStop,H[n1]+PriceScale*1); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
jesten77
2021-11-23
926
글번호 153834
시스템
답변완료

수고하십니다.예비신호에 대하여

빠른 답변에 감사드립니다. 예비신호 발생시에 변수로 예비신호가 나왔다는것을 저장하는 방법이 있나요?
프로필 이미지
구름달
2021-11-23
690
글번호 153830
시스템
답변완료

RSI

===================================================================== Inputs: Length(NumericSimple); Variables: Counter(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0); If CurrentBar == 1 AND Length > 0 Then Begin UpSum = 0; DownSum = 0; For Counter = 0 To Length - 1 Begin UpAmt = C[Counter] - C[Counter+1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpSum = UpSum + UpAmt; DownSum = DownSum + DownAmt; End; UpAvg = UpSum / Length; DownAvg = DownSum / Length; End Else If CurrentBar > 1 AND Length > 0 Then Begin UpAmt = C[0] - C[1]; If UpAmt >= 0 Then DownAmt = 0; Else Begin DownAmt = -UpAmt; UpAmt = 0; End; UpAvg = (UpAvg[1] * (Length - 1) + UpAmt) / Length; DownAvg = (DownAvg[1] * (Length - 1) + DownAmt) / Length; End; If UpAvg + DownAvg <> 0 Then RSI = 100 * UpAvg / (UpAvg + DownAvg); Else RSI = 0; ========================================================================== RSI 지표 구성이 위와 같습니다.(예스랭귀지 내용 복사했습니다.) 스팟에서 RSI 지료를 쓰려고 하는데, 확장차트에서 할 수 없는 상황이 되었습니다. 위의 식을 스팟에서 구현하도록 도움 부탁드리겠습니다. CurrentBar를 어떻게 처리할 지 몰라서 여쭤봅니다. 확장 차트에서 C[Counter] ==> CT[i].GetClose(Counter) 이런 식으로 구성할 예정입니다.
프로필 이미지
cs아빠
2021-11-23
570
글번호 153829
지표
답변완료

지표 수식 부탁드립니다.

분봉에서 상한가 마감한 다음날 고가 대비 -10, -15, -20, -25, -30가 선으로 나타나게끔 지표 수식 부탁드립니다. 감사합니다.
프로필 이미지
after512
2021-11-23
678
글번호 153827
지표

선물대장 님에 의해서 삭제되었습니다.

프로필 이미지
선물대장
2021-11-23
0
글번호 153824
시스템
답변완료

문의 드립니다.

당일 시가 기준으로 시가 위이면 1번 적용 당일 시가 기준으로 시가 아래면 2번 적용 그리고 매매 수량을 원하는 대로 입력할 수 있을까요? 현재는 하나만 가능한데요... 부탁드립니다. 1번 Input : Period(10), MultiD(2); var : BBmd(0),BBup(0),BBdn(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); if C > BBmd and crossup(C[1],BBmd[1]) Then buy(); input : P(10); var1 = ma(C,P); if CrossDown(c,var1) Then ExitLong(); 2번 Input : Period(100), MultiD(2); var : BBmd(0),BBup(0),BBdn(0); BBmd = ma(C,Period); BBup = BollBandUp(Period,MultiD); BBdn = BollBandDown(Period,MultiD); if C < BBmd and CrossDown(C[1],BBmd[1]) Then sell(); input : P(10); var1 = ma(C,P); if crossup(c,var1) Then ExitShort();
프로필 이미지
선물대장
2021-11-23
742
글번호 153823
시스템

안미남 님에 의해서 삭제되었습니다.

프로필 이미지
안미남
2021-11-23
0
글번호 153822
시스템
답변완료

순서 질문드립니다.

C2 = Data2(c); C3 = Data3(c); C4 = Data4(c); 위 구문을 아래처럼 놓을때랑 value1 위에 놓을때랑 수익이 달라지는데,,, 정석이 어떻게되는지 궁금합니다. ------------------------------- input : StartTime(93000),EndTime(144000); Input : s1(14), s2(198); input : 손절(1.2),익절(1.2); input : 최소이익(1.0),손실범위(0.1); var : Tcond(false,Data1); var : C2(0,Data2); var : C3(0,Data3); var : C4(0,Data4); value1 = ma(c3,s1); Value2 = ma(c3,s2); 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); if Tcond == true Then { if CrossUp(value1,Value2) then Buy(); if CrossDown(value1,Value2) then Sell(); } SetStopEndofday(EndTime); SetStopProfittarget(익절,PointStop); SetStoploss(손절,PointStop); SetStopContract();#생략가능 SetStopTrailing(손실범위 , 최소이익 , PointStop);
프로필 이미지
캣피쉬
2021-11-23
938
글번호 153820
시스템
답변완료

다시 부탁드립니다

안녕하세요 예스스탁입니다. 문의하신 내용은 각진입별로 진입명을 부여하고 해당 진입명을 청산함수에 지정해서 청산하게 하셔야 합니다. if A조건 Then Buy("A"); if A조건 Then <== B 조건이지요? Buy("B"); if A조건 Then <== C 조건이지요? Buy("C"); if A조건 Then <== d 조건이지요? Buy("D"); if MarketPosition == 1 Then { if A1조건 Then <=== 여기부터 이해 안 됩니다 ExitLong("A1",OnClose,DEF,"a"); 다시 좀 부탁드립니다 if A2조건 Then 수고하세요~~ ExitLong("A2",OnClose,DEF,"a"); if A3조건 Then ExitLong("A3",OnClose,DEF,"a"); if A4조건 Then ExitLong("A4",OnClose,DEF,"a"); } 즐거운 하루되세요 > 안미남 님이 쓴 글입니다. > 제목 : 늘 수고 많습니다 > 식이 a b c d 로 4개의 식이 있습니다 A 식으로 들어간건 A1 청산 B 식으로 들어간건 B1 청산 C 식으로 들어간건 C1 청산 D 식으로 들어간건 D1 청산 으로 하고 싶습니다 예를 들어 만들어 주시길 부탁드립니다 늘 고맙습니다
프로필 이미지
안미남
2021-11-23
630
글번호 153819
시스템