커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

지표식 부탁합니다

연말에도 수고 많으십니다. 지표식 수정 부탁합니다. Input : N(1), period(60); If N == 1 and Downticks >= highest(Downticks,period) Then var1 = C; plot1(var1, "선"); 위 식을 차트에 적용하면 꺾이는 지점이 있습니다. 꺾여서 계속 진행되는 선은 그대로 실행되도록 놔두고, 꺾이는 지점에서 전에 이어진 선대로 20캔들 정도 선이 그어지도록 가능하면 수정해 주시기 바랍니다. 예를들어 제넥신이라는 종목에서 위 식을 5분봉에 적용하면, 21일에서 22일로 날짜가 바뀔 때 선이 올라갑니다. 그런데 21일에 그어진 선의 가격을 보면 52600원입니다. 그 가격을 그대로 20캔들 이어지도록 수정해 보자는 거지요. 20캔들 연장이 어렵다면 다음날까지 이어지도록 해주세요. 22일 올라간 선은 그대로 그어지도록 놔두고요. 수고 하십시오.
프로필 이미지
등정
2017-12-25
205
글번호 115244
지표
답변완료

문의드립니다~

Inputs: BBP(20),Dv2(2); var : BBup(0),BBdn(0),kshlong(0),kshshort(0); var88 = NthHighestBar(1,H,30); var28 = BollBandUp(60,dv2)[var88]; 원하는 식은 최근30봉의 최고가가 나오면 그 최고가봉의 상단60밴드가격을 알고 싶어서 var28로 표현해 봤는데요 제대로 안잡혀서 식 수정 좀 부탁드릴게요~ 감사합니다~
프로필 이미지
겐지
2017-12-25
188
글번호 115243
시스템
답변완료

코스피 200선물지수 분봉을 기준으로 다른 종목을 매매하는 방법이 있는지 궁금합니다.

코스피 200선물 지수의 분봉으로 다른종목(KODEX 200선물인버스2X)을 매매 하는 방법에 대해 궁금합니다.
프로필 이미지
모루
2017-12-25
205
글번호 115242
시스템
답변완료

수식 작성방법에 대한 문의

캡쳐한 화면 참조하시면 되구요. 봉의 패턴이 만들어지는 모양에 따라서 예약주문으로 진입구간 진입하는 경우인데 예전에는 실력이 모자라서 잘 몰라서 그렇게 했는지 몰라도 한가지 패턴에 대해서 적게는 몇가지에서 수십개의 경우를 다 작성해주었던 경우가 있었습니다. 캡쳐한 내용에서처럼 1번의 저점이 발생하고 2번에서 새로 저점이 발생하여 일단 이 값을 1번에서 2틱 아래에 할당하고 2번에서 손절점을 변경하고 3번에서처럼 이평선을 돌파하는 구간에서 예약주문으로 진입을 한다고 했을때 이전같으면 양봉과 음봉중에서 고점+2틱이 이평선의 값보다 크면 buy 구문에 atstop으로 진입수식 작성해주고 양봉음봉 다음에 봉이 몇개가 나올지 모르기 때문에 그 경우까지 하면 10-20개의 경우를 만들어줬는데 3번에서처럼 조건이 만족하면 57.70의 2틱 위에 예약주문값을 저장하고 진입을 안했을때 2번의 저점인 57,61의 일정틱 아래로 내려가면 예약주문 취소한다는 식으로 패턴에 대한 케이스를 다 만들어주지 않고도 가능한 경우인가요? 메뉴얼을 보면 조건이 만족한 후에 다음봉에 대해서만 감시를 하고 안되면 해제가 된다고 해서 복잡하게 저런 케이스를 수십개 작성하지 않고도 가능한지 질문드리는 것입니다. 정리하자면 1. 1번 저점의 57.62의 2틱 아래에 예상되는 최초 손절구간 57.60 2. 2번의 새로운 저점인 57.61의 2틱 아래 57.59 에 최초 손절구간 57.59로 변경 3. 3번의 이평선 돌파가 예상되는 값 57.70의 2틱 위인 57.72에 예약주문 설정 4. 진입하면 2번에서 나온 최초 손절선 57.59로 할당하기 5. 진입하지 않고 2번 저점의 일정틱 아래로 내려가면 예약주문인 57.72 값 취소 그리고 주문시 atstop, atlmit 주문으로 만일 진입하면 진입한 설정가격에서 주문이 예약주문 자체가 거래소로 전달되는건가요 아니면 그 가격에 시장가 주문인가요? 슬리피지는 나중에 생각해더라도 일정 틱수내에서 체결은 확실히 보장되어야 하는데 잘 기억은 안 나지만 예전에 예스글로벌 사용할때 미리 거래소로 주문을 못 넣으니 시세 급변할때 체결이 안되거나 슬리피지가 커져서 사용하기가 곤란했던적이 있습니다.
프로필 이미지
개냥이
2017-12-24
298
글번호 115241
시스템
답변완료

