커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

잔고함수 사용

안녕하세요. 매수매도 체결과 관련하여 잔고함수를 써서 시스템 신호가 실제 체결되는지 감시하고 체결되지 않으면 취소시키고 싶습니다. 호가를 무조건 늘리기도 그렇고 신호 가격으로 매수하되 매수가 안되면 주문을 취소하여 나중에 체결되어 손실이 나는 것을 방지하고 싶습니다. 또한 주문신호가 체결안되면 청산 신호도 발생하지 않도록 하고 싶습니다.
프로필 이미지
후따오
2021-08-11
1039
글번호 151428
시스템

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

프로필 이미지
심홍
2021-08-11
379
글번호 151427
검색
답변완료

문의드립니다수식을

종목검색과 신호수식을 부탁드립니다. >>>> 월봉기준으로 1.MACD(7,17,5) 오실레이터가 0보다크고,MACD선이 우상향이면서 시그널선보다 위에 있으면서 2. B=V*((C+L)/(H+L)); S=V*((C+H)/(H+L)); VF=if(C>O,B,if(C<O,-S,0)); A=SUM(VF,7)/SUM(V,7); A가 0보다 커야한다 3. 1번조건 발생일로부터 3봉이내에 DMI(9) PLUS가 ADX를 상향돌파한 횟수가 1회이상 있어야 한다. 상향돌파전 DMI PLUS는 30이하이어야 하고, ADX는 상향추세여야 한다 4. BWI(18,2)는 상향추세이어야 하고, 5. 스토캐스틱(12,5,5) 슬로우 %K는 %D보다 위에 있으면서 우상향이어야 한다 6. 양봉이어야한다(시가<종가) 상기조건을 만족하면서 일봉기준으로 1. 양봉이고, MACD오실레이터(12,26,9)는 0보다 크고, MACD가 시그널선위이면서 우상향 해야한다 월봉기준으로 1~6까지 만족하면서 일봉기준상 1도 만족할때의 종목검색식과 신호식을 알려주시기 바랍니다. >>>> 일봉기준으로 1.MACD(12,26,9) 오실레이터가 0보다크고,MACD선이 우상향이면서 시그널선보다 위에 있으면서 2. B=V*((C+L)/(H+L)); S=V*((C+H)/(H+L)); VF=if(C>O,B,if(C<O,-S,0)); A=SUM(VF,9)/SUM(V,9); A가 0보다 커야한다 3. 1번조건 발생일로부터 3봉이내에 DMI(11) PLUS가 ADX를 상향돌파한 횟수가 1회이상 있어야 한다. 상향돌파전 DMI PLUS는 30이하이어야 하고, ADX는 상향추세여야 한다 4. BWI(18,2)는 상향추세이어야 하고, 5. 스토캐스틱(12,5,5) 슬로우 %K는 %D보다 위에 있으면서 우상향이어야 한다 6. 양봉이어야한다(시가<종가) 상기조건을 만족하면서 월봉기준으로 1. 양봉이고, MACD오실레이터(7,17,5)는 0보다 크고, MACD가 시그널선위이면서 우상향 해야한다 일봉기준으로 1~6까지 만족하면서 월봉기준상 1도 만족할때의 종목검색식과 신호식을 알려주시기 바랍니다.
프로필 이미지
해피오
2021-08-11
1295
글번호 151426
검색
답변완료

부탁드립니다

$,안녕하세요 #첨부한그림파일처럼 일목균형표에서 현재봉 이후에있는(이전은 제외) 선행스팬1의 고점과 저점라인2개를(그림,검정화살표의 연두색실선)Y축까지 그리기하되 고,저점갱신 에따라 수평선도 자동으로 변화되어 표시되게 하고싶습니다,이때 수평선라인 시작은 현재봉 제외하고 이전30개봉부터시작해서 Y축까지 그리기하면 좋겠습니다. $,도움부탁드립니다.
프로필 이미지
크라켄
2021-08-11
1668
글번호 151425
지표
답변완료

전환선 선행스팬1.2 골든데드수식좀 알려주세요

