커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7746
글번호 230811
답변완료
검색식 의뢰
일봉에서
MACD 오실레이터가
0선 아래에서 2일~5일[기간 범위 조절 가능하게]동안 연속으로 감소하다가
반전하여 상승하는 첫날 또는 상승 이틀 째인 종목 검색식 부탁합니다.
수고하세요
2010-12-06
618
글번호 34118
답변완료
분할매도/분할매수 방법 재문의
아래 수식(분할매수/분할매도)으로 KODEX 200 시험 테스트를 진행해보니....
매수1, 매수2 분할매수 매도가 되지않고 매수1/매수1만 반복되는 이유가 원가요???
테스트 결과를 첨부파일로 올립니다....
검토 부탁드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 분할매수/분할매도 방법
> 안녕하세요
예스스탁입니다.
if countif(CurrentContracts < CurrentContracts[1],BarsSinceEntry) < 1 Then{
if Crossup(c,ma(C,5)) Then
buy("매수1");
if Crossup(ma(c,5),ma(C,20)) Then
buy("매수2");
}
if MarketPosition == 1 Then{
if CrossDown(c,ma(c,5)) Then
exitlong("매도1",OnClose,def,"매수1");
if CrossDown(ma(c,5),ma(c,20)) Then
exitlong("매도2",OnClose,def,"매수2");
}
즐거운 하루되세요
> Chris 님이 쓴 글입니다.
> 제목 : 분할매수/분할매도 방법
> 안녕하세요...
KODEX 200(ETF)를 분할매수해서 분할매도를 하고 싶습니다.
예를 들어...
■ 분할매수
1) 일봉 종가가 5이동평균선을 골든크로스: 매수1
2) 5이동평균선이 20이동평균선을 골든크로스: 매수2
■ 분할매도
1) 일봉 종가가 5이동평균선을 데드크로스: 매도1
2) 5이동평균선이 20이동평균선을 데드크로스: 매도2
수식 작성 부탁드립니다.
2010-12-06
833
글번호 34117
답변완료
수식작성부탁드립니다.
수고 많으십니다.
봉은 15분봉을 사용하고, 20일 이평은 일봉을 기준으로 사용한 수식부탁드립니다.
1. 매수 : 15분봉에서 일봉기준으로한 20일 이평을 돌파하거나 저가는 작고 종가는 클경우 매수진입
2. 청산 : 1) 매수가 대비 5%이상 상승한 상태에서 20일 이평*1.03 을 이탈한경우 매수수량 30% 청산
2) 매수가 대비 20%이상 상승한 상태에서 20일 이평이 청산1)의 값보다 크고, 20일 이평*1.03 을 이탈한 경우 남은수량 30%청산
3) 매수가 대비 30%이상 상승한 상태에서 20일 이평이 청산2)의 값보다 크고, 20일 이평*1.03 을 이탈한 경우 남은수량 50%청산
4) 현재가가 매수가보다 크고 20일 이평 이탈시 전량청산
5) 매수가 대비 10% 이탈시 전량청산
3. 추가매수 청산1) 발생 후 매수신호 발생시 청산수량만큼 재매수
감사합니다
2010-12-06
591
글번호 34116
답변완료
성능보고서 문의
총손익 105p포인트
총수익 325p
총손실 -220p
특이치제거 총손익 -67
특이치제거 총수익 171
특이치제거 총손실 -117
성능 보고서에 이렇게 나왔습니다
특이치 제거 총손익 은 -67 입니다 총 수익은 105인데 특이치제거 후 -네요. 이게 무엇을 의미하는건지 설명부탁드립니다.
그리고 변동계수가 1.125.88% 로 나오는데 이계 무엇인가요
2010-12-06
601
글번호 34115
강산 님에 의해서 삭제되었습니다.
2010-12-06
294
글번호 34114
답변완료
진입방법
분할되는 조건이 따라 식이 많이 다릅니다.
아래는 10주를 분할로 내는 식입니다.
특정조건시 2주, 다음봉 2주, 그다음봉 2주 식으로....
5개봉 동안 총 10주를 분할로 진입하는 식입니다.
if MarketPosition == 0 and 조건 Then
buy("b1",OnClose,def,2);
if MarketPosition == 1 Then{
if BarsSinceEntry == 1 Then
buy("b2",OnClose,def,2);
if BarsSinceEntry == 2 Then
buy("b3",OnClose,def,2);
if BarsSinceEntry == 3 Then
buy("b4",OnClose,def,2);
if BarsSinceEntry == 4 Then
buy("b5",OnClose,def,2);
}
---------------------------------------------------------------
신호발생시 분할진입을 하는 질문에 위내용처럼 답변을 주셨는데...
답변에서는 원하는 수량을 즉시 체결하지 않고 캔들을 기다려야 하는 단점이 있어서
---> 이번엔 진입신호 발생시 진입수량 10계약 설정하고 자동매매를 설정한 후
진입신호가 발생하고 진입수량을 10계약을 체결야 되는데 즉시 10계약 주문이 아니고
2계약이 먼저 시장가 주문해서 체결시키면 추가 2계약 시장가 주문체결하고 체결되면
다시 2계약을 시장가 주문하는 방법으로 2계약씩 5회에 걸쳐 10계약을 주문넣는
방법을 찾고 있습니다.
답변에 항상 감사합니다.
2010-12-06
551
글번호 34112
답변완료
그래도 신호가 발생 안합니다.
if crossUp (ma(c,5), ma(c,60)+0.1) Then
buy("b1");
if crossDown (ma(c,5), ma(c,60)-0.1) Then
sell("s1");
if crossup(ma(c,5), 250.25+0.1) Then
buy("num_b1");
if crossdown (ma(c,5), 250.25-0.1) Then
ExitLong("num__EL1");
if dayindex < 13 then{
if c > dayopen+0.1 Then
buy("b0");
if c < dayopen-0.1 Then
sell("s0");
}
if (MarketPosition == 1) or (MarketPosition == -1) Then
SetStopEndofday(150600);
var : cond1(0);
#llp가 240이평을 하향하면 value3을 0으로 초기화
if CrossDown(llp,ma(c,240)) Then{
value3 = 0;
}
#llp가 240이평보다 작은 상태에서 ssp가 llp+n1을 하향하면
#value3을 1값씩 증가하여 횟수 카운트
if CrossUp(ssp, llp+n1) and llp < ma(c,240)Then{
value3 = value3+1;
}
#당일 2번봉 이내이고 value3이 1이상인 상태에서
if DayIndex < 2 and value3 >= 1 Then{
if c > o+0.4 and o < L+0.2 Then#종가가 시가대비 0.4이상 크고 시가가 저가대비+0.2이상 크지 않으면 매수
buy("buy0");
}
위의 수정해 주신 식을 적용해 보았으나 신호가 발생 안합니다.
ssp에 20선 넣고, llp에 60선 넣고, 5분봉에 적용해 보았습니다..
다른식 다 삭제하고 이것만 넣어서요...
"buy0" 발생안합니다
확인후 답변 부탁 드려요~
if CrossDown(ma(c,60),ma(c,240)) Then{
value3 = 0;
}
if CrossUp(ma(c,20), ma(c,60)+0.1) and ma(c,60) < ma(c,240) Then{
value3 = value3+1;
}
if DayIndex <2 and value3 >=1 Then{
if c > o+0.4 and o < L+0.2 Then
buy("buy0");
}
2011-02-14
570
글번호 34111
답변완료
조건 만족시 시간별로 순차적으로 매도식 점검 부탁
관리자님이 보내주신 답변으로 나름대로 고민해서 만들고 있는데
어떤 때는 되고 어떤 때는 안되네요.
만들고자 하는 식은
매수식 : 조건만족시 순차적으로 매수, 매수량은 전봉 거래량에 따라 가변
(* 이식은 제대로 작동하는 것 같습니다)
매도식 : 조건만족시 순차적으로 매도, 매도량은 전봉 거래량에 따라 가변
( * 요건 제대로 안되네요. 뭐가 잘못됐는지 답답....)
특정 조건에서 매수, 매도량이 몰리는걸 방지하기 위해 만들어본 식인데
안되네요. 식 점검 부탁드립니다./ 좋은식 갈켜주시면 땡큐입니다.
설명이 부족한 것 같아 예를 들자면,
스토캐스틱 20이하에서 물량을 시차별로 순차적으로 매집한후 (예를들어 5000주)
스토캐스틱 80이상 조건에서 매도를 하고 싶은데, 현재 거래량을 고려하지 않고
매도할 경우 장에 매도물량만 쌓아 놓는 경우가 있었습니다.
그래서 거래량을 비교해가며 순차적으로 매도하는 식을 만들어 보고 싶어서
문의 드렸습니다.
현재 거래량일 적을 경우에는 100주씩, 좀 많다 싶을때는 300주씩, 거래량
폭발일때는 1000주씩 매도, 단 매도 조건이 여러개일 수 있다보니
매도 조건이 겹칠때는 우선 적용되는 거래 조건만 거래되고 후순위 매도조건식
적용되지 않게 하려고 합니다.
주식마다 3분봉, 5분봉, 30분봉 ... 등을 바꿔서 적용하려고 합니다.
(에궁... 말솜씨가 없어서 이해가 되실려나...)
### 매수 : okb 는 매수조건 충족시 1
if okb == 1 and CurrentContracts < maxvol1
then {
If CurrentEntries == 0 Then Buy("bbb0",onclose,def,Bvol1);
if CurrentEntries == 1 Then Buy("bbb1",onclose,def,Bvol1);
if CurrentEntries == 2 Then Buy("bbb2",onclose,def,Bvol1);
if CurrentEntries == 3 Then Buy("bbb3",onclose,def,Bvol1);
if CurrentEntries == 4 Then Buy("bbb4",onclose,def,Bvol1);
if CurrentEntries == 5 Then Buy("bbb5",onclose,def,Bvol1);
}
# 매도 : oks는 매도조건 충족시 1
cnt1 = maxentries;
if oks == 1 and svol1 > 0 then {
if CurrentEntries == cnt1 Then {
ExitLong("SSS1", onclose, def, "",Svol1,1);
exit1 = sTime;
}
if CurrentEntries == (cnt1 - 1)
and exit1 < stime
Then { ExitLong("SSS2", onclose, def, "",Svol1,1);
exit2 = sTime;
}
if CurrentEntries == (cnt1 - 2)
and exit1 < stime and exit2 < stime
Then { ExitLong("SSS3", onclose, def, "",Svol1,1);
exit3 = sTime;
}
if CurrentEntries == (cnt1 - 3)
and exit1 < stime and exit2 < stime and exit3 < stime
Then { ExitLong("SSS4", onclose, def, "",Svol1,1);
exit4 = sTime;
}
if CurrentEntries == (cnt1 - 4)
and exit1 < stime and exit2 < stime and exit3 < stime and exit4 < stime
Then { ExitLong("SSS5", onclose, def, "",Svol1,1);
exit5 = sTime;
}
if CurrentEntries == (cnt1 - 5)
and exit1 < stime and exit2 < stime and exit3 < stime and exit4 < stime
and exit5 < stime
Then { ExitLong("SSS6", onclose, def, "",Svol1,1);
exit6 = sTime;
}
if CurrentEntries < (cnt1 - 5)
and exit1 < stime and exit2 < stime and exit3 < stime
and exit4 < stime and exit5 < stime and exit6 < stime and exit7 < stime
Then { ExitLong("SSS9", onclose, def,"");
} } # 앞에서 순차적으로 매도하고 그래도 남은 물량 일괄 매도
2010-12-07
579
글번호 34110
러블리 님에 의해서 삭제되었습니다.
2010-12-06
157
글번호 34109