하루에 진입을 제한하는 수식

몇번째 질문드려 죄송합니다 매수/매도가 스위칭 하는 수식이라 그런지 제일처음에 매도 신호가 한번 나오고 이후에는 아무 신호도 나오지 않습니다 스위칭 하는 전략으로 알려주시면 감사하겠습니다 스위칭을 하지 않으시는 전략이면 진입식에 MarketPosition == 0을 추가하시면 됩니다. input : 일간최대진입횟수(2); var : T1(0),entry(0); if bdate != bdate[1] Then T1 = TotalTrades; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if 매수진입조건 Then{ if MarketPosition == 0 and entry < 일간최대진입횟수 Then buy(); if MarketPosition == -1 and entry == 일간최대진입횟수 Then ExitShort(); } if 매도진입조건 Then{ if MarketPosition == 0 and entry < 일간최대진입횟수 Then sell(); if MarketPosition == 1 and entry == 일간최대진입횟수 Then ExitLong(); }
프로필 이미지
중국동포
2017-12-24
198
글번호 115240
시스템
답변완료

일목균형표 매매 수식좀 부탁드립니다

양운을 돌파하고 두번째봉이 양봉이면 매수 음운을 하향돌파하고 두번째봉이 음봉이면 매도 이런수식을 바탁드립니다
프로필 이미지
초보나무
2017-12-24
253
글번호 115239
시스템
답변완료

수정부탁드립니다

54932번수정부탁드립니다 OSCP 과매도,과매수(0.2선)잘 부탁드립니다
프로필 이미지
용각산
2017-12-25
204
글번호 115238
지표
답변완료

내재변동성

