커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

내장함수 문의

안녕하세요 (__) 1. 최근 매수시간에 대한 내장함수가 있는지 궁금하고, 2. 매수가 발생하면 8시간동안 매수를 하지 못하는게 하는 방법이 궁금합니다. 3. 위의 사진은 스토캐스틱으로 3번 매수가되었는데, 매수시간을 이용하여 1회로 줄이려고 합니다. 더 스마트한 방법이 있을까요? 항상 감사드립니다.
프로필 이미지
모루
2018-01-02
184
글번호 115403
시스템
답변완료

수정부탁드립니다=========================

처음식은 첨부 왼쪽 그림처럼 내재변동성이 나오는데 수정해주신 두번째식은 (첨부우측)내재변동성이 표시가 안되네요 제가뭘 잘못적용했나요? 부탁드립니다 //처음식 //(옵션민감도(nh버전))********************************************************************** Input:역사적변동성(11.4); Var:cpFlag(""),S(0),X(0),T(0),r(0),BS(0),p(0),j(0), ImVol(0),Delta(0),Gamma(0),Vega(0),Theta(0),Rho(0),exit(0),만기일1단계(0),만기일2단계(0),만기일3단계(0); #================================================# p = C; //옵션가격, 옵션종목을 기본차트로 띄워놓아야 한다. S = Data2("C"); //기초자산이 보조차트가 되어야 한다. If CodeCategory <> 6 Then { Alert("Data1이 옵션종목이 아닙니다."); exit = 1; } If Data2(SymbolName) <> "KP200 종합" Then { Alert("Data2가 KP200 종합이 아닙니다."); exit = 1; } If exit == 0 Then { If CurrentBar == 1 Then { // SymbolName : 콜1801월 327.5kp (한글은 2자리로 계산) X = StrToNum(MidStr(SymbolName,10,5)); // 행사가격, 종목명에서 추출 만기일1단계 = 20000000 + StrToNum(MidStr(SymbolName,3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계 = DayOfWeek(만기일1단계); // 만기월의 8일의 요일 값 만기일3단계 = 만기일1단계 + (Iff(만기일2단계 > 4, 11, 4) - 만기일2단계); // 2번째 목요일을 계산해 낸다. cpFlag = LeftStr(SymbolName,2); // 콜,풋 구분. 종목명에서 추출 } If p > 0 then { T = (DateToJulian(만기일3단계) - DateToJulian(Date) + 1)/365; r = CD91Rate(Date)/100; ImVol = _ImVol(IFF(cpFlag=="콜",1,2), S, X, T, r, p); Value1 = _OptionGreeks(IFF(cpFlag=="콜",1,2),S,X,T,r,역사적변동성/100,BS,Delta,Gamma,Theta,Vega,Rho); If Value1 == 1 Then { Plot1(BS,"이론가"); Plot2(ImVol*100,"내재변동성"); Plot3(Delta,"델타"); Plot4(Gamma,"감마"); Plot5(Theta,"쎄타"); Plot6(Vega,"베가"); Plot7(Rho,"로"); } } } //두번째식 //(01두민감도평균) Input:역사적변동성(11.4); var : exit(0),C1(0),C2(0),C3(0); Var: cpFlag2(""),X2(0),T2(0),r2(0),BS2(0),j2(0), ImVol2(0),Delta2(0),Gamma2(0),Vega2(0),Theta2(0),Rho2(0), 만기일1단계2(0),만기일2단계2(0),만기일3단계2(0); Var: cpFlag3(""),X3(0),T3(0),r3(0),BS3(0),j3(0), ImVol3(0),Delta3(0),Gamma3(0),Vega3(0),Theta3(0),Rho3(0), 만기일1단계3(0),만기일2단계3(0),만기일3단계3(0); #================================================# C1 = Data1(C); //기초자산이 보조차트가 되어야 한다. C2 = data2(C); //옵션가격, 옵션종목을 기본차트로 띄워놓아야 한다. C3 = data3(c); If Data1(SymbolName) <> "KP200 종합" Then { Alert("Data1이 KP200 종합이 아닙니다."); exit = 1; } If data2(CodeCategory) <> 6 Then { Alert("Data2가 옵션종목이 아닙니다."); exit = 1; } If data3(CodeCategory) <> 6 Then { Alert("Data3이 옵션종목이 아닙니다."); exit = 1; } If exit == 0 Then { If CurrentBar == 1 Then { // SymbolName : 콜1801월 327.5kp (한글은 2자리로 계산) X2 = StrToNum(MidStr(data2(SymbolName),10,5)); // 행사가격, 종목명에서 추출 만기일1단계2 = 20000000 + StrToNum(MidStr(data2(SymbolName),3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계2 = DayOfWeek(만기일1단계2); // 만기월의 8일의 요일 값 만기일3단계2 = 만기일1단계2 + (Iff(만기일2단계2 > 4, 11, 4) - 만기일2단계2); // 2번째 목요일을 계산해 낸다. cpFlag2 = LeftStr(data2(SymbolName),2); // 콜,풋 구분. 종목명에서 추출 X3 = StrToNum(MidStr(data3(SymbolName),10,5)); // 행사가격, 종목명에서 추출 만기일1단계3 = 20000000 + StrToNum(MidStr(data3(SymbolName),3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계3 = DayOfWeek(만기일1단계3); // 만기월의 8일의 요일 값 만기일3단계3 = 만기일1단계3 + (Iff(만기일2단계3 > 4, 11, 4) - 만기일2단계3); // 2번째 목요일을 계산해 낸다. cpFlag3 = LeftStr(data3(SymbolName),2); // 콜,풋 구분. 종목명에서 추출 } If C2 > 0 then { T2 = (DateToJulian(만기일3단계2) - DateToJulian(Date) + 1)/365; r2 = data2(CD91Rate(Date)/100); ImVol2 = data2(_ImVol(IFF(cpFlag2=="콜",1,2), C1, X2, T2, r2, C2)); Value1 = data2(_OptionGreeks(IFF(cpFlag2=="콜",1,2),C1,X2,T2,r2,역사적변동성/100,BS2,Delta2,Gamma2,Theta2,Vega2,Rho2)); } If C3 > 0 then { T3 = (DateToJulian(만기일3단계3) - DateToJulian(Date) + 1)/365; r3 = data3(CD91Rate(Date)/100); ImVol3 = data3(_ImVol(IFF(cpFlag3=="풋",1,2), C1, X3, T3, r3, C3)); Value2 = data3(_OptionGreeks(IFF(cpFlag3=="풋",1,2),C1,X3,T3,r3,역사적변동성/100,BS3,Delta3,Gamma3,Theta3,Vega3,Rho3)); } If Value1 == 1 and value2 == 2 Then { Plot1((BS2+BS3)/2,"이론가"); Plot2((ImVol2*100 +ImVol3*100)/2,"내재변동성"); Plot3((Delta2+Delta3)/2,"델타"); Plot4((Gamma2+Gamma3)/2,"감마"); Plot5((Theta2+Theta3)/2,"쎄타"); Plot6((Vega2+Vega3)/2,"베가"); Plot7((Rho2+Rho3)/2,"로"); } }
프로필 이미지
leekss1
2018-01-02
316
글번호 115402
지표
답변완료

지표질문드립니다

앤드류 피치포크를 수식으로 사용하고싶은데 기본수식을 좀 알수있을까요?
프로필 이미지
빙글이
2018-01-02
169
글번호 115394
지표

초록사이다 님에 의해서 삭제되었습니다.

프로필 이미지
초록사이다
2018-01-02
20
글번호 115382
지표
답변완료

조검검색식 문의

파라볼릭 지표가 하락에서 상승으로 전환한 종목을 찾는 방법을 알려주세요
프로필 이미지
파워
2018-01-01
184
글번호 115381
종목검색
답변완료

내장변수 초기화시점

아래는 답변해 주셧던 내용인데요. 1. var와 CurrentContracts와 같은 내장변수는 전략실행 정지후에도 유지되나요? 예스트레이더 재실행에도 값이 유지되나요? 만약 날라간다면 아래코드는 사용못하죠? var와 CurrntCorntracts값이 서버에 저장되나요? 2. 사용자변수는 당연히 전략실행을 중지하면 날라가죠? ------------ 아래 ------------- // 가장최근 매매가 매도1회면 추세율에 0.1 // 가장최근 매매가 매도2회면 추세율에 0.2 // 가장최근 매매가 매도3회면 추세율에 0.2 #추세율 = ????? if CurrentContracts > CurrentContracts[1] Then{ T = 1; var1 = var1+1; var2 = 0; if var1 == 1 Then 추세율 = 0.1; if var1 == 2 Then 추세율 = 0.2; if var1 >= 3 Then 추세율 = 0.3; }
프로필 이미지
모루
2018-01-02
261
글번호 115379
시스템
답변완료

주식계좌와 선물계좌가 동시에 운영 가능한가요?

하이투자증권 이용하고 있고요. 예스 트레이더 켜서 주식 종목에 대한 전략실행차트를 실행해두고, 동시세 선물 종목에 대한 전략실행차트를 실행해두면, 알아서 주식 종목은 주식계좌에 있는 돈으로 거래를 하고, 선물 종목은 선물계좌에 있는 돈으로 거래를 하는건가요? 아니면 다른 설정이 필요한가요? 감사합니다. 새해 복 많이 받으세요!!
프로필 이미지
중박주식
2018-01-02
172
글번호 115377
시스템
답변완료

