커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

# 아래수식에서 매수나 매도시 10틱이밀리면 추가1계약 매수매도하는식부탁합니다 Input : Period(14); var : TSF(0); TSF = LRL(C,Period)+LRS(C,Period); if TSF > TSF[1] Then buy(); Else if TSF < TSF[1] Then sell();
프로필 이미지
백진강
2016-03-21
186
글번호 96477
시스템
답변완료

수식요청드립니다.

안녕하세요. 당일청산 피라미딩 시스템에서 매도, 매수 포지션 진입 후 목표수익달성, 지수이평선 기울기 각도, 현재봉의 종가에 수익청산 시스템 수식 요청드립니다. << 청산조건 3가지 필수 청산조건 >> -> 매수진입 후 20 지수이평선 기울기 각도가 계속상승 조건발생(반대로 하락시 수식적용 제외) 1. 3PT 이상 목표수익 발생 후 2. 목표수익 발생 후, 고점에서 20 지수이평선 기울기 10%(또는 10도) 하락하고 3. 고점에서 20 지수이평선 기울기 각도가 상승, 횡보, 10%(또는 10도) 하락 시 현재봉의 종가에 수익청산 -> 매도진입 후 20 지수이평선 기울기 각도가 계속하락 조건발생(반대로 상승시 수식적용 제외) 1. 3PT 이상 목표수익 발생 후 2. 목표수익 발생 후, 저점에서 20 지수이평선 기울기 10%(또는 10도) 상승하고 3. 저점에서 20 지수이평선 기울기 각도가 상승, 횡보, 10%(또는 10도) 상승시 현재봉의 종가에 수익청산 ( 이평선 기울기는 %와 각도 중 이평선 기울기 판단에 유리한 조건으로 적용해 주세요) 감사합니다.
프로필 이미지
dandy
2016-03-22
193
글번호 96475
시스템
답변완료

질문

매수: 가격이 시작가 5원 이하로 내려간후 가격이 다시 시작가 5원이상 오를 때 매수 (가격이 시작가 이하로 내려간 적이 없으면 매수 하지 않음) 매도: 가격이 시작가 5원 이하로 내려갈 때 매도
프로필 이미지
erwe343
2016-03-21
154
글번호 96474
시스템
답변완료

부탁합니다.

아래수식에서 중복진입이 허용되지 않도록 하려면 어떻게 하여야 하나요? var entry,T; function Main_OnStart() { T = 0; Main.MessageLog("시작"); OrderCode = Main.GetOrderCode(SP.code); entry = 0; } function CTP_OnRiseSignal(Signal) { Main.MessageLog("신호완성/"+Signal.signalKind); if (T <= 0 && Signal.signalKind == 1) { T = 1; entry = entry+1; Main.KillTimer(2); if (entry == 1) VV = 1; else VV = 2; Main.SetTimer(1, 180000); } if (T >= 0 && Signal.signalKind == 3) { T = -1; entry = entry+1; if (entry == 1) VV = 1; else VV = 2; Main.KillTimer(1); Main.SetTimer(2, 180000); } } function Main_OnTimer(nEventID) { if (nEventID == 1 && T == 1) { Main.KillTimer(1); A1.OrderBuy(SP.code, VV, SP.Ask(5),2); Main.MessageLog("매수진입"); } if (nEventID == 2 && T == -1) { Main.KillTimer(2); A1.OrderSell(SP.code, VV, SP.Bid(5),2); Main.MessageLog("매도진입"); } }
프로필 이미지
너무조아
2016-03-21
174
글번호 96471
시스템
답변완료

문의드립니다.

작성하여 주신 수식에 항상 감사드립니다. 1분봉상 적용입니다. 1. 매수 : 30분 이내에 고가(a)와 저가(b)의 차이가 2%이상으로 하락한 경우 매수 2. 매도 : (a)와 (b)의 1/2지점만큼 상승시 매도 감사합니다.
프로필 이미지
사과쥬스
2016-03-21
164
글번호 96464
시스템
답변완료

수식문의합니다.

수식문의합니다. 문의1: 당일고가와 당일저가의 중심선을 만들고 싶습니다.신고가와 신저가가 만들어 지기전까지는 수평선이 변화지 않고 그대로 유지하는선요 색깔은 연두색으로요 문의2: 20일 이동평균선과 120일 이동평균선의 색깔이 변하게 하고싶습니다. 오를때는 빨강 내릴때는 파랑으로요 부탁드립니다.
프로필 이미지
마르시아
2016-03-21
187
글번호 96462
지표
답변완료

수식요청드립니다.

