커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 질문 드립니다.

늘 친절한 답변에 감사드립니다. 아래의 수식을 각종 차트에 적용하면 거래가 7회 또는 8회 밖에 안일어 나고,, 연속 2회 손실이 나도 매매수량이 2배로 증가하지 않습니다. 어디를 수정해야 "최초 투입금액은 연속 2회 손실이나면 매매수량을 2배로 증가하되 최대투입금액은 8,000,000원이고 이익이 나면 다시 1,000,000만원으로 환원하여 거래한다."라는 조건을 만족시킬 수 있는지 알려주시면 감사하겠습니다. var : Vol(0); if TotalTrades == 0 Then var1 = 1000000; if TotalTrades >= 2 and PositionProfit(1) < 0 and PositionProfit(2) < 0 Then var1 = min(var2*2,8000000); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(var1/C)/10)*10; Else vol = int(var1/C); if CodeCategory == 6 Then vol = int(var1/(C*BigPointValue)); if dayindex == 1 Then { if data2(bids) > data2(asks) then buy("b",OnClose,def,Vol); if data2(bids) < data2(asks) Then sell("s",OnClose,def,Vol); }
프로필 이미지
앙두
2013-11-16
170
글번호 69555
시스템
답변완료

수고하십니다! 문의드려요.

갭보정된 CSar를 구현해보려고 해서 var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0); if date!=date[1] then { gap = Open-Close[1]; sumGap = sumGap+gap; } GO = O - sumGap; GH = H - sumGap; GL = L - sumGap; GC = C - sumGap; 이걸 이용해서 사용자 함수의 CSar 항목 중에서 각 해당Open,High,Low,Close 등의 글자를 GO,GH, GL,GC로 바꾸는 방법을 사용했습니다. Csar부분은 제가 바꾼 이름 "gap_CSar"로 변경했구요. 다른 지표는 다 잘 되는데 유독 요놈만 안되는 이유를 모르겠습니다. 증상은 Csar의 값이 굉장히 크게 나와 차트가 거의 일직선으로 압축되는 현상이 발생합니다. 외부변수의 속도값을 크게해봐도 별반 나아지는게 없네요. 즉 외부변수의 문제는 아닌듯합니다. 그냥, 버그이겠거니 하고, 갭보정된 분봉차트로 일반의"파라볼릭종가"를 적용했을 때의 속도값으로 시스템식을 만들어보고 돌려봐도, 원하는대로 나오지가 않습니다. 즉, 사용자함수 부분에서 오류가 난걸로 보입니다. 제가 놓친것이 무엇일까요?
프로필 이미지
차싸
2013-11-16
272
글번호 69554
사용자 함수
답변완료

문의

질문드립니다. 주종목을 일봉으로 잡고, 참조1을 60분봉으로 잡았을때입니다. 이경우 60분기준으로 특정조건을 만족했을때, 청산신호가 나오게 할수는 없는지요? 감사합니다.
프로필 이미지
별이777
2013-11-16
153
글번호 69553
시스템
답변완료

수식문의

LRL 관련 value1 = 봉수 value2 = 봉수의 제곱 value3 = 봉수의 평균 value4 = 봉수의 제곱평균 value5 = 봉수의 평균제곱 value6 = 종가*봉위치 value7 = value6의 이동평균 value8 = 종가이동평균 인데 이중 봉수는 첨부화일에서 어떻게 적용해야 하나요? 도와주세요...
프로필 이미지
khg1017
2013-11-16
190
글번호 69552
시스템
답변완료

도와주세요 ..

수고많으십니다 .. 1;종가로 피봇1차저항선을 하향돌파하면 ("s1") 라는진입명으로매도진입하는수식에 몇가지를 추가하고싶습니다 진입필터로 당일최고가가 피봇2차저항선을 돌파한적잇어야하고 and 당일최고종가가 피봇2차 저항선을 돌파한적없어야한다 ; 위에진입조건을만족하여 ("s1") 로 진입한뒤 손절청산되엿다면 .. 리버설 진입으로 종가로 당일최고가 돌파시 매수진입 ; ("s1") 진입이 손절되면 리버설진입만 세팅되고 다시 ("s1") 진입조건이만족되도 매도진입은 하지않습니다 2;직전포지션이 매도포지션이고, 진입명이"s1" 이고 , 익절로청산되엿다면 종가로 피봇1차지지선을 하향돌파시 "s2"로 매도진입 ; "s2" 진입이손절로 끝나면 다시조건 만족해도 진입금지 ; 피봇선수식은 생략해도 됩니다 .. 잘 부탁드리겟습니다 ;
프로필 이미지
CSI300
2013-11-15
193
글번호 69551
시스템
답변완료

부탁드립니다