전환선이 선행스팬1 골든 데드 크로스 수식좀 알려주세욧 선행스팬2 골든 데드 크로스 수식좀 알려주세욧
프로필 이미지
신평이도령
2021-08-10
1422
글번호 151424
시스템
답변완료

지표

안녕하세요 에리카입니다 항상감사합니다. 항셍 만기 지표 문의 만기표시 조건안될까요 1] 2] 3] 매달말일부터~다음달 말일이전까지까지 시고저중종표시 1]2]3]항 모두 월초이전거래일 지표문의 입니다 강조에서는 월초표시했는데 월말은 표시 안되나요? 일봉에서표시되면 될것같아요?
프로필 이미지
회원
2021-08-10
1041
글번호 151423
지표
답변완료

시스템식 부탁드립니다.

조건1: 당일 고가대비 -200틱하락시(당일 매수로만 대응) 당일 저가대비 +200틱상승시(당일 매도로만 대응) 조건2(매수조건만족시): 고가대비 -200틱(1차매수,1) 고가대비 -300틱(2차매수,1) 익절라인 : 1차매수라인의 + 120틱 수익시(1차매수조건만족, 2차매수까지 조건만족, 상관없이 수익시 매매종료) 손절라인 : 1차매수라인의 - 200틱 손실시(매매종료)------즉, 고가대비-400틱 조건3(매도조건만족시): 저가대비 +200틱(1차매도,1) 저가대비 +300틱(2차매도,1) 익절라인 : 1차매도라인의 + 120틱 수익시(1차매도조건만족, 2차매도까지 조건만족, 상관없이 수익시 매매종료) 손절라인 : 1차매도라인의 - 200틱 손실시(매매종료)------즉, 저가대비+400틱
프로필 이미지
신나는파파
2021-08-10
1211
글번호 151422
시스템
답변완료

수식문의합니다~~

안녕하세요~ 당초수식을 변경수식으로 바꾸어도 돠는지요? 당초수식(7월30일 답변내용입니다) if Bdate != Bdate[1] Then { Tcond = true; } if (sdate != sdate[1] and stime >= 200000) or (sdate == sdate[1] and stime >= 200000 and stime[1] < 200000) Then Tcond = False; if Tcond == true Then { 진입청산수식 } 변경수식 if Bdate != Bdate[1] Then Tcond = true; if Sdate == 200000 Then Tcond = False; if Tcond == true Then { 진입청산수식 }
프로필 이미지
코퍼
2021-08-10
1672
글번호 151421
시스템
답변완료

[재질문드립니다2]BASIS 차트

