커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

합성요청

메뉴의 '시스템합성관리자'가 아닌 함수를 통해서 시스템A와 시스템B를 다음의 청산 조건을 추가하여 하나의 시스템으로 만들고 싶습니다. - 청산조건(시스템A와 시스템B에 모두 적용) : 손절매 : 0.5% 목표수익 : 1% 최소가격변화 : 0.5%, 10봉이내 - 시스템A var : entry(0); if bdate != bdate[1] Then entry = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; var : ho(0),OL(0),HL(0); var : maho(0),maOL(0),maHL(0); var : cnt(0),sumho(0),sumOL(0),sumHL(0); var : EntryCnt(0); ho = Dayhigh-Dayopen; OL = DayOpen-DayLow; HL = DayHigh-DayLow; sumho = 0; sumOL = 0; sumHL = 0; for cnt = 1 to 10{ sumho = sumho + (dayhigh(cnt)-dayopen(cnt)); sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt)); sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt)); } maho = sumho/10; maOL = sumOL/10; maHL = sumHL/10; var1 = dayopen(0)+maho; var2 = DayOpen(0)-maOL; var3 = DayOpen(0)+maHL; var4 = DayOpen(0)-maHL; var5 = NthMaxList(1,var1,var2,var3,var4); var6 = NthMaxList(2,var1,var2,var3,var4); var9 = NthMaxList(3,var1,var2,var3,var4); var10 = NthMaxList(4,var1,var2,var3,var4); var7 = (var5+var10)/3; var8 = (var6+var9)/3; if MarketPosition == 0 and entry == 0 Then{ if var7 > var8 Then sell("s1",AtStop,var7); if var7 < var8 Then sell("s2",Atlimit,Var8); } if MarketPosition == -1 and IsEntryName("s1") == true Then{ ExitShort("sp1",atlimit,var9); ExitShort("sl1",AtStop,var6); } if MarketPosition == -1 and IsEntryName("s2") == true Then{ ExitShort("sp2",atlimit,var9); ExitShort("sl2",AtStop,var6); } - 시스템B var : TF(0); var : Xtime(0), Etime(false),cnt(0),mav1(0),mav2(0); var : HV(0),LV(0),HV1(0),LV1(0),HV2(0),LV2(0); Array : HH[50](0),LL[50](0),CC[50](0); mav1 = ma(c,5); mav2 = ma(C,20); TF = TimeToMinutes(stime)%30; if Bdate != Bdate[1] Then{ Etime = true; if stime >= 090000 Then Xtime = 050000; Else Xtime = 060000; } if Bdate != Bdate[1] or (TF < TF[1] and stime > stime[1]) or date != date[1] Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 49{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if HH[25+2] > 0 Then{ HV = HH[0]; LV = LL[0]; HV1 = HH[1]; LV1 = LL[1]; HV2 = HH[2]; LV2 = LL[2]; for cnt = 0 to 25{ if HH[cnt] > HV Then HV = HH[cnt]; if LL[cnt] < LV Then LV = LL[cnt]; if HH[cnt+1] > HV Then HV = HH[cnt+1]; if LL[cnt+1] < LV Then LV = LL[cnt+1]; if HH[cnt+2] > HV Then HV = HH[cnt+2]; if LL[cnt+2] < LV Then LV = LL[cnt+2]; } var1 = (HV+LV)/3; var2 = (HV1+LV1)/3; var3 = (HV2+LV2)/3; if Etime == true then{ if MarketPosition == 0 and CC[0] > var1 and CC[1] < var2 and CC[2] < var3 and C >= daylow+0.5 Then buy("b",AtMarket); if MarketPosition == 1 and c <= highest(H,BarsSinceEntry)-0.5 and CrossDown(mav1,mav2) Then ExitLong("bx",AtMarket); } } if stime == Xtime or (stime > Xtime and stime[1] < Xtime) Then{ Etime = false; ExitLong(); }
프로필 이미지
통큰베팅
2015-06-04
144
글번호 86780
시스템
답변완료

오류가 나오네요

input :P1(5),P2(10),P3(20),진입틱수(3),목표수익틱수(10); var1 = ma(C,P1); var2 = ma(C,P2); var3 = ma(C,P3); #정배열 if var1 > var2 and var2 > var3 and var3 > var3[1] Then buy("b1",atlimit,var1-PriceScale*진입틱수); #역배열 if var1 < var2 and var2 < var3 and var3 < var3[1] Then sell("s1",atlimit,var1+PriceScale*진입틱수); SetStopProfittarget(PriceScale*목표수익틱수,PointStop); SetStopEndofday(150000); 위의 수식데로 했는데 검증시 오류가 나오네요. 다시한번만 검토 부탁드립니다.^^
프로필 이미지
싱글
2015-11-02
123
글번호 86778
시스템
답변완료

지표 표현 부탁드립니다

안녕하세요... 보통 볼린저밴드가 단순이평으로 종가를 기준으로 만들어져 있는것 같습니다. 그래서 볼린저밴드를 단순이평 대신 가중이평선으로도 표현하고, 또 지수이평선으로도 표현하고, 가격을 종가 대신 고가 , 저가 , 고가+저가+종가/3 등으로도 표현하게 부탁드립니다. 문의1) 볼린저밴드를 가중이평선으로 볼린저밴드를 표현 부탁드립니다. 1-1)여기에 가격을 종가 대신 (고가+저가+종가/3)으로 표현되게 합니다. 1-2)여기에 가격을 종가 대신 (저가)로 표현되게 합니다. 1-3)여기에 가격을 종가 대신 (고가)로 표현되게 합니다. 1-4)여기에 가격을 종가로 표현합니다. 문의2) 볼린저밴드를 지수이평선으로 볼린저밴드를 표현합니다 2-1)여기에 가격을 종가 대신 (고가+저가+종가/3)으로 표현되게 합니다. 2-2)가격을 종가 대신 (저가)로 표현되게 합니다. 2-3)가격을 종가 대신 (고가)로 표현되게 합니다. 2-4)가격을 종가로 표현합니다. 감사합니다.
프로필 이미지
정후아빠
2015-06-04
141
글번호 86772
지표
답변완료

