커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

재문의

아래와 같이 답변 받았습니다. 감사합니다. 한가지 추가식이 필요합니다. 투입금액이 고정되어 있으면 수익이 날때, 손실이 날때 예수금의 변화를 반영을 못합니다. 그러면 결국 시간이 지남에 따라 수익이 났을땐 진입비중이 작아지고 손실이 났을땐 두차례밖에 진입이 이뤄지지 않을수도 있겠네요~ 요점은, 수익 손실에 의한 예수금(혹은 매수가능금액 혹은 가원장?)의 변화를 포지션 진입 시점에 맞게 반영해 1/3씩 진입했으면 합니다. 감사합니다 ------------------------------------------ 안녕하세요 예스스탁입니다. input : 투입금액(10000000); var : entryvol(0); if CodeCategory == 1 Then{ #코스피 if BasePrice < 50000 Then{ entryvol = int(int((투입금액*(1/3))/C)/10)*10; } Else{ entryvol = int((투입금액*(1/3))/C); } } if CodeCategory == 2 Then{#코스닥 entryvol = int((투입금액*(1/3))/C); if CurrentEntries < 3 Then{ if 매수조건1 Then buy("b1",OnClose,def,entryvol); if 매수조건2 Then buy("b2",OnClose,def,entryvol); if 매수조건3 Then buy("b3",OnClose,def,entryvol); if 매수조건4 Then buy("b4",OnClose,def,entryvol); } if CurrentEntries < 3 Then{ if 매도조건1 Then Sell("s1",OnClose,def,entryvol); if 매도조건2 Then Sell("s2",OnClose,def,entryvol); if 매도조건3 Then Sell("s3",OnClose,def,entryvol); if 매도조건4 Then Sell("s4",OnClose,def,entryvol); } 포지션의 총 누적진입이 3차례까지만 되는 식입니다. 각 진입명으로 한번씩만 진입해 총 3회까지 진입하고자 하시면 피라미딩을 다른진입신호만 허용으로 설정하시고 진입명 관계없이 3회까지 진입하고자 하시면 피라미딩을 모든진입신호 허용으로 설정하시고 적용하시면 됩니다. 즐거운 하루되세요 > 으&#49968; 님이 쓴 글입니다. > 제목 : 수식 문의 > 일봉 매매를 하고 있습니다 시스템식엔 매수조건 4개 매도조건4개가 있습니다. 모든 진입 허용으로 피라미딩을 허용해 매매하고 있습니다. 질문1. 여기서 문제가 진입한 포지션이 청산되기 전에는 진입횟수가 무제한이란 겁니다 이걸 진입명에 관계없이 포지션당 총 세차례로 진입횟수를 제한하고 싶습니다. 질문2. 질문1처럼 최고 세차례만 진입할때 진입 비중을 총매수가능금액의 1/3 비율로 동일하게 진입하고 싶습니다 관련 수식 부탁드립니다.
프로필 이미지
으&#49968;
2013-06-25
154
글번호 64679
시스템
답변완료

시스템식 질문입니다

시스템식 질문입니다 매매횟수를 시간대별로 제한하고 싶습니다 90000 ~ 100000 사이에 1회 매매 제한 포지션이 없다면 100001 ~ 110000 사이에 1회 매매제한
프로필 이미지
파인애플
2013-06-25
143
글번호 64673
시스템
답변완료

수식문의

1. 당일 데이터만을 이용하여 신호나게 하고 전일 데이터는 오늘 신호에 반영되지 않게 할려면 어떻게 수식을 추가해줘야 하나요? 2. 예를 들어 5개의 데이터를 사용한다면 각각의 데이터 마다에 수식을 반영해 줘야 하나요?
프로필 이미지
회원
2013-06-25
130
글번호 64671
시스템
답변완료

해외선물 청산시간 문의

해외선물(크루드오일) 10분봉을 운영하고 있습니다. ==================== 그런데 챠트를 한국시간으로 하고 한국시간기준 당일 오후 16시30분 ~ 익일 05시30분까지만 신호발생시키고 매일 05시30분에 보유중이면 일괄청산하는 식을 아래와 같이 운영하면 신호가 전혀 뜨지 않습니다.(아래 05시30분 청산식 때문에) 매일 05시30분에 꼭 진입된 신호를 일괄청산 처리하고 싶읍니다. 방법좀 알려주세요..! SetStopEndofday(053000); ##----> 이 청산식 넣으면 신호 제로가 됨 if ((stime >= 163000) or (stime < 053000)) and <매수조건> then buy("매수"); ### if ((stime >= 163000) or (stime < 053000)) and <매도조건> then sell("매도");
프로필 이미지
우후훗
2013-06-25
147
글번호 64669
시스템

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2013-06-25
25
글번호 64668
검색
답변완료

지표 문의(2)

안녕하세요,,최소한의 코딩을 첨부하는것이 예의인줄 알지만 염치없이 부탁드립니다. 1. 양봉 평균(출현)길이 지표 양 음 양 양 음 양 양 양 음 양 음 양 음 이라고 하면 양봉시리즈의 길이는 각각 1, 2, 3 ,1, 1이므로 평균은 8/5 입니다. 즉, 양봉 연속 출현 길이의 평균값을 지난 N개 봉들에 대해 구하고 싶습니다. 2. 양봉 다음 양봉이 나올 확률 양 음 양 양 음 양 양 양 음 양 음 양 음 이라고 하면 양봉 총 8개 중에서 양봉 다음 양봉인 경우가 3회 양봉 다음 음봉인 경우가 5회 입니다 그러므로 양봉 다음에 양봉이 나올 확률은 3/8 입니다. 이와같은 숫자를 지난 N개 봉에 대해 구하고 싶습니다.. 감사합니다! 즐거운 하루 되세요
프로필 이미지
데몬
2013-06-25
181
글번호 64667
지표
답변완료

지표 문의

안녕하세요, 아래 전략을 지표로 만들고 싶습니다. 매수든 매도든 한번 진입했다가 청산되는것을 '1거래'라고 하겟습니다. 제가 만들고 싶은 지표는 그래프로 나타나는 것은 아니고 단순히 Count 결과를 messageLog 등을 통해 추출하고 싶은 것입니다. 지표 내용 : 지난 100거래 혹은 1000거래 동안 1거래의 max값의 count 변수정의 : cnt_0.3 / cnt_0.9 / cnt_2.0 예를 들어 1번째 거래가 매수로 들어가서 0.5 까지 올라갔다면 cnt_0.3 = cnt_0.3 + 1 ; 입니다 2번째 거래가 매수로 들어가서 1.2 까지 올라갔다면 cnt_0.3 = cnt_0.3 + 1; cnt_0.9 = cnt_0.9 + 1; 입니다. 즉, 1거래동안 최대값에 이르는동안 0.3 / 0.9 / 2.0 등 구간을 거치는 것은 모두 1씩 카운트 하는 것입니다.. 마지막 예) 오늘 시가 50에서 시작하여 50 -> 50.5 -> 50 -> 50.4 -> 50 -> 51 -> 53 -> 50 -> 51(장종료) 으로 변동했다면 거래는 총 4회가 이루어졌고 cnt_0.3 = 4 cnt_0.9 = 2 cnt_2.0 = 1 전략과 마찬가지로 새로운 날이 열리면 기준시가는 변경됩니다. 이런 결과가 MessageLog 를 통해 도출되면 좋겠습니다 정말 감사합니다... (_ _);; ================== var : Bcond1(false),Bcond2(false),Bcond3(false),BEntryVol(0); var : Scond1(false),Scond2(false),Scond3(false),SEntryVol(0); var : DOpen(0); if stime == 161500 or (stime > 161500 and stime[1] < 161500) Then{ DOpen = O; Bcond1 = false; Bcond2 = false; Bcond3 = false; Scond1 = false; Scond2 = false; Scond3 = false; } if MarketPosition == 1 Then{ if highest(H,BarsSinceEntry) >= EntryPrice+0.3 Then Bcond1 = true; if highest(H,BarsSinceEntry) >= EntryPrice+0.9 Then Bcond2 = true; if highest(H,BarsSinceEntry) >= EntryPrice+2.0 Then Bcond3 = true; } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) <= EntryPrice-0.3 Then Scond1 = true; if Lowest(L,BarsSinceEntry) <= EntryPrice-0.9 Then Scond2 = true; if Lowest(L,BarsSinceEntry) <= EntryPrice-2.0 Then Scond3 = true; } if Bcond1 == false and Bcond2 == false and Bcond3 == false Then BEntryVol = 10; if Bcond1 == true and Bcond2 == false and Bcond3 == false Then BEntryVol = 8; if Bcond1 == true and Bcond2 == true and Bcond3 == false Then BEntryVol = 3; if Bcond1 == true and Bcond2 == true and Bcond3 == true Then BEntryVol = 0; if Scond1 == false and Scond2 == false and Scond3 == false Then SEntryVol = 10; if Scond1 == true and Scond2 == false and Scond3 == false Then SEntryVol = 8; if Scond1 == true and Scond2 == true and Scond3 == false Then SEntryVol = 3; if Scond1 == true and Scond2 == true and Scond3 == true Then SEntryVol = 0; if MarketPosition <= 0 and crossup(c,DOpen) Then buy("b",OnClose,def,BEntryVol); if MarketPosition == 1 Then{ if Bcond1 == false Then ExitLong("bx1",atlimit,EntryPrice+0.3,"",2,1); if Bcond2 == false Then ExitLong("bx2",atlimit,EntryPrice+0.9,"",5,1); if Bcond3 == false Then ExitLong("bx3",atlimit,EntryPrice+2.0,"",3,1); } if MarketPosition != 1 Then{ if Bcond1 == false Then ExitLong("bx11",atlimit,C+0.3,"",2,1); if Bcond2 == false Then ExitLong("bx12",atlimit,C+0.9,"",5,1); if Bcond3 == false Then ExitLong("bx13",atlimit,C+2.0,"",3,1); } if MarketPosition >= 0 and CrossDown(C,DOpen) Then sell("s",OnClose,def,SentryVol); if MarketPosition == -1 Then{ if Scond1 == false Then ExitShort("sx1",atlimit,EntryPrice-0.3,"",2,1); if Scond2 == false Then ExitShort("sx2",atlimit,EntryPrice-0.9,"",5,1); if Scond3 == false Then ExitShort("sx3",atlimit,EntryPrice-2.0,"",3,1); } if MarketPosition != -1 Then{ if Scond1 == false Then ExitShort("sx11",atlimit,c-0.3,"",2,1); if Scond2 == false Then ExitShort("sx12",atlimit,c-0.9,"",5,1); if Scond3 == false Then ExitShort("sx13",atlimit,c-2.0,"",3,1); } #당일청산 if stime == 160000 or (stime > 160000 and stime[1] < 160000) Then{ ExitLong(); ExitShort(); }
프로필 이미지
데몬
2013-06-25
178
글번호 64666
지표
답변완료

매월

안녕하세요 질문 드립니다 3개월간. 의 최저가. 2개월간의 최저가. 1개월간의 최저가 3개월간의. 최고가. 2개월의. 최고가. 1개월의. 최고가 를. 각각. 기억해야한다 그리고 새로운달이 나오면. 전전전 달은 초기화 한다 3개월 중에 최저가. 에서. 매수. 1000만원. 3개월중 최고가에. 청산 2개월 중에. 최저가. 에서. 매수. 1000만원. 2개월중 최고가에. 청산 1개월. 중에서 최저가 에서. 매수 1000만원. 1개월중. 최고가에. 청산 글구. 목표가. 10 %. 청산. 감사^^
프로필 이미지
회원
2013-06-25
145
글번호 64665
시스템

삼족오 님에 의해서 삭제되었습니다.

프로필 이미지
삼족오
2013-06-25
0
글번호 64664
시스템