커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7763
글번호 230811
답변완료
조건 만족 즉시 매수방법이 있나요?
5분봉을 사용하고 있는데, 봉완료 시점이 아니더라고 조건이 만족되면
즉시 매수주문을 넣을 수 있는 방법을 알려주세요...
2009-11-04
780
글번호 25912
답변완료
12436 관련 미해결
죄송합니다. 계속 올리네요.
셋스탑 트레일링 12436 관련하여 stime < 144000을 제어문에 추가했는데도 다음날 9시 땡하면 시가에 계속 진입을 해버립니다.
참고로 제 시스템은 9시 20분부터 진입을 합니다.
아래의 식에서 뭐가 잘못된 것인지요???
중간생략
Trcount = 0;
for cnt = 1 to 20{
if sDate ==ExitDate(cnt) and IsExitName("StopTrailing", cnt) Then
Trcount = Trcount+1;
}
if stime < 144000
&& MarketPosition == 0
&& IsExitName("StopTrailing", 1)
&& Trcount <= 1 Then{
Buy("오름", AtStop, ExitPrice(1)+0.4);
Sell("내림", AtStop, ExitPrice(1)-0.4);
}
if MarketPosition != 0
Then{if IsEntryName("오름") or IsEntryName("내림") Then{
SetStopTrailing(0.5, 2.4, PointStop, 1);
SetStopLoss(2.8, PointStop);
}
}
Else{
SetStopTrailing(0,0);
SetStopLoss(0);
}
SetStopEndofday(145000);
가장 큰 문제는 전날 14시 40분 전에 셋스탑스레일링이 걸린 것이 있고 다음날 시가에 갭등(진입가격에서 +0.4이상)으로 시작하면 '오름'으로 진입, 다음날 시가에 갭락(진입가격에서 -0.4이하)으로 시작하면 '내림'으로 진입해버리는 것입니다.
stime < 144000을 추가했는데도 다음날 첫봉에 신호가 발생한다면
신호의 명칭을 확인하고 해당 신호의 제어문에 stime < 144000을 추가하라고 하셨는데, 다음날 아침 시가에 진입 명칭은 '오름'이나'내림'입니다.
어떻게 해야 하는지요???
제 생각에는 셋스탑트레일링- 오름이나 내림- 셋스탑 트레일링 -오름이나 내림 이 패턴으로 하루종일 진입하다가 다음날 아침 9시 시가까지 이어지는 것 같습니다.
당일로만 진입할 수 있게 방법좀 알려주세요.
미리 감사드립니다.
2009-11-04
834
글번호 25911
답변완료
수식 부탁드립니다.
*당일 저점 대비 5틱 상승시 매수(매수청산 후 조건 만족시 매수->매수청산 반복)
*매수후 고점대비 5틱 하락시 매수 청산
*09시 15분이후 부터 매수, 14시 15분이후 매수 금지
*14시 45분에 매수청산, 매매 종료.
**참고로요, 이렇게 수식을 만들면, 당일 첫 번째 매수는 당일 최저점 대비 5틱 상승시 매수하면 되겠는데, 두 번째 매수는 애매해지는 것 같습니다. 2번째 매수는 첫 번째 매수청산 이후의 최저가에서 5틱 상승시 매수 후 2번째 매수이후 고점에서 5틱하락시 매수청산. 3번째 매수는 2번째 매수 청산이후 최저가에서 5틱 상승시 매수... 이렇게 반복하면 되지 않을까요? 이런 방법이 가능한지 모르겠습니다. 도움 부탁드립니다.
감사합니다.
2009-11-04
825
글번호 25910
답변완료
문의드립니다
올려주신 수식으로 시스템검증을 해보니 조건만족결과 값을 한번 하고 나면 그다음부터 그 조건을 만족하는 값이 나와도 무시를 해버립니다 .
첨부파일에서 보시면 매수를 하고 그다음 다시 이익실현으로 청산을 했는데 아직 조건값을 만족하는 상황에 놓여 있습니다 . 그렇게 만족을 하는 값이 발생을 하고 있으면 다시 청산후 매수를 해버립니다 .
그리고 다시 또 얼마후 이익실현 값에 도달 하였지만 다시 재매수를 해버립니다 . 조건을 만족하고 있는 값에서 당일청산후 다시 재매수를 해버리는데 이걸 방지 하고 싶습니다 .
2009-11-04
799
글번호 25902
답변완료
12428 셋스탑 트레일링 관련
보내주신 식 다시한번 감사드립니다..
근데 문제가 해결이 안되서요
12428번 질문 관련 다시 문의드립니다.
제가 궁금한 것은 2차내지는 3차 수익후 셋스탑트레일링이 걸린 이후에 청산시간을 따로 14시 40분으로 맞춰놓았는데도 계속 다음날 9시 시가에 아래나 위로 진입을 해 버립니다.
시스템 식에다 stime>144000 을 넣었는데도 그러네요
제 시스템은 아침 9시 20분부터 들어가게 되어있는데, 시스템이 진입하자마자, 전날의 셋스탑트레일링 '오름'이나 '내림'이 먼저 들어가 버리네요..그리고 나서 시스템대로 움직입니다.그날 거래는 그날 오후 2시 40분으로 끝내고 싶은대도 말이죠.
144000 시간제한 식을 넣으면 2시 40분 이후에는 진입을 하지 않지만, 문제는 2시 40분 전에 걸렸던 셋스탑트레일링이 있으면, 다음날 시가에 또 다시 '오름'이나
'내림'으로 진입을 해버립니다.
아래는 에스스탁에서 보내주신 식입니다.
if stime < 144000 and MarketPosition == 0 and IsExitName("StopTrailing", 1) and Trcount <= 1 Then{
Buy("오름", AtStop, ExitPrice(1)+0.4);
Sell("내림", AtStop, ExitPrice(1)-0.4);
}
청산식을 SetStopEndofday(144000);을 넣었는데도 완전한 청산이 안됩니다.
뭐가 문제인지 답변 부탁드리겠습니다.
2009-11-04
687
글번호 25901
빛날찬우 님에 의해서 삭제되었습니다.
2009-11-04
0
글번호 25898
답변완료
옵션수식 어제에 이어 추가로 문의드립니다
안녕하세요
언제나 성의있고 친절한 답변 정말 감사합니다.
추가 질문은 메일로 보냈습니다.
즐거운 하루 되세요^^
2009-11-04
666
글번호 25897
답변완료
분봉 차트에서 일봉의 Envelope의 값을 만드는 방법에서
안녕하세요 지표 문의를 드리려고 이렇게 글을 남깁니다.
아래는 분봉차트에서 실시간 일볼의 Envelope 20-20 지표입니다.
예전 어떤분이 물으신 것을 따왔습니다.
그럼 다시 질문 드립니다.
----------------------------------------------------------------
input : Period(20),Percent(20);
var : sumv(0),mav(0),cnt(0),evup(0),Evdn(0);
sumv = 0;
for cnt = 0 to Period-1
{
sumv = sumv + dayclose(cnt);
}
mav = sumv/Period;
EvUp = mav + mav * (Percent / 100);
EvDn = mav - mav * (Percent / 100);
plot1(EvUp,"상단");
plot2(EvDn,"하단");
-----------------------------------------------------------------
현재의 가격까지 포함하여 예상되는 Envelope을 그리려고 하면
아래와 같이 하면 되는지요?
(현재의 분봉 가격과 dayclose 값이 같다면 굳이 할 필요가 없을 듯 하지만.
다르다면 차이가 있을 것 같아서..문의 드립니다.)
-------------------------------------------------------------------
input : Period(20),Percent(20);
var : sumv(0),mav(0),cnt(0),evup(0),Evdn(0);
sumv = 0;
for cnt = 0 to Period-2
{
sumv = sumv + dayclose(cnt);
}
mav = (sumv+C)/Period;
EvUp = mav + mav * (Percent / 100);
EvDn = mav - mav * (Percent / 100);
plot1(EvUp,"상단");
plot2(EvDn,"하단");
-----------------------------------------------------------------------
2009-11-04
698
글번호 25894
관리자에 의해서 삭제되었습니다.
2009-11-04
15
글번호 25893