커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

분할진입 문의

안녕하세요? 항상 빠르고 정확한 답변에 감사드립니다. 분할진입식을 작성하던중 작동이 이상하여 점검 부탁드립니다. 먼저 제가 작성해본 로직 첨부합니다. ====================== input : 수량(100); var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); if date != date[1] Then{ count = 0; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } ##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트 if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{ count = count+1; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } #진입 if Count < 3 Then{ If bcond3 == 0 and MarketPosition() == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate and crossup(ma(c,5),ma(c,20)) then { Buy("a2",Atmarket,def,수량*0.4); Bcond3 = 1; } If bcond3 == 1 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then { Buy("a2-1",AtSTOP,entryprice*1.1,수량*0.3); Bcond3 = 2; } If bcond3 == 2 and MarketPosition() == 1 and stime >= 090000 And stime < 143000 then { Buy("a2-2",AtSTOP,entryprice*1.2,수량*0.3); Bcond3 = 3; } } #청산 if MarketPosition==1 and crossdown(ma(c,5),ma(c,20)) Then ExitLong("c",atmarket); SetStopEndofday(150400); ============================== 위식을 적용하면서 기본설정에서 피라미딩은 모든진호 진입허용에 체크하였습니다. 첨부된 그림을 보시면 a2 진입(진입가격1.0임)후 1 표시부분에서 분할진입이 발생해야하나 발생하지 않는것을 보실수 있습니다. 제가 다른것을 테스트 해보았더니 진입봉 다음봉에서 분할진입조건을 충족하면 분할진입이 되는것을 발견할수 있었습니다. 그리고 2부분에서는 2차 진입이 발생하여야하나 그렇지 못하고 있습니다. 요청사항. (1)1부분에서 분할진입이 실행되도록 로직의 부족한부분 수정부탁드립니다. (2)2부분에서 2차 진입이 발생하도록 로직의 부족한 부분 수정부탁드립니다. ====================== 미리 감사드립니다.
프로필 이미지
송아지
2008-08-15
1030
글번호 16686
시스템
답변완료

문법 오류로 다시한번 더 올립니다.