손실발생시 매매중지 또는 타수식 적용

손실 발생시 연속적으로 3회정도 발생됨에 따라 이후 2회는 매매 중지 또는 타식으로 진입하고 싶읍니다. input:period(30); var:wr(0); wr=willr(period); if crossup(wr,-20) then buy(); if crossdown(wr,-80) then sell(); 손실발생시 매매 중지 또는 스토캐스틱 교차매매로 2회 진입하고 싶음니다. 감사합니다.
프로필 이미지
회원
2015-06-04
137
글번호 86771
시스템
답변완료

해외선물수식 부탁드립니다.

1.시가대비 +4 (매수1진입) : 매도1진입돼 있는 것 있으면 손절(익절)과동시에 매수1진입. 시가대비 -4 (매도1진입) : 매수1진입돼 있는 것 있으면 손절(익절)과동시에 매도1진입. 2.시가대비 +24 (매수1진입) : 매도1진입돼 있는 것 있으면 손절(익절)과동시에 매수1진입. 시가대비 +16 (매도1진입) : 매수1진입돼 있는 것 있으면 손절(익절)과동시에 매도1진입. 3.시가대비 +44 (매수1진입) : 매도1진입돼 있는 것 있으면 손절(익절)과동시에 매수1진입. 시가대비 +36 (매도1진입) : 매수1진입돼 있는 것 있으면 손절(익절)과동시에 매도1진입. 4.시가대비 -24 (매도1진입) : 매수1진입돼 있는 것 있으면 손절(익절)과동시에 매수1진입. 시가대비 -16 (매수1진입) : 매도1진입돼 있는 것 있으면 손절(익절)과동시에 매도1진입. 5.시가대비 -44 (매도1진입) : 매수1진입돼 있는 것 있으면 손절(익절)과동시에 매수1진입. 시가대비 -36 (매수1진입) : 매도1진입돼 있는 것 있으면 손절(익절)과동시에 매도1진입. 1 ~ 5 번 진입신호를 하루종일 무한반복하는 수식을 만들고 싶습니다. 시가대비 지정한위치가 오면 손절이든 익절이든 처리가 되어지고 무조건 1개가 진입되게 만들고 싶습니다. 부탁드리겠습니다.
프로필 이미지
신나는파파
2015-06-04
149
글번호 86770
시스템
답변완료

숨기는방법

제가 쓰는 지표, 시스템 등등 편집기에서 열어보지 못하게 하는방법이 없나요? 수식을 저장해서 어디 컴퓨터든 옮겨서 쓰고 싶습니다.^^
프로필 이미지
회원
2015-06-03
150
글번호 86769
사용자 함수
답변완료

감사합니다.

어제 알려주신대로 하니 OpenPP문제는 감쪽같이 해결&#46124;습니다^^ 그걸 응용해서 골드일때 매수, 데드일때 매도로 리버스전략을 만들어봤는데 아무리해봐도 데이터가 틀립니다. 수정부탁드리오며, 다시금 감사합니다. =========================================================== Input : 수량(1); Var : MP(0),BuySellEntryPrice(0),OpenPP(0),NP(0); If MP == 0 Then{ If CrossUp(Ma(C,5),Ma(C,20)) Then{ MP = 1; BuySellEntryPrice = C; } If CrossDown(Ma(C,5),Ma(C,20)) Then{ MP = -1; BuySellEntryPrice = C; } } If MP == 1 Then{ OpenPP = (C-BuySellEntryPrice)*수량; If CrossDown(Ma(C,5),Ma(C,20)) Then{ MP = 0; NP = NP+OpenPP; OpenPP = 0; } } If MP == -1 Then { OpenPP = (BuySellEntryPrice-C)*수량; If CrossUp(Ma(C,5),Ma(C,20)) Then{ MP = 0; NP = NP+OpenPP; OpenPP = 0; } } MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f",open,close,MP,NP,OpenPP);
프로필 이미지
9단
2015-06-03
135
글번호 86768
지표
답변완료

수식 문의 드립니다.

DayLow(1) 를 쓰면, 전날의 저가를 가져오는걸로 알고있습니다. 맞는지요? 맞다면, 저 함수는 1분봉, 5분봉, 10분봉 등 상관없이, 일봉 데이터를 가져오는 것이 맞나요? 분봉을 다르게하고, 봉갯수도 다르게 하면 값이 다르게 나올수가 있는건지요... 왠지 제대로 값이 안나오는 듯해서요.. 일봉 값이 다르게 나타날 경우가 있는지요??
프로필 이미지
ywesry
2015-06-03
153
글번호 86767
시스템

외환달러 님에 의해서 삭제되었습니다.

프로필 이미지
외환달러
2015-06-03
8
글번호 86766
지표