커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6393
글번호 230811
답변완료
문의드립니다.
1분봉에서 완성되지 않은 이번주의 거래량과 이번달의 거래량을 알고싶습니다.수고하세요^^
2016-09-06
133
글번호 101731
답변완료
시스템 문의
슬로우 스토캐스틱을 기초로 시스템을 만드려고 합니다. 그런데 두가지 차트의 조건이 충족되는 경우로 할 수 있나요?
1. 매도 진입조건으로 (A) (i) 틱차트상 스토캐스틱 K가 80 위로 올라갔다가 내려갈 때 또는 (ii) 틱차트상 스토캐스틱 K가 스토캐스틱 D를 하향돌파할 때 매도. (B) 다만 5분봉 차트에서 60이평선 아래 있을 때만 실제 매도
매수진입조건으로 (A) (i) 스토캐스틱 K가 20 아래로 내려갔다가 올라갈 때 또는 (ii) 스토캐스틱 K가 스토캐스틱 D를 상향돌파할 때 매수. (B) 다만 5분봉 차트에서 60이평선 위에 있을때만 실제 매수
2. 매도 포지션 청산조건으로 (i) 스토캐스틱 K가 20 아래로 하향돌파할 때 또는 (ii) 스토캐스틱 K가 스토캐스틱 D를 상향돌파할 때 매도포지션 청산.
매수 포지션 청산조건으로 (i) 스토캐스틱 K가 80 위로 상향돌파할 때 또는 (ii) 스토캐스틱 K가 스토캐스틱 D를 하향돌파할 때 매수포지션 청산.
2016-09-06
135
글번호 101730
동동이아빠 님에 의해서 삭제되었습니다.
2016-09-06
14
글번호 101729
답변완료
find( 함수로 검색된 종목을 출력하는 방법
안녕하세요?
종목검색을 할 때
if 상승 then
find(a);
종목검색 -> 신호검색으로 종목을 검색할 수 있습니다.
문제는 이 종목을 파일로 받거나 출력창으로 출력할 수 있는 방법을 찾고 있습니다.
왜냐하면 동일 검색식으로 30분 단위로 다시 검색하게 되는데, 이 때 이전에 검색된 종목을 제외하고 보려고 하니 파일에 저장하는 방법 밖에 없는 것 같습니다. 물론 종목창에서 엑셀로 보내기로 받아서 엑셀로 정리한 후에 사용은 하고 있지만 이건 좀 아닌 것 같습니다. 너무 손이 많이 가고, 장중에는 엄두도 못 내겠습니다.
부탁 드립니다. 좋은 하루 보내세요.
2016-09-06
128
글번호 101724
답변완료
49452 질문 3번째 리플 답변 부탁드립니다 (내용 무)
.
2016-09-06
99
글번호 101723
답변완료
뭐가 잘못되었는지 좀 가르쳐 주세요
안녕하세요!
항상 굴금한점 해결해 주셔서 너무 감사합니다.
2가지 궁금한 점이 있어서 문위 드려요!
1. 아래는 다케다사부로라는 분의 수식을 예스식으로 바꿔본건데 수식적용을 하면 화면에 아무것도 안보입니다!
뭐가 잘못된것지 좀 알고싶습니다.
Input:전환가격(300);
Var:j(0),꺾은선(0),기준고(0),기준저(0),방향(0),상승(100),하락(-100),
색깔(0),파랑(-1),빨강(1),전환(0),확인(0),확인표시(0),전환표시(0),천장(-10),바닥(10),
E(0),UB(0),E표시(0),UB표시(0);
Array:고[10](0),저[10](0);
E표시 = 0;
UB표시 = 0;
전환표시 = 0;
확인표시 = 0;
if 기준고 <= C or 기준고 == 0 then 기준고 = C;
if 기준저 >= C or 기준저 == 0 then 기준저 = C;
if 방향 == 하락 and C[1] + 전환가격/3 <= C then E = 상승;
if 방향 == 상승 and C[1] - 전환가격/3 >= C then E = 하락;
if 방향 == 하락 and ma(V,50)/1.5 >= V then UB = 바닥;
if 방향 == 상승 and ma(V,50)*1.5 <= V then UB = 천장;
if 기준저[1] + 전환가격 > C[1] and 기준저[1] + 전환가격 <= C then 방향 = 상승;
if 기준고[1] - 전환가격 < C[1] and 기준고[1] - 전환가격 >= C then 방향 = 하락;
if 방향[1] == 하락 and 방향 == 상승 then {
for j = 8 downto 0 {
저[j+1] = 저[j];
}
저[0] = 기준저;
꺾은선 = 기준저;
기준저 = C;
기준고 = C;
if E == 상승 then E표시 = 꺾은선 - 전환가격;
if UB == 바닥 then UB표시 = 꺾은선 - 2*전환가격;
E = 0;
UB = 0;
if 저[1] > 저[0] then 색깔 = 파랑;
if 색깔[1] != 색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 저[1] < 저[0] then {
if 저[2] >= 저[1] then 확인 = 바닥;
else 확인 = 0;
}
if 확인 == 바닥 and 확인[1] < 확인 then 확인표시 = 꺾은선 - 3*전환가격;
if 색깔[1] != 색깔 then 전환 = 0;
if 저[1] < 저[0] and 고[1] < 고[0] then 전환 = 상승;
if 전환 == 상승 and 전환[1] < 전환 then 전환표시 = 꺾은선 - 4*전환가격;
}
if 방향[1] == 상승 and 방향 == 하락 then {
for j = 8 downto 0 {
고[j+1] = 고[j];
}
고[0] = 기준고;
꺾은선 = 기준고;
기준고 = C;
기준저 = C;
if E == 하락 then E표시 = 꺾은선 + 전환가격;
if UB == 천장 then UB표시 = 꺾은선 + 2*전환가격;
E = 0;
UB = 0;
if 고[1] < 고[0] then 색깔 = 빨강;
if 색깔[1] != 색깔 and 고[1] < 고[0] and 저[1] > 저[0] then 확인 = 0;
if 고[1] > 고[0] then {
if 고[2] <= 고[1] then 확인 = 천장;
else 확인 = 0;
}
if 확인 == 천장 and 확인[1] > 확인 then 확인표시 = 꺾은선 + 3*전환가격;
if 색깔[1] != 색깔 then 전환 = 0;
if 고[1] > 고[0] and 저[1] > 저[0] then 전환 = 하락;
if 전환 == 하락 and 전환[1] > 전환 then 전환표시 = 꺾은선 + 4*전환가격;
}
if 꺾은선[1] != 꺾은선 then { //전체 -1수평이동
Plot1(꺾은선,"꺾은선",iff(색깔==빨강,RED,BLUE)); //선그래프
if 확인표시 != 0 then Plot2(확인표시,"확인",BLACK); //점그래프,최대굵기
if 전환표시 != 0 then Plot3(전환표시,"전환",BLACK); //점그래프,최대굵기
if 전환표시 != 0 then Plot4(전환표시,"전환속",WHITE); //점그래프,중간굵기
}
if E표시 != 0 and UB표시 != 0 then {
Plot5(E표시,"E표시",PINK); //점그래프,중간굵기
Plot6(UB표시,"U,B표시",MAGENTA); //점그래프,중간굵기
}
2. 아래는 볼린저밴드 입니다
볼린저 밴드 상이나 하단에 봉챠트가 닫으면 양봉이 음봉으로 바뀐 매도신호와 반대로 음봉이 양봉으로 바뀌면 신호가 나오게끔 하는 수식을 알고 싶습니다!
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0);
MAv = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
Plot1(MAv, "이평");
Plot2(BBup, "상단밴드");
Plot3(BBdn, "하단밴드");
감사합니다!
2016-09-06
139
글번호 101722
답변완료
문의드립니다.
maLong = ma(C, 100);
MP = MarketPosition;
# 이평을 하향돌파하면 매도진입
if MP == 0 and CrossDown(C, maLong) then
Sell("S1", AtStop, maLong-0.5);
#기존 매도포지션이 있으면 4pt 수익 발생할 때 추가 진입
if MP == -1 then
Sell("SS", AtStop, EntryPrice - 4);
# 모든 포지션 청산
If MP == -1 then {
exitshort("xSS",atstop, lowest(L,BarsSinceEntry+1)+4);
}
# 손절청산 <== 이 부분이 문제인데
if MP == -1 Then {
ExitShort("ST1", AtStop, EntryPrice + 2, "S1");
ExitShort("ST2", AtStop, latestEntryPrice(0) + 3, "SS");
}
[질문]
1. SetStopLoss 와 ExitShort와 동일하게 작동하게 할 수 있나요?
진입봉에서 로스컷이 나온 경우 강제청산은 제대로 작동하는데 청산함수를 사용한 것은
다음봉에 청산되는 문제가 있습니다.
2. 강제청산함수 SetStopLoss 를 진입명에 따라 구분지어 작동하게 할 수 있나요?
3. 진입명에 따른 청산 방법을 위와같이 사용하는데 문제가 없나요?
4. 두번째 진입을 latestEntryPrice(0) 로 사용하였는데 문제가 없나요?
매번 성실한 답변 감사드리며 답변 부탁드립니다.
2016-09-06
113
글번호 101721
답변완료
신호좀 자주 나오게 해주세요.
지난번 질문에 수식 작성해주셔서 고맙습니다.
아래는
"최근 20개 봉의 평균 가격 기준 상 하 3% 이내에서는 조건을 만족해도 신호 발생하지 않는다."
라는 수식을 작성해주신건데 실행해보니까 신호가 3일에 한번 정도 나옵니다.
조금더 민감하게 해보려고
봉 수를 20개가 아닌 2개로 줄이고( var4 = (highest(H,20)+lowest(L,20))/2;), --> 이 부분에서 20을 2로 변경함
상하 3% 이내를 1% 이내로 줄이고 (C >= var4*1.03 or C <= var4*0.97) --> 이 부분을 1.03을 1.01로, 0.97을 0.99로 변경함
이렇게 수정하고 실행해도 신호가 안나옵니다.
좀더 민감하게 하려면 어떻게 해야 하는지요?
var1 = ma(c,3);
var2 = ma(c,6);
var3 = ma(C,9);
var4 = (highest(H,20)+lowest(L,20))/2;
#기존매수는 피라미딩이 되지 않게 MarketPosition <= 0 조건 추가
if MarketPosition <= 0 and var1 > var2 and C > var3 and C > O and
(C >= var4*1.03 or C <= var4*0.97) Then
buy("b");
#기존매도는 피라미딩이 되지 않게 MarketPosition >= 0 조건 추가
if MarketPosition >= 0 and var1 < var2 and C < var3 and C < O and
(C >= var4*1.03 or C <= var4*0.97) Then
sell("s");
#피라미딩매수(매수상태이고 첫봉에서 동일조건이면 추가매수)
if dayindex == 0 and MarketPosition == 1 and var1 > var2 and C > var3 and C > O and
(C >= var4*1.03 or C <= var4*0.97) Then
buy("bb");
#피라미딩매도(매도진입상태이고 첫봉에서 동일조건이면 추가매도)
if dayindex == 0 and MarketPosition == -1 and var1 < var2 and C < var3 and C < O and
(C >= var4*1.03 or C <= var4*0.97) Then
sell("ss");
if MarketPosition == 1 Then{
var1 = Floor((highest(H,BarsSinceEntry)-EntryPrice)/(PriceScale*10));
if var1 > var1[1] Then
Text_New(sdate,stime,H,NumToStr(var1*10,0)+"틱");
}
if MarketPosition == -1 Then{
var1 = Floor((EntryPrice-Lowest(L,BarsSinceEntry))/(PriceScale*10));
if var1 > var1[1] Then
Text_New(sdate,stime,H,NumToStr(var1*10,0)+"틱");
}
2016-09-06
116
글번호 101720
뽀로오스 님에 의해서 삭제되었습니다.
2016-09-06
13
글번호 101710