커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식문의

안녕하세요. 항상 궁금증에 정확한 답변을 주셔서 감사드립니다. 질문 내용은 exitlong("1/3매도",OnClose,def,"",floor(CurrentContracts*0.33),1); 위와 같이 일부매도 주문을 낼때 만약 매수가 피라미딩으로 복수로 들어가 있을때 전체 비중의 33%를 매도하라는 주문인데요. 그동안 차트의 모습을 보면 항상 비중매도 주문시 선입선출 방식으로 보여집니다. 가장 먼저 매수한 주문건부터 차례대로 매도주문이 나가는 것을 볼 수 있습니다. 이렇게 되면 평단가가 변하게 됩니다. 제 질문의 요지는 일부매도가 나가더라도 평단가의 변화가 없도록 전체주문건에 대하여 일괄적으로 33%씩 매도주문을 나가게 할 수 있나요? 만약 3건의 매수에 각각 30주씩 매수가 진행되어서, 총 90주의 매수가 진행되었다면, 첫번째 주문에서만 30주가 나가는 것이 아니라, 각각 주문건 마다 10주씩 30주가 매도 나가게끔 하고 싶습니다. 전자와 후자는 평단가에서 다르기 때문에 향후 매도주문시 전혀 다른 방향으로 진행될 겁니다. 부탁드립니다.
프로필 이미지
탄탄시스템
2017-06-01
110
글번호 110021
시스템
답변완료

지표함수 혼합

안녕하세요? 시스템함수에 지표함수를 넣어 전략차트에 시스템함수를 적용하고 지표함수를 또 따로 적용하지 않고 하나의 스크립트로 작성하고 싶습니다. 그래서 시스템함수를 적용하면 차트에 지표까지 나오게 하고 싶습니다. 가령 시스템함수 A와 지표함수 B를 한개의 시스템으로 한 C함수를 만들고 싶습니다. ##A Input : shortPeriod(5), longPeriod(20); value1 = ma(C, shortPeriod); value2 = ma(C, longPeriod); If CrossUP(value1, value2) Then { Buy(); } If CrossDown(value1, value2) Then { Sell(); } ##B Input : Period1(5), Period2(20); var : Sma1(0),Sma2(0); Sma1 = ma(C,Period1); Sma2 = ma(C,Period2); Plot1(Sma1, "이동평균1"); Plot2(Sma2, "이동평균2");
프로필 이미지
통큰베팅
2017-06-01
92
글번호 110017
시스템
답변완료

질문입니다.

비슷한 질문을 드렸는데, 의사전달에 약간의 오류가 있었던 것 같아 다시 질문드립니다. 예를들어 다음과 같은 시스템이 있다고 가정해봅니다. if crossup(c, ma(5)) then buy("X", atmarket, def, 1); if crossup(c, ma(10)) then buy("Y", atmarket, def, 1); if crossup(c, ma(15)) then buy("Z", atmarket, def, 1); 위 시스템에서 "X", "Y", "Z" 각각에 stoplosee를 적용하고 싶습니다. "X" 신호의 stoploss는 진입가에서 0.5pt 하락시 손절, "Y" 신호의 stoploss는 진입가에서 0.75pt 하락시 손절, "Z" 신호의 stoploss는 진입가에서 1.0pt 하락시 손절입니다. 그리고 각각의 신호에서 만약 손절이 발생할 경우, 다음 진입신호는 손절이 일어난 신호가 아닌 다른 신호를 사용하는 시스템입니다. 예를들어 진입신호 "X"가 발생한 후, "X"에 관한 손절신호가 발생했다면, 손절 후 다음 진입신호는 "X"가 아닌 "Y" 혹은 "Z" 이게 하고 싶습니다. "Y" 나 "Z"에 관해서도 마찬가지입니다. 간단히 설명해서 각각의 신호에 관한 전용 손절의 개념을 구현하고 싶은것입니다. 손절이 발생한 후에는 같은 신호가 또 발생하지 않게 하고 싶구요. 예시로 답변부탁드립니다. 감사합니다.
프로필 이미지
yanartas
2017-06-01
98
글번호 110016
시스템
답변완료

분봉 수식

* 안녕하세요 * 분봉에서 일봉조건을 적용해 시스템 수식을 만드려보려 하는데 * 1분봉 90개 평균이 5일봉 크로스매슈가 외 안되죠? var1 = ma(c,5) ; if dayindex() >= 1 and CrossUp(ma(c,[90]) , var1) * 고맙습니다.....
프로필 이미지
요타
2017-06-01
100
글번호 110015
시스템

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2017-06-01
7
글번호 110014
지표
답변완료

수식 검토 부탁드립니다