안녕하세요. 항상 수고가 많으십니다. 질문드립니다 ----------------------------------------- 내재변동성에 대한 검색을 해보았더니, 글번호 : 3894 작성자 : 수식지왕 수식지왕님이 올리신 글이 보이더군요. 그래서 그대로 아래 지표식을 복사하여 적용시켜 보았더니 많은 에러가 나옵니다. 아래 지표식들을 어떻게 적용해야 하는지 가르쳐 주시면 감사하겠습니다. 그림 1 그림1 저희 카페 회원의 요청으로 만들어 보았습니다. 인터넷에서 검색만 해보면 블랙숄즈 옵션 이론에 대해 VBA소스가 많이 돌아 다닙니다. 다만, 문제는 버전이 조금씩 달라서 어떤 것이 정답인지 헷갈린다는 겁니다. VBA 소스를 예스 언어로 컨버전해서 테스트 해보고 약간씩 수정을 해서 예트 월물 조회화면에서 보여주는 값에 근접하는 수식을 채택했습니다. 입력값이 상이해서 그런지 일치하는 값을 구하기 어렵고 비슷하다는 정도입니다. 테스트 기간이 길지 않아 일부 오류가 발견될 수도 있습니다. _NormSDist.yfu (표준정규분포사용자함수) input:z(numeric); var : a1(0.31938153), a2(-0.356563782), a3(1.781477937), a4(-1.821255978), a5(1.330274429), R(0.2316419), Exp(2.71828182846), k(0), N(0); k = 1 / (1 + (R * Abs(z))); N = 1 / (Sqrt(2 * Pie())) * Exp^(-(z^2) / 2); _NormSDist = 1 - N * (a1 * k + a2 * (k ^ 2) + a3 * (k ^ 3) + a4 * (k ^ 4) + a5 * (k ^ 5)); If z < 0 Then _NormSDist = 1 - _NormSDist; _BlackSholes.yfu (BS 모델이론가 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (r + (Sig^2) / 2) * T) / (Sig*sqrt(T)); var2 = var1 - Sig*sqrt(T); if cpflag == 1 then { _BlackSholes = S * _NormSDist(var1) - X * (Exp^((-r)*T)) * _NormSDist(var2); } else if cpflag == 2 then { _BlackSholes = X * (Exp^((-r)*T)) * _NormSDist(var2) - S * _NormSDist(var1); } _ImVol.yfu (내재변동성 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Price(numeric); var:vLow(0), vHigh(0), vi(0),cLow(0), cHigh(0), Epsilon(0.001), j(0), n(5000); vLow = 0.01; vHigh = 2; cLow = _BlackSholes(cpFlag, S, X, T, r, q, vLow); cHigh = _BlackSholes(cpFlag, S, X, T, r, q, vHigh); vi = vLow + (Price - cLow) * (vHigh - vLow) / (cHigh - cLow); for j = 0 to n { If _BlackSholes(cpFlag, S, X, T, r, q, vi) < Price Then vLow = vi; Else vHigh = vi; cLow = _BlackSholes(cpFlag, S, X, T, r, q, vLow); cHigh = _BlackSholes(cpFlag, S, X, T, r, q, vHigh); vi = vLow + (Price - cLow) * (vHigh - vLow) / (cHigh - cLow); if Abs(Price - _BlackSholes(cpFlag, S, X, T, r, q, vi)) <= Epsilon then { var1 = vi; j = n; } } _ImVol = vi; _Delta.yfu (델타 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); if cpflag == 1 then { _Delta = Exp^((q-r)*T) * _NormSDist(var1); } else if cpflag == 2 then { _Delta = Exp^((q-r)*T) * (_NormSDist(var1)-1); } _Gamma.yfu (감마 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2)); _Gamma = Exp^((q-r)*T) * var3 / (S*Sig*Sqrt(T)); _Vega.yfu (베가 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*Sqrt(T)); var3 = (1 / Sqrt(2*pie())) * (1 / Exp^((var1^2) / 2)); _Vega = S * Exp^((q-r)*T) * var3 * Sqrt(T) /100; _Theta.yfu (쎄타 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); var2 = var1 - Sig*sqrt(T); var3 = (1 / Sqrt(2 * pie())) * (1 / Exp^((var1^2) / 2)); if cpflag == 1 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) - (q-r) * S * Exp^((q-r)*T) * _NormSDist(var1) - r * X * Exp^((-r)*T) * _NormSDist(var2); } else if cpflag == 2 then { _Theta = (-1) * (S * Exp^((q-r)*T) * var3 * Sig) / (2*Sqrt(T)) + (q-r) * S * Exp^((q-r)*T) * _NormSDist(-var1) + r * X * Exp^((-r)*T) * _NormSDist(-var2); } _Theta = _Theta / 365; _Rho.yfu (로 사용자함수) input:cpflag(numeric),S(numeric),X(numeric),T(numeric),r(numeric),q(numeric),Sig(numeric); var:Exp(2.71828182846); var1 = (log(S/X) + (q + (Sig^2) / 2)*T) / (Sig*sqrt(T)); var2 = var1 - Sig*sqrt(T); if cpflag == 1 then { _Rho = X * T * Exp^((q-r)*T) * _NormSDist(var2); } else if cpflag == 2 then { _Rho = -X * T * Exp^((q-r)*T) * _NormSDist(-var2); } 옵션민감도.yin (지표식) /*cpFlag : Call,Put 구분, 1,2로 표현 S : 기초자산가격의 가격, 예)주가지수(KOSPI200) X : 행사가격 T : 잔존만기(연율) r : 무위험 이자율, 예) CD금리 q : 배당률 Sig : 변동성 */ input: cpflag(1), //콜풋 입력 InS(0), //현재 지수를 입력 안하면 data 참조를 통해 실시간 가격을 이용. 테스트시 이용 x(145.0), //행사가 입력 ex(20050908), //만기일 r(0.0351), //CD 금리, 요기서 볼 수 있음 ==> http://stock.koscom.co.kr/ q(0), //배당률 InSig(0), //내재변동성을 입력 안하면 자체 계산된 변동성을 사용. 단, 오차 감안해야 함 InPrice(0); //역시 테스트를 목적으로 함 var:S(0),T(0),sig(0),price(0),ImVol(0),bs(0),delta(0),gamma(0),vega(0),theta(0),rho(0); S = iff(inS!=0,inS,data1("c")); //kospi200종합을 같이 띄워 놓아야 합니다. T = (DateToJulian(ex) - DateToJulian(date) + 1)/365; price = iff(inPrice!=0,inPrice,c); imvol = _ImVol(cpFlag, S, X, T, r, q, price); sig = iff(insig!=0,insig,ImVol); bs = _BlackSholes(cpFlag, S, X, T, r, q, sig); delta = _Delta(cpFlag, S, X, T, r, q, sig); gamma = _gamma(cpFlag, S, X, T, r, q, sig); theta = _theta(cpFlag, S, X, T, r, q, sig); vega = _vega(cpFlag, S, X, T, r, q, sig); rho = _rho(cpFlag, S, X, T, r, q, sig); plot1(imvol*100,"내재변동성"); plot2(bs,"이론가"); plot3(delta,"델타"); plot4(gamma,"감마"); plot5(theta,"쎄타"); plot6(vega,"베가"); plot7(rho,"로");
프로필 이미지
샐리짱
2017-12-23
739
글번호 115237
지표
답변완료

테마선

테마선 볼린져밴드는 어떻게 합니까?
프로필 이미지
레전드
2017-12-23
249
글번호 115236
지표