커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

부탁드립니다~~

참조 데이타 에서.. 예를들면.. 기관 옵션 매수금액이면 당일 매수금액에 0선 이 가로로 그으져 잇으면 좀 더 편리 할듯 싶어서요.. 방법이 없을 까요?? 부탁드립니다..구벅~
프로필 이미지
모수
2015-07-20
104
글번호 88675
지표
답변완료

부탁드립니다.

적용해봤는데 제가 설명을 잘못 드린것 같아 다시 부탁드립니다. ㅈㅅ 매수진입 : 우하향하던 하늘색 라인이 끝나는 지점에서 매수진입합니다. 만약 진입한 가격보다 1틱이라도 내려가면 손절하고 재매수진입합니다. 매도진입 : 우상향 하늘색 라인이 그려지면 매수청산하고 매도진입합니다. 만약 진입한 가격보다 1틱이라도 올라가면 손절하고 재매도진입합니다. 하늘색 라인수식: Var:j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0),tx(0),T(0),trnd(0); Array:valArr[10](0),barArr[10](0),turnPntArr[10](""); For j = 0 To 9 { barArr[j] = barArr[j] + 1; } Condition1 = Highest(H,52) == H and lastHiVal <> H; Condition2 = Lowest(L,52) == L and lastLoVal <> L; If Condition1 Then lastHiVal = H; If Condition2 Then lastLoVal = L; turnPntBit = ""; If Condition1 and Condition2 Then { If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then turnPntBit = "HiLo"; Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi"; Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo"; } Else If Condition1 Then turnPntBit = "Hi"; Else If Condition2 Then turnPntBit = "Lo"; If turnPntBit <> "" Then { If turnPntBit == "HiLo" Then { valArr[1] = IFF(turnPntArr[1] == "Hi",H,L); barArr[1] = 0; TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); If turnPntArr[1] == "Hi" Then turnPntBit = "Lo"; Else turnPntBit = "Hi"; } If turnPntBit <> turnPntArr[1] Then { for j = 8 downto 1 { valArr[j+1] = valArr[j]; barArr[j+1] = barArr[j]; turnPntArr[j+1] = turnPntArr[j]; } } If turnPntBit <> turnPntArr[1] or (turnPntBit == turnPntArr[1] and ((turnPntBit == "Hi" and valArr[1] < H) or (turnPntBit == "Lo" and valArr[1] > L))) Then { valArr[1] = IFF(turnPntBit == "Hi",H,L); barArr[1] = 0; turnPntArr[1] = turnPntBit; If turnPntArr[1][1] <> turnPntArr[1][0] Then{ Tx = Text_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],NumToStr(valArr[2],2)); Text_SetStyle(tx,2,2); TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]); PlaySound("C:₩예스트레이더₩data₩Sound₩a.wav"); } Else{ TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]); } } } TL_SetSize(TL1[1],3); TL_SetColor(TL1[1],RGB(20,255,255)); if turnPntArr[1][0] == "Hi" Then trnd = 1; if turnPntArr[1][0] == "Lo" Then trnd = -1; if Trnd == -1 and Trnd[1] == -1 and L == TL_GetValue(TL1,sdate,stime) and L < L[1] Then PlaySound("C:₩예스트레이더₩data₩Sound₩a.wav"); if Trnd == 1 and Trnd[1] == 1 and H == TL_GetValue(TL1,sdate,stime) and H > H[1] Then PlaySound("C:₩예스트레이더₩data₩Sound₩b.wav");
프로필 이미지
매일상승
2015-07-20
127
글번호 88674
시스템
답변완료

다시검토 부탁드림니다

글번호 43156 개인옵션금액 라인부탁드려는데요. 콜옵션라인.풋옵션라인 . 콜풋전체라인. 수식이 프로그램수식인것같아요. 확인좀.해주세요.
프로필 이미지
보인다
2015-07-20
136
글번호 88669
지표
답변완료

검토부탁드립니다.