수식검토를 부탁드립니다. 매수조건는 완성캔들이 밴드하단선에 밑에 위치하면 즉 하향돌파를 하던, 아니면 겝하락하여 종가캔들이 밴드하단선 이하에서 끝나면 일단 1차 조건 완성.... 이후에 캔들이 5일 이동평균선을 통과하면(또는 겝으로 떠서 5일 이평선 위에서 끝날때) 매수하는 방법입니다. 현재 수식을 적용해 보니, 1차 조건이 완성되지도 않았는데 5일 이평선만 통과하면 무조건 매수가 되고 있습니다. 즉 항상 볼린져밴드 하단을 이탈한 이후에 캔들이 5일 이평선을 통과해야 매수하는 조건식을 만들고 싶습니다. =================================================================================== input : 시작일(20170415), P(20),dv(2),sto1(25),sto2(6),sto3(6),MAP(5),금액(2100000),N(21); var : BBup(0),BBdn(0),BBMid(0),stok(0),stoD(0),BuySetup(true),ExitSetup1(false),Xcond(false),mav(0),Dncnt(0); # 5일 이평선 mav = ma(C,MAP); # 볼린져밴드 BBup = BollBandUp(P,dv); BBMid = ma(C,P); BBdn = BollBandDown(P,dv); # 스톡케스틱 stok = StochasticsK(sto1,sto2); Stod = StochasticsD(sto1,sto2,sto3); # 캔들이 하단밴드를 하향 이탈 또는 겝으로 출발하여 밴드하단선 이하에 종료될때 buysetup = true if c < BBdn Then{ BuySetup = true; } # buysetup = true가 발생된 이후에 캔들이 5일 이평선을 통과매면 매수 if BuySetup = true and crossup(C,mav) and MarketPosition == 0 Then buy("매수",OnClose,def, Floor(금액/C)); # 매도전략 if MarketPosition == 1 Then{ If Crossup(C,BBup) Then ExitLong("상단매도",OnClose,def); If CrossDown(C,BBMid) Then ExitLong("중심선이탈",OnClose,def); # ExitLong("상단매도",atlimit,BBup); # ExitLong("목표수익",atlimit,EntryPrice*1.93); # ExitLong("TR-Stop",AtStop,highest(H,BarsSinceEntry)*0.95); # if CrossDown(C,BBdn) Then ExitLong("하단이탈"); } Else{ ExitSetup1 = false; } # SetStopLoss(7,PercentStop);
프로필 이미지
뽄때
2017-05-31
102
글번호 110013
시스템
답변완료

부탁드립니다. 감사합니다.^^

안녕하세요. ~ 수고 많으십니다.^^ 항상 감사드립니다. 제가 만들고 싶은 함수는 아래와 같습니다. 부탁드립니다.(매수매도양계좌매매) ================== N 봉의 고가이동평균[highest(H,n)]이 상향한적이 있고 하향한 직전까지만 매수진입조건유효 위의 매수진입 조건이 유효하면 20일선 아래에서 시가가 시작되는 양봉의 시가+3틱에서 매수1계약 진입 익절 50, 손절 30 N 봉의 고가이동평균[Lowest(L,n)]이 하향한적이있고 상향한 직전까지만 매도진입조건 유효 매도진입 조건이 유효하면 20일선 위에서 시가가 시작되는 음봉에 시가에서 -3틱에 매도1계약 진입 익절 50, 손절 30 매매시간은 16시부터 02시까지 이며 03시가되면 진입한 계약수가 있다면 모두 청산하고 매매종료 합니다. ================== 항상감사드립니다. 좋은 하루되세요 ^^
프로필 이미지
하늘선물
2017-06-01
93
글번호 110012
시스템
답변완료

부탁 드립니다

노고에 경배로 감사 인사 드립니다. 다음 참고 수식 유형과 같이 최고거래량일때의 고가 2번째 최고 거래량일때의 고가 3번째 최고 거래량일때의 고가를 나타 내고 싶습니다. 참고 수식) var : LV1(0),LL1(0),LV2(0),LL2(0); if Bdate != Bdate[1] Then{ LV1 = V; LL1 = H; LV2 = 9999999999; LL2 = O; } Else{ if V < LV1 Then{ LV1 = V; LL1 = H; LV2 = LV1[1]; LL2 = LL1[1]; } if V > LV1 and V < LV2 Then{ LV2 = V; LL2 = H; } } plot1(LL1,"최저거래량고가"); plot2(LL2,"두번째최저거래량고가");
프로필 이미지
yes
2017-05-31
105
글번호 110011
지표
답변완료

두번매수

input : HP(5),LP(5),최대수량(10); var : cnt(0),HH(0),LL(0); HH = dayhigh(1); for cnt = 1 to HP{ if dayhigh(cnt) > HH Then HH = dayhigh(cnt); } LL = dayLow(1); for cnt = 1 to LP{ if daylow(cnt) < LL Then LL = dayLow(cnt); } if crossup(c,HH) then buy(); if crossup(c,HH-0.05) then buy(); 위매수식에서 각각50% 매수합니다(1차,2차두번 매수) if CrossDown(c,LL) Then sell(); if CrossDown(c,LL-0.05) Then sell(); 매도반대 감사합니다
프로필 이미지
큰바위얼굴
2017-05-31
82
글번호 110010
시스템