커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4545
글번호 230811
답변완료
뭐가 잘못되었는지 좀 가르쳐 주세요
안녕하세요!
항상 굴금한점 해결해 주셔서 너무 감사합니다.
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
124
글번호 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
94
글번호 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
101
글번호 101720
뽀로오스 님에 의해서 삭제되었습니다.
2016-09-06
13
글번호 101710
답변완료
부탁드립니다
수고하십니다.
1)주가가 연속 2양봉이면서 5일선을 돌파하여 5일선은 상승하고 다시 고점을 돌파하면 매수
반대신호도 부탁드립니다
2016-09-06
115
글번호 101709
답변완료
변환
예스전환 부탁드림니다
sw=if(eavg(c,p10)>eavg(c,p30),1,
if(eavg(c,p10)<eavg(c,p30),-1,0));
pos=if(barssince(sw==1)< barssince(sw==-1),1,-1);
pos
2016-09-06
105
글번호 101708
답변완료
수식문의
그림처럼 시가를 기준으로 여러개의 선을 만들고 싶습니다
1.해당주의 시가를 기준으로 위로 몇틱 아래로 몇틱을 평균 분봉에 적용하여 저렇게만들고 싶습니다.
2.해당월
3.해당년
4. 해당주와 해당월의 평균
5. 해당월 해당년 평균
6. 3개모두의 평균
2016-09-05
147
글번호 101707
답변완료
수고많으십니다^^
스위칭매매식을 사용하고있습니다 손절40틱 익절80틱에 셋팅해서요
매매도중 한번이라도 손절내지익절이발생하면 매매를정지시키는 시스템식 부탁합니다
수고하세여^^
2016-09-05
84
글번호 101706
답변완료
무엇이 잘못된건지 가르쳐 주시면 감사하겠습니다
안녕하세요 수식이 어디가 잘못된건지 몰라서 여쭈어 봅니다
숫자값이나 숫자 표현식이 와야 한다고 하는데 어떻게 하면 이 문제를 해결할 수 있을까요?
2016-09-05
102
글번호 101705