옵션의 미결을 콜과 풋으로 나누어서 실시간으로 계속 쉽게 모니터링 할수 있는 방법은 없는지요?
프로필 이미지
jabes
2013-11-15
190
글번호 69550
검색
답변완료

수식 문의요

안녕하세요 2번째추가매수 할때는 평균단가 -5프로 이상 빠졌을때 매수하게만들어주세요 첫번째 매수하여 평균-4프로에 있을&#46468;는 2번째 매수는 못하게 하구요 -5프로 이상일때 매수들어가게 해주세요 매번-5프로 빠지면 들어가는 식이 아니구 매수가평균대비 -5프로 일경우 매수식입니다 예를들어 -10프로에 추가매수들어갈는데 평균금액이 -6프로이면 다시매수가능식입니다 매도식은 처음 매수후는 +5프로일경우 매도, 물타기(2번째추가 매수일경우 평균 +2프로에 전량대도식으로 바꾸어주세요 ) 수고하세요 input : 투자금액(200000),P(60); Var : Body(0),HighBody(0),LowBody(0),Height(0),UpTail(0),DnTail(0),Long(False); var : Vol(0),entrycond(false),mav(0); mav = ma(C,P); if date != date[1] Then entrycond = false; if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int((투자금액)/C)/10)*10; Else vol = int((투자금액)/C); Body = Abs(C-O); HighBody = Max(C,O); LowBody = Min(C,O); Height = H-L; UpTail = H-Max(C,O); DnTail = Min(C,O)-L; DnTail = Min(O,C) - L; Uptail = H - Max(O,C); Height = H - L; body= Abs(O-C); highbody = Max(O,C); LowBody = Min(O,C); If Abs(Open-Close) > ma(Abs(Open-Close),10)*2 Then Long = True; Else Long = False; If UpTail == 0 and DnTail == 0 Then Condition1 = True; Else Condition1 = False; If C > mav and entrycond == false and C < Ma(C,10) and DnTail < Height*0.1 and C == O and Height > Ma(Height,10) then{ buy("a1",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C < Ma(C,10) and (Uptail < Height * 0.1) and C == O and (Height > Ma(Height,10)) then{ buy("a2",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(C,10)[1] and C[1] < O[1] and Long[1] == True and C > O and Long and O < L[1] and C >= (O[1]+C[1])/2 and C < O[1] then{ buy("a3",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[2] >= Ma(C,10)[2] and C[2] < O[2] and C[1] < O[1] and C < O) and (O[1] > Min(O,C)[2] and O[1] < Max(O,C)[2]) and (O > Min(O,C)[1] and O < Max(O,C)[1]) and (C[2] > C[1] and C[1] > C[0]) and (L[2] < L[1] and L[1]< L[0]) then{ buy("a4",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and C[2] < O[2] and C[1] > O[1] and C < O and O[1] > C[2] and O[1] == L[1] and O > Max(H[1],H[2]) and C[2] == C[0] then{ buy("a6",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[4] < Ma(C,10)[4] and C[4] < O[4] and C[3] < O[3] and C[2] < O[2]) and (O[4] > O[3] and O[3] > O[2]) and (C[4] > C[3] and C[3] > C[2]) and (C[1] < O[1] and H[1] - MaxList(O,C)[1] > 0) and (H[1] < O[3] and C[2] > C[1]) and Close > Open and (O > O[1] and C > MaxList(H[1],H[2])) then{ buy("a7",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[2] < Ma(C,10)[2] and Long[2] == True and C[2] < O[2]) and (C[1] == O[1] and Max(O,C)[1] < Min(O,C)[2])and (C > O and Min(O,C) > Max(O,C)[1])and (C > C[2]) then{ buy("a8",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[1] < O[1] and Long[1] == True and Condition1[1] == True ) and (Long == True and C > O and Condition1 == True ) and (L > H[1]) then{ buy("a9",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C > O and Abs(C-C[1]) < Ma(Height,10)*0.1 then{ buy("a10",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C < Ma(C,10) and body > Ma(body,10)*2 and C > O and O == L and Uptail > 0 and Uptail < Height*0.1 then{ buy("a11",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and C[2] == O[2] and C[1] == O[1] and C == O and HighBody[1]< LowBody[2] and HighBody[1] < LowBody[0] then{ buy("a12",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C == O and Highbody < Highbody[1] and Lowbody > Lowbody[1] then{ buy("a13",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(C,10)[1] and C[1] < O[1] and body[1] > Ma(body[1],10)*2 and C > O and Highbody < Highbody[1] and Lowbody > Lowbody[1] then{ buy("a14",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and C[2] < O[2] and body[2] > Ma(body[2],10)*2 and C[1] > O[1] and Highbody[1] < Highbody[2] and Lowbody[1] > Lowbody[2] and C > O and C > C[1] then{ buy("a15",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(c,10)[1] and C[1] < O[1] and C > O and Body > Ma(Body,10)*2 and Highbody > Highbody[1] and Lowbody < Lowbody[1] then{ buy("a16",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and C[2] < O[2] and C[1] > O[1] and Body[1] > Ma(Body[1],10)*2 and Highbody[1] > Highbody[2] and Lowbody[1] < Lowbody[2] and C > O and C > C[1] then{ buy("a17",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[4] < Ma(c,10)[4] and Body[4] > Ma(Body,10)[4]*2 and C[4] < O[4]) and (C[3] < O[3] and C[1] < O[1]) and (Body > Ma(Body,10)*2 and C > O) and (O[3] > HighBody[2] and HighBody[2] > O[1]) and (C[3] > LowBody[2] and LowBody[2] > C[1]) and (C >= O[1] and C > O[3] and C < C[4]) then{ buy("a18",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and C[1] == O[1] and HighBody[1]<LowBody[2] and C > O and C > C[2] then{ buy("a19",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and Body[1] < Ma(Body,10)[1]*0.5 and HighBody[1] < LowBody[2] and C > O and C > C[2] then{ buy("a20",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[3] < Ma(C,10)[3] and Body[3] > Ma(Body,10)[3]*2 and C[3] < O[3] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2] and O[3] == H[3] and C[3] == L[3] and O[2] == H[2] and C[2] == L[2] and O[1] < Min(O,C)[2] and H[1] > C[2] and UpTail[1] > Height*0.5 and O > H[1] and C < L[1] then{ buy("a21",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C < Ma(C,10) and DnTail < Height*0.1 and UpTail > Body*2 and Height > Ma(Height,10) and C != O then{ buy("a22",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[2] < Ma(C,10)[2] and C[2] > O[2] and C[1] > O[1] and C > O and O[1] >= LowBody[2] and O[1]<= HighBody[2] and O <= HighBody[1] and C[2] <= C[1] and C[1] <= C then{ buy("a23",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C[1] < Ma(C,10)[1] and C[1] < O[1] and Body[1] > Ma(Body,10)[1]*2 and C < O and Highbody < Highbody[1] and Lowbody > Lowbody[1] then{ buy("a24",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and C < Ma(C,10) and UpTail < Height*0.1 and DnTail > Body*2 and Height > Ma(Height,10) and C != O then{ buy("a26",OnClose,def,vol); entrycond = true; } If C > mav and entrycond == false and (C[2] < Ma(C,10)[2] and Body[2] > Ma(Body,10)[2]*2 and C[2] < O[2]) and (C[1] < O[1] and C > O and Highbody[1] < Highbody[2] and Lowbody[1] > Lowbody[2]) and (L[1] < L[2] or L[1] < Min(L[2],L[3],L[4])) and (L[1] < O and C[1] > C) then{ buy("a27",OnClose,def,vol); entrycond = true; } SetStopProfittarget(5,PercentStop); if CurrentEntries >= 2 Then exitlong("매도2",atlimit,AvgEntryPrice*1.02);
프로필 이미지
회원
2013-11-17
205
글번호 69549
시스템
답변완료