계좌객체를 추가해서 해보았는데 델타값과 감마값이 0으로만 나오는데 도저히 이유를 모르겠습니다.(계좌잔고에 풋옵션매도만 있어서 그런건지 ㅠㅠ) 확인좀 부탁드립니다. 안녕하세요 예스스탁입니다. 계과객체의 함수중에 콜풋 구분해서 그릭의 총합을 리턴하는 함수가 있습니다. 아래 내용 참고하시기 바랍니다. 스크립트 객체화면에는 계좌객체만 있으면 됩니다. 수식내 round처리는 부동소숫점 오류를 없애 소숫점 4자리까지 표시하기 위해 처리한 내용입니다. function Main_OnStart() { Main.SetTimer(1, 2000)//2초 타이머 } function Main_OnTimer(nEventID) { var C1 = Math.round(Account1.GetTotalDelta(4, 0)*10000)/10000; var C2 = Math.round(Account1.GetTotalGamma(4, 0)*10000)/10000; var C3 = Math.round(C1*(1-C2)*10000)/10000; var P1 = Math.round(Account1.GetTotalDelta(5, 0)*10000)/10000; var P2 = Math.round(Account1.GetTotalGamma(5, 0)*10000)/10000; var P3 = Math.round(P1*(1-P2)*10000)/10000; Main.MessageList("콜옵션 -","델타합 : ",C1,"감마합 : ",C2,"델타값합*(1-감마값합) : ",C3) ; Main.MessageList("풋옵션 -","델타합 : ",P1,"감마합 : ",P2,"델타값합*(1-감마값합) : ",P3) ; }
프로필 이미지
연개소문1004
2015-07-20
147
글번호 88663
시스템

매일상승 님에 의해서 삭제되었습니다.

프로필 이미지
매일상승
2015-07-20
6
글번호 88657
시스템

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

프로필 이미지
ahdzhr
2015-07-20
10
글번호 88651
지표

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

프로필 이미지
외환달러
2015-07-20
4
글번호 88650
지표
답변완료

문의드립니다.

예를들어 선물거래 시스템을 1계약으로 만들었습니다. input : ma1(10); if marketposition(0) == 0 and crossup(c, ma1) then { buy("1", atmarket); } input : ma2(20); if marketposition(0) == 1 and crossdown(c, ma2) then { exitlong("x1", atmarket); } 여기에서 피라미딩전략을 이용해 진입신호 "1" 후에 "2"를 넣으려고 합니다. input : ma1(10); if marketposition(0) == 0 and crossup(c, ma1) then { buy("1", atmarket); } input : L2(1); if marketposition(0) == 1 then { buy("2", atstop, entryprice + L2); } input : ma2(20); if marketposition(0) == 1 and crossdown(c, ma2) then { exitlong("x1", atmarket); } 이렇게 말이죠.... 그런데 문제는 신호 "2"가 청산신호인 "x1"과 동시에 나오는 것입니다. 제가 원하는 시스템은 신호 "1"과 "x1" 사이에 신호"2"를 넣고 싶습니다. 만약, 신호 "2"와 "x1"이 동시에 나온다면 "2"를 진입시키지 않고 그대로 청산만 하고 싶은데... 이를 코딩하기 위해서 어떻게 해야하나요? 간단한 예시와 함께 답변 부탁드립니다.
프로필 이미지
yanartas
2015-07-20
134
글번호 88647
시스템
답변완료

문의드려요.

골드면 매수 데드면 매도하는 반전(리버스)전략인데요. 진입청산에 상대3호가넣은뒤, 진입주문지연을 안쓰면 1개매수 -> 2개매도 -> 2개매수 -> 2개매도 ~~~~ 이렇게 되잖아요. 만약, hts의 시스템매매설정 -> 매매가격을 진입: 상대1호가 청산: 우선1호가로 한다면 주문은 어떻게 나가나요? 진입주문지연을 쓸때와 안쓸때로 구별해서요..
프로필 이미지
팽구
2015-07-20
123
글번호 88641
시스템