안녕하세요. 당일청산 진입식 매수, 매도 후 i증감으로 피라미딩 진입하는 수식을 진입후 다음봉 종가에 피라미딩이 진입 추가 되도록 수정 요청드립니다. ( 진입 후 i증감의 +/- 에 무관, 진입 후 다음 완성봉 종가마다 계속해서 진입방행으로 피라미딩 진입 추가) input : i증감(0.5),누적진입횟수(3),진입수량(1); if MarketPosition == 1 and Bxcond == false and MaxEntries < 누적진입횟수 Then Buy("PBB",AtStop,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 and SxCond == false and MaxEntries < 누적진입횟수 Then sell("PSS",AtStop,LatestEntryPrice(0)-i증감,진입수량); 감사합니다.
프로필 이미지
dandy
2016-03-21
169
글번호 96460
시스템
답변완료

시스템 검증

밑에 리플로 달았는데 못보신것 같아서 다시 올립니다. 만들어 주신 시스템으로 시험적용 해봐도 해당사항이 되는데 안뜨네요. 예를 들어 코데즈컴바인047770 3월16일에 떠야하는데 안뜹니다. 1분봉 적용 input : N(15); Array : DM[50](0),Cond[50](false); var : 상한가(0), UpLimit(0),cnt(0),sumM(0),avgM(0); var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0); if date != date[1] Then{ Cond[0] = false; DM[0] = 0; for cnt = 1 to 49{ DM[cnt] = DM[cnt-1][1]; Cond[cnt] = Cond[cnt-1][1]; } } if date >= 19981207 then { if date < 20050328 && CodeCategory() == 2 then UpLimit = (BP[0] * 1.12); Else if date >= 20050328 and date < 20150615 Then UpLimit = (BP[0] * 1.15); Else UpLimit = (BP[0] * 1.30); if CodeCategory() == 2 then { if date >= 20030721 then { up1 = int(UpLimit/100+0.00001)*100; up2 = int(UpLimit/100+0.00001)*100; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/10+0.00001)*10; up7 = int(UpLimit/1+0.00001)*1; } } Else { up1 = int(UpLimit/1000+0.00001)*1000; up2 = int(UpLimit/500+0.00001)*500; up3 = int(UpLimit/100+0.00001)*100; up4 = int(UpLimit/50+0.00001)*50; up5 = int(UpLimit/10+0.00001)*10; up6 = int(UpLimit/5+0.00001)*5; up7 = int(UpLimit/1+0.00001)*1; } if CodeCategory() == 1 || CodeCategory() == 2 then { if sdate < 20101004 Then{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up6); } Else{ If BP >= 500000 Then 상한가 = up1; Else If BP >= 100000 Then 상한가 = iff(up2>=500000, up1, up2); Else If BP >= 50000 Then 상한가 = iff(up3>=100000, up2, up3); Else If BP >= 10000 Then 상한가 = iff(up4>=50000, up3, up4); Else If BP >= 5000 Then 상한가 = iff(up5>=10000, up4, up5); Else If BP >= 1000 Then 상한가 = iff(up5>=5000, up5, up6); Else 상한가 = iff(up6>=1000, up6, up7); } } else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF 상한가 = up6; } } if H >= 상한가 Then cond[0] = true; DM[0] = DM[0]+M; if DM[N] > 0 Then{ sumM = 0; Condition1 = false; for cnt = 1 to N{ sumM = sumM + DM[N]; if Cond[cnt] == true Then Condition1 = false; } avgM = sumM/15; if ExitDate(1) != sdate and stime < 130000 and avgM >= 3000000000 and Condition1 == true and C > dayopen and DayVolume > DayVolume(1)*0.7 and C <= DayClose(1)*0.9 Then buy(); } if MarketPosition == 1 Then{ ExitLong("BP1",atlimit,EntryPrice*1.05); ExitLong("BP2",atlimit,EntryPrice*1.10); ExitLong("BL",atlimit,EntryPrice*0.97); } SetStopEndofday(144000); 아 그리고 90일중 상한가가 포함되어있고 최근 15일 평균 거래대금 30억 이상 종목을 검색하고 싶은데 위에 포함된 수식이 있는데 검색추가해도 잘 안되네요. 초보라 죄송합니다. 제가 잘못 추가했나본데 자세히 설명해주시면 감사합니다.
프로필 이미지
하루4%
2016-03-21
184
글번호 96459
시스템
답변완료

20,60이평의 교차지점을 점이나 선으로 표시하기

20이평과 60이평의 교차하는지점을 선이나 점으로 표시하기위해 아래와같이 작성하였습니다 여기서 점으로표시되는 점이 표현되고 다시 반대로 크로스 되면 이전에 표시되었던 선이나 점의 더이상 표현되지 않고 정지되게 하고 싶습니다 가능할까요? 자세한 질문은 그림첨부드렸습니다 답변 부탁드립니다 감사합니다 input:P1(20), p2(60); var1=ma(c,p1); var2=ma(c,p2); if crossup(var1,var2) then var3=var2; if CrossDown(var1,var2) then var4=var2; plot1(var1, "단기이평"); plot2(var2, "중기이평"); plot3(var3, "상승교차"); plot4(var4, "하락교차");
프로필 이미지
원칙지킴
2016-03-21
239
글번호 96458
지표