문의드립니다

[ 기존수식] input : BBP(20),dv(2); var : BBup(0),BBdn(0); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBp,Dv); if C > O and C <= BBdn Then var1 = 1; if MarketPosition == 0 or C <= BBdn Then{ var1 = 2; Buy("매수"); } if C < O and BBUp>= C Then var1 = -1; if MarketPosition == 0 or C >= BBup Then{ var1 = -2; sell("매도"); } if MarketPosition == 1 Then{ if countif(C<O,3) == 3 and C < EntryPrice Then ExitLong(); if stime == 150000 and C <= EntryPrice-0.5 Then ExitLong(); } if MarketPosition == -1 Then{ if countif(C>O,3) == 3 and C > EntryPrice Then ExitShort(); if stime == 150000 and C >= EntryPrice+0.5 Then ExitShort(); } 위 수식에서 신호발생 봉에서 지표상 거래대금(전일비교)이 10,000 이상 또는 직전봉대비 거래대금이 500%이상 높을경우 하나라도 해당될때 신호 진입하고, 반대의 경우는 신호 집입 금지로 수정좀 부탁드립니다.
프로필 이미지
칼봉산
2013-11-15
169
글번호 69547
지표
답변완료

감사합니다.

감사합니다. Input : Period(20), LPercent(85); Var : value(0); value = Disparity(Period) ; If value <= LPercent and countif(c >=o,5) >= 2 Then Buy(); 이 수식이 20선 대비 이격도 85보다 작거나 같고, 양봉2개이상인 경우 매수 신호인지요? 그리고 "20분선과 현재주가의 괴리 80% 발생후 30분 경과"를 조건식으로 하면 어떻게 되는지요? 감사합니다.
프로필 이미지
huhboo99
2013-11-15
183
글번호 69543
시스템