&&iffna :선언되지 않은 이름 'iffna'이(가) 사용되었습니다. -lowest(L-(OpenD(0)-CloseD(0)), Period)) :문법, 에러 잘못된 토큰:')', 올수있는것:';' Formula1 = ema(C - (OpenD(0)-CloseD(0)), period3)-ema(C[1], period3)/ : 연산자 앞뒤 두 데이터의 형태가 같아야 합니다. Formula2 = ema(C - (OpenD(0)-CloseD(0)), period3)-ema(C[1], period3)/ : 연산자 앞뒤 두 데이터의 형태가 같아야 합니다. &&iff(OpenD(0)>=CloseD(0), ema((C-(OpenD(0)-CloseD(0)Formula1 = ema(C - (OpenD(0)-CloseD(0)), period3)-ema(C[1], period)/) :문법, 에러 잘못된 토큰 :'Name', 올수 있는 것:')' 이렇게 오류가 뜹니다... 그래서 오류난 문법 4개를 수정해주세요. 그리고 수정된 문법을 제 메일로 보내주세요. 메일:hyun3588@hanafos.com
프로필 이미지
성공예견
2008-08-14
1015
글번호 16683
시스템
답변완료

분할진입식 재질문

답변감사드립니다. 보내주신것으로 만들어보니 잘 작동이 안되서요.아래 비콘드2-5는 제가 추가한 것입니다. ============ var : count(0),bcond1(0),Bcond2(0),Bcond3(0),Bcond4(0),Bcond5(0); if date != date[1] Then{ count = 0; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } ##현재는 포지션이 없고 전봉에는 포지션이 있었을때 1씩 카운트 if MarketPosition() == 0 and MarketPosition()[1] != 0 Then{ count = count+1; Bcond1 = 0; Bcond2 = 0; Bcond3 = 0; Bcond4 = 0; Bcond5 = 0; } #1.진입 if Count < 2 and Bcond1 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond1 == 0 and stime == 090000 Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,20)) and (var10>0 and var20>0) and c>=ma(c,5) then { Buy("a",Atmarket,def,var2*0.4); Bcond1 = 1; } } If bcond1==1 and stime >= 090000 Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-1",Atmarket,def,var2*0.3); Bcond1 = 2; } } If bcond1==2 and stime >= 090000 Then { If c > entryprice*1.13 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a-2",Atmarket,def,var2*0.3); Bcond1 = 3; } } } if Count < 2 and Bcond3 < 3 Then{ //당일 2회까지 진입, a2-> a2-1 --> a2-2 순서로 3번 분할진입 If bcond3 == 0 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If MarketPosition() == 0 and crossup(ma(c,5),ma(c,60)) and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2",Atmarket,def,var2*0.4); Bcond3 = 1; } } If bcond3==1 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-1",Atmarket,def,var2*0.3); Bcond3 = 2; } } If bcond3==2 and stime >= 090000 And stime < 093000 and sdate==currentdate Then { If c > entryprice*1.15 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-2",Atmarket,def,var2*0.3); Bcond3 = 3; } } } ================ 미리감사드립니다.
프로필 이미지
송아지
2008-08-14
823
글번호 16682
시스템
답변완료

분할진입식 문의

안녕하세요? 분할진입식 부탁드립니다. 제가 작성해본것인데 잘 안되서요. =========== If count < 1 and bcond1<1 and stime >= 090000 and sdate==currentdate Then { If crossup(ma(c,5),ma(c,20)) and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2",Atmarket,def,var2*0.4); Bcond1 = 1; }} If count < 1 and bcond1==1 and stime >= 090000 and sdate==currentdate Then { If c > entryprice*1.1 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-1",Atmarket,def,var2*0.3); Bcond1 = 2; }} If count < 1 and bcond1==2 and stime >= 090000 and sdate==currentdate Then { If c > entryprice*1.15 and (var10>0 and var20>0 and var10[1]>0 and var20[1]>0) and c>=ma(c,5) then { Buy("a2-2",Atmarket,def,var2*0.3); Bcond1 = 3; }} ================ 1.count < 1 는 하루 진입횟수를 2회로 제한하기 위해 사용하는것입니다. 분할진입의 경우 분할진입횟수카운트는 어케되는지요.분할진입으로 인한 진입은 전체진입횟수에서 1회로 카운트 해주셨으면 합니다. 2.분할진입은 위 로직처럼 5-20이평크로스되면 진입을 기본으로 하여 진입후 가격이 진입가격보다 10%상승하면 2차진입하며 15%상승하면 3차 진입합니다. 3.진입수량은 첫 진입에서 40%, 2차 진입에서 30%, 3차 진입에서 30%입니다. 4.진입수량은 특정수량으로 정해저 있는 것이 아니라 자본에 의해 연동되는 구조 입니다. 즉 (투자자금/진입가격=진입수량) 형식입니다. 미리 감사드립니다.
프로필 이미지
송아지
2008-08-14
813
글번호 16680
시스템
답변완료

수식 만들기 질문입니다

안녕하세요. 아래 질문한것과 연관되어있는 것인데요. 제가 구하고자 하는것은 거래대금/거래량을 하면 나오는 수치를 구하고 싶은 것입니다. 그런데 거래대금이 백만단위 이하가 절삭되어 나오기때문에 수식에 집어넣고 수치를 구하면 실제 제가 원하는 수치와 산출된 수치가 틀리게 나오는데요. 거래대금의 백만단위 이하를 포함한 총 수치를 사용하거나 혹은 위와같은 지표를 따로 만들수는 없습니까? 부탁드립니다.
프로필 이미지
회원
2008-08-14
1037
글번호 16677
지표
답변완료

거래대금 질문입니다

안녕하세요. YES트레이더도 거래대금을 백만단위까지만 지원하는것 같은데 그 이하로는 지원하지 않나요? 천단위나 1단위 이런식으로요. 다른 HTS에서는 지원하지 않아서 혹시 여기서는 되나 했는데 안되네요. 모든 증권사가 거래대금을 백만단위 이하는 절삭하기로 되어있는건가요? 대신증권 같은곳은 1단위까지도 보여주기는 하는데 백만단위 이하는 다 0으로 나와서 아무 의미가 없더군요. 왜 거래대금은 백만단위 이하는 없애버리는건지 궁금합니다... 그 아래 단위를 지원해주실수는 없는지 아니면 수식으로 백만단위 이하도 볼 수 있게 만들수 있는지 궁금합니다. 수고하세요.
프로필 이미지
회원
2008-08-14
1082
글번호 16676
지표

묵향123 님에 의해서 삭제되었습니다.

프로필 이미지
묵향123
2008-08-14
156
글번호 16669
시스템
답변완료

문의 드립니다.

안녕하세요 문의드립니다. 현재시간에서 30분전까지의 최고가,최저가를 구하고 싶습니다. 아래처럼 하면 될거 같은데 안됩니다. var : time1(0),time2(0); time1 = stime-30000; time2 = Stime-100; var1 = TimeHigh(time1,time2); var2 = Timelow(time1,time2); plot1(var1); plot2(var2);
프로필 이미지
캐빈이야
2008-08-14
724
글번호 16668
지표
답변완료

수고하십니다

수고하십니다 더위가 많이 식었습네요 언제나 노고 감사드립니다 참조종목을 5분으로 넣고 주종목을 1초로 넣어서 A라는 종목의 5분봉의 예를 들어서 10:5:00 의 시작한 참조종목 A종목의 5분봉의 시가를 기준으로 주종목 1초봉의 종가가 참조종목 5분봉의 시가보다 같거나 위면 매수신호 1초봉의 종가가 참조종목 5분봉의 시가보다 아래면 매도신호 여기서 상향돌파 하향돌파가 아니라 위 아래 입니다 cf, 주종목 참조종목 지표를 넣으면 주종목 지표밖에 나오지 않네요 참조종목의 지표도 삽입하는 방법이 없을까요? 차트 툴바에 cyclezone기능도 좀 넣어 주십쇼 대신의 차트툴바에 있는 기능인데 예를 들면 5분봉에서 cyclezone을 5개로 설정하면 봉 5개 마다 세로로 선을 그어 주는 기능 입니다 이 기능 꼭 좀 부탁 드립니다 1초봉이 1분에 60개 60분에 360개 6시간이면 2160개인데 고작 13시 이후 부터 나오는 이유는 무엇인가요?? 이거하곤 상관 없이 전에도 몇번 건의 드렸지만 시스템차트에서 봉 5000개 좀 늘려 주십쇼 메일로 좀 부탁 드립니다 cosric@naver.com
프로필 이미지
백스톰
2008-08-14
716
글번호 16667
시스템