안녕하세요 번번히 죄송합니다. 아래 답변과 같이 고쳤는데도 전혀 무관한 수치가 찍히고있네요ㅜㅜ (우선 콘탱고 부분만 PLOT으로 찍어보고 있습니다) 검증은 plot1(C-data2(C),"베이시스"); PlotBaseLine1(0); 이렇게 지표를 따로 만들어서 하나하나 계산해보고있습니다. <<<<<<<<<<<<<<<<<<<<<<<<<<<답변>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 안녕하세요 예스스탁입니다. 해당 수식에서 if BASIS > 0 Then 내용은 불필요합니다. 해당 내용을 (data1(dayclose(cnt))-data2(CloseD(cnt))) > 0 로 대체하시면 됩니다. Var : cnt(0); var : 콘탱고BS합(0), 콘탱고BS갯수(0), 콘탱고BS평균(0); var : 백워데이션BS합(0), 백워데이션BS갯수(0), 백워데이션BS평균(0); Input : 기간(3); 콘탱고BS합 = 0; 콘탱고BS평균 = 0; 콘탱고BS갯수 = 0; 백워데이션BS합 = 0; 백워데이션BS평균 = 0; 백워데이션BS갯수 = 0; For cnt = 0 to 기간-1 //설정 기간동안 for문 돌림 (input에 3입력하면 0부터 포문이 돌기때문에 4가 됨. 그래서 -1해줌) { if (data1(dayclose(cnt))-data2(CloseD(cnt))) > 0 Then // 베이시스가 0 초과면 (콘탱고가 나오면) { 콘탱고BS합 = 콘탱고BS합 + (data1(dayclose(cnt))-data2(CloseD(cnt))); // 기간 내 콘탱고 수치를 누적해줌 콘탱고BS갯수 = 콘탱고BS갯수 +1; // 기간 내 콘탱고 횟수 카운트 콘탱고BS평균 = 콘탱고BS합/콘탱고BS갯수; // 기간 내 콘탱고 평균 } Else { 백워데이션BS합 = 백워데이션BS합 + (data1(dayclose(cnt))-data2(CloseD(cnt))); // 기간 내 백워데이션 수치를 누적해줌 백워데이션BS갯수 = 백워데이션BS갯수 +1; // 기간 내 백워데이션 횟수 카운트 백워데이션BS평균 = 백워데이션BS합/백워데이션BS갯수; // 기간 내 백워데이션 평균 } } Plot1(콘탱고BS합,"콘탱고BS합"); plot2(콘탱고BS갯수, "콘탱고BS갯수"); plot3(콘탱고BS평균, "콘탱고BS평균"); Plot4(백워데이션BS합,"백워데이션BS합"); Plot5(백워데이션BS갯수,"백워데이션BS합"); Plot6(백워데이션BS평균,"백워데이션BS합"); 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : [재질문드립니다]BASIS 차트 > 아래와같이 답변을 받아서 수정해보았는데도 아직 제대로 구현이 안되고있습니다. // 3일 동안, 베이시스 0 초과하는 날만의 평균 // 3일 동안, 베이시스 0 미만하는 날만의 평균 이렇게 만들려고 하는데 답변해주신대로 돌려봐도 잘 안되고 있습니다. 똑같은 논리로 3일간의 양봉, 음봉 숫자, 평균을 구하는건 잘 됐습니다. 답변해주신 수식도 아래의 예시와 같이 정정 부탁드립니다ㅜㅜ 감사합니다! <<<<<<<<<<<<<<<<<<<( 예시 )양봉 음봉 3일간 종가 평균, 횟수>>>>>>>>>>>>>>>>>>>> Var : cnt(0); var : 양봉합(0), 양봉갯수(0), 양봉평균(0); var : 음봉합(0), 음봉갯수(0), 음봉평균(0); var : 기간(3); 양봉합 = 0; 양봉평균 = 0; 양봉갯수 = 0; 음봉합 = 0; 음봉평균 = 0; 음봉갯수 = 0; For cnt = 0 to 기간 - 1 // 0부터 for문 돌리니까 3일을 기준으로 하고싶으면 input에 3을 넣고, 여기서 -1을 해줌 if DayClose(cnt) > DayOpen(cnt) Then { 양봉합 = 양봉합 + DayClose(cnt); 양봉갯수 = 양봉갯수 +1; 양봉평균 = 양봉합/양봉갯수; } Else { 음봉합 = 음봉합 + DayClose(cnt); 음봉갯수 = 음봉갯수 +1; 음봉평균 = 음봉합/음봉갯수; } Plot1(양봉합,"양봉합"); plot2(양봉갯수, "양봉갯수"); plot3(양봉평균, "양봉평균"); //Plot2(음봉합[0],"음봉합"); <<<<<<<<<<<<<<<<답변수식 정정 부탁드립니다.>>>>>>>>>>>>>>> DayClose,dayhigh,daylow,dayopen 함수는 기본차트 값만 리턴하는 함수입니다. 참조데이타에서는 closed,highd,lowD,openD함수를 이용하셔야 합니다. Var : cnt(0); var : 콘탱고BS합(0), 콘탱고BS갯수(0), 콘탱고BS평균(0); var : 백워데이션BS합(0), 백워데이션BS갯수(0), 백워데이션BS평균(0); Var : BASIS(0); Input : 기간(3); 콘탱고BS합 = 0; 콘탱고BS평균 = 0; 콘탱고BS갯수 = 0; 백워데이션BS합 = 0; 백워데이션BS평균 = 0; 백워데이션BS갯수 = 0; BASIS = C-data2(C); For cnt = 0 to 기간-1 //설정 기간동안 for문 돌림 (input에 3입력하면 0부터 포문이 돌기때문에 4가 됨. 그래서 -1해줌) { if BASIS > 0 Then // 베이시스가 0 초과면 (콘탱고가 나오면) { 콘탱고BS합 = 콘탱고BS합 + (data1(dayclose(cnt))-data2(CloseD(cnt))); // 기간 내 콘탱고 수치를 누적해줌 콘탱고BS갯수 = 콘탱고BS갯수 +1; // 기간 내 콘탱고 횟수 카운트 콘탱고BS평균 = 콘탱고BS합/콘탱고BS갯수; // 기간 내 콘탱고 평균 } Else { 백워데이션BS합 = 백워데이션BS합 + (data1(dayclose(cnt))-data2(CloseD(cnt))); // 기간 내 백워데이션 수치를 누적해줌 백워데이션BS갯수 = 백워데이션BS갯수 +1; // 기간 내 백워데이션 횟수 카운트 백워데이션BS평균 = 백워데이션BS합/백워데이션BS갯수; // 기간 내 백워데이션 평균 } } Plot1(콘탱고BS합,"콘탱고BS합"); plot2(콘탱고BS갯수, "콘탱고BS갯수"); plot3(콘탱고BS평균, "콘탱고BS평균"); //Plot4(백워데이션BS합,"백워데이션BS합"); 즐거운 하루되세요 > 퀀트드래곤 님이 쓴 글입니다. > 제목 : 특정일간의 베이시스 참조 지표 > // 베이시스의 평균을 표시해주는 차트를 만들었는데 잘 안되네요. // 3일 동안, 베이시스 0 초과하는 날만의 평균 // 3일 동안, 베이시스 0 미만하는 날만의 평균 // 수식은 아래와 같습니다. // 논리는 맞는거같은데 문법이 틀린거같아요. 데이터를 불러오지 못하네요. // 특히 "콘탱고BS합"에 데이터2의 전일자(혹은 이전 봉들)의 데이터를 포문으로도 못 불러오는거같아요. // 정정 부탁드립니다. Var : cnt(0); var : 콘탱고BS합(0), 콘탱고BS갯수(0), 콘탱고BS평균(0); var : 백워데이션BS합(0), 백워데이션BS갯수(0), 백워데이션BS평균(0); Var : BASIS(0); Input : 기간(3); 콘탱고BS합 = 0; 콘탱고BS평균 = 0; 콘탱고BS갯수 = 0; 백워데이션BS합 = 0; 백워데이션BS평균 = 0; 백워데이션BS갯수 = 0; BASIS = C-data2(C); For cnt = 0 to 기간-1 //설정 기간동안 for문 돌림 (input에 3입력하면 0부터 포문이 돌기때문에 4가 됨. 그래서 -1해줌) if BASIS > 0 Then // 베이시스가 0 초과면 (콘탱고가 나오면) { 콘탱고BS합 = 콘탱고BS합 + (data1(dayclose(cnt))-data2(DayClose(cnt))); // 기간 내 콘탱고 수치를 누적해줌 콘탱고BS갯수 = 콘탱고BS갯수 +1; // 기간 내 콘탱고 횟수 카운트 콘탱고BS평균 = 콘탱고BS합/콘탱고BS갯수; // 기간 내 콘탱고 평균 } Else { 백워데이션BS합 = 백워데이션BS합 + (data1(dayclose(cnt))-data2(DayClose(cnt))); // 기간 내 백워데이션 수치를 누적해줌 백워데이션BS갯수 = 백워데이션BS갯수 +1; // 기간 내 백워데이션 횟수 카운트 백워데이션BS평균 = 백워데이션BS합/백워데이션BS갯수; // 기간 내 백워데이션 평균 } Plot1(콘탱고BS합,"콘탱고BS합"); plot2(콘탱고BS갯수, "콘탱고BS갯수"); plot3(콘탱고BS평균, "콘탱고BS평균"); //Plot4(백워데이션BS합,"백워데이션BS합");
프로필 이미지
퀀트드래곤
2021-08-10
1575
글번호 151420
지표