문의드립니다.

도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 손익비는 떨어 뜨리지만 승률은 떨어 뜨리지 않으면서 피라미딩을 하려고 하는데요. 그러러면 -(진입포지션 - 스탑지점)의 수익금(혹은 수익률)이 -2차 포지션의 손실금(2차 진입지점-스탑지점) + 설정 슬리피지(1틱)+수수료(0.004) +최소수익으로 설정해놓은 금액(2틱) 보다는 커야 할 듯 합니다. -3차로 들어가려면 1차 2차까지 들어간 진입 포지션의 수익금이 -3차 진입포지션의 손실금(3차 진입지점-스탑지점)+설정 슬리피지(1틱)+수수료(0.004)+최소수익보다는 커야할 것이고 나머지 4차 5차도 같은 방식이어야 할 듯 합니다. 이걸 어떤 방식으로 구현할 수 있을까요? 청산지점은 아래 청산 수식을 쓰려고 합니다. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 2. 기타 외부변수 진입금액, 제한 금액 -진입 전봉보다 0.5틱 더 크면 진입금액만큼 매수 진입(ATSTOP) -전봉이 수익이면 진입수량*2 추가 -'' 손실이면 진입금액으로 돌아감 -진입금액은 제한금액이상으로 늘리지는 않음. 3. 아래와 같이 buysetup으로 고가 저장을 한 뒤 돌파로 수식을 짤 때 buysetup이 된 다음봉 이상 에서만(buysetup봉에서는 진입하지 않도록) 진입이 되도록 하려면 어떻게 고쳐야 하나요. 어느 부분을 고친건지 간단한 주석 부탁드립니다. Inputs: rt(0.6),틱수(10); var : ChUp(0), ChDn(0); var : buybase(0),buysetup(false),Buyindex(0); var : Sellbase(0),Sellsetup(false),Sellindex(0); ChUp = dayopen + ((dayhigh(1) - daylow(1)) * rt); ChDn = dayopen - ((dayhigh(1) - daylow(1)) * rt); If crossup (Close, ChUp) then{ buysetup = true; buybase = H; Buyindex = index; } if C < CHDn Then buySetup = false; If crossdown (Close, ChDn) then{ Sellsetup = true; Sellbase = L; Sellindex = index; } if C > CHup Then SellSetup = false; if buysetup == true and MarketPosition == 0 then{ buy("매수",AtStop,buybase+PriceScale*틱수); } if Sellsetup == true and MarketPosition == 0 then{ sell("매도",AtStop,Sellbase-PriceScale*틱수); } } 4. 기타 답변해주신 것 듣고 시뮬레이션은 아래 식으로만 하는 중인데요. 이제 시뮬레이션 결과가 좋아서 실전에서 같은 봉에서도 발생할 수 있도록 하게 하려면 아래 수식을 어떻게 바꾸어야 하는지요. input: TsValue(1); var: Hvalue(0),Lvalue(0); If MarketPosition() == 1 Then { Hvalue = Highest(H,BarsSinceEntry+1); ExitLong("trailstop_EL", Atstop, Hvalue-TsValue*PriceScale); } If MarketPosition() == -1 Then { Lvalue = Lowest(L,BarsSinceEntry+1); ExitShort("trailStop_Es", Atstop, Lvalue + TsValue*PriceScale); } 5. 전에 짜주신 일정봉 지나서 손익라인 닿으면 즉시 청산 식인데요. 이걸 일정봉 지난 뒤 손익분기라인 아래(매수면 아래 매도면 위) 있으면 즉시 청산으로 수정 부탁드립니다. 혹시 이미 포함돼 있는 건가요? input : 최소기다리는봉(10),슬리피지틱수(1),수수료율(0.01); if MarketPosition == 1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice+PriceScale*슬리피지틱수+EntryPrice*(수수료율/100); if NextBarOpen <= var1 Then exitlong("bx1",AtLimit,var1); Else exitlong("bx2",AtStop,var1); } if MarketPosition == -1 and BarsSinceEntry >= 최소기다리는봉 Then{ var1 = EntryPrice-PriceScale*슬리피지틱수-EntryPrice*(수수료율/100); if NextBarOpen >= var1 Then ExitShort("sx1",AtLimit,var1); Else ExitShort("sx2",AtStop,var1); }
프로필 이미지
잡다백수
2018-01-03
206
글번호 115376
시스템
답변완료

수식 부탁드립니다

일봉 기준 며칠전의 며칠을 input : N(며칠) 로하고 그 며칠전에 검색식의 점을 Plot하는 수식 부탁드립니다. 조건검색식 아닙니다.
프로필 이미지
월척
2018-01-02
179
글번호 115375
검색