커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3760
글번호 230811
답변완료
볼밴
볼린져밴드을 종가기준으로 하지말고(고+저+중)/3으로 할려면 어떻게 수식을 바꾸어야 하나요?
2019-05-07
214
글번호 128439
답변완료
지표식 수정 부탁합니다...
수고하십니다...
아래 지표는 예전에 수식지왕님이 만든 지표식입니다.
SwingHigh(1,H,4,4,9) ,SwingLow(1,L,4,4,9) 라고 할 때
아래 식의 highest의 H, lowest의 L을 종가c 기준으로 변환 부탁드립니다.
즉, swinghigh의 해당 봉이 양봉이면 종가, 음봉이면 시가로 고점을 표시하여 연결하고 싶습니다.
또, swinglow의 해당 봉이 양봉이면 시가, 음봉이면 종가로 저점을 표시하여 연결하고 싶습니다.
수고하세요~~
###############
input:left(4),right(4),x(0.005);
var:j(0),예비고(0),예비저(0),예비고bar(0),예비저bar(0),미완성(0),미완성bar(0),고점표시(0),저점표시(0),
예비고추세기울기(0),예비저추세기울기(0),예비고추세선(0),예비저추세선(0),
고추세기울기(0),저추세기울기(0),고추세선(0),저추세선(0);
array:고[10](0),저[10](0),고bar[10](0),저bar[10](0);
#================================================#
# 변곡점 계산
#================================================#
if highest(h[1],left) <= h then {
예비고 = h;
예비고bar = 0;
}
else
예비고bar = 예비고bar + 1;
if lowest(l[1],left) >= l then {
예비저 = l;
예비저bar = 0;
}
else
예비저bar = 예비저bar + 1;
고점표시 = (o[right] + c[right]) / 2;
저점표시 = (o[right] + c[right]) / 2;
for j = 1 to 9 {
고bar[j] = 고bar[j] + 1;
저bar[j] = 저bar[j] + 1;
}
if 예비고bar == right and highest(h,right) <= h[right] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
고점표시 = 예비고 + x;
고[1] = 예비고;
고bar[1] = 예비고bar;
if 저bar[1] > 고bar[2] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
미완성 = 0;
for j = 고bar[1] + 1 to 고bar[2] - 1 {
if 미완성 == 0 or 미완성 > l[j] then {
미완성 = l[j];
미완성bar = j;
}
}
저[1] = 미완성;
저bar[1] = 미완성bar;
}
}
if 예비저bar == right and lowest(l,right) >= l[right] then {
for j = 9 downto 2 {
저[j] = 저[j-1];
저bar[j] = 저bar[j-1];
}
저점표시 = 예비저 - x;
저[1] = 예비저;
저bar[1] = 예비저bar;
if 고bar[1] > 저bar[2] then {
for j = 9 downto 2 {
고[j] = 고[j-1];
고bar[j] = 고bar[j-1];
}
미완성 = 0;
for j = 저bar[1] + 1 to 저bar[2] - 1 {
if 미완성 < h[j] then {
미완성 = h[j];
미완성bar = j;
}
}
고[1] = 미완성;
고bar[1] = 미완성bar;
}
}
#=============================================#
# 자동추세선 계산
#=============================================#
예비고추세선 = 0;
예비저추세선 = 0;
for j = 1 to 9 {
if 예비고 < 고[j] then {
예비고추세기울기 = (예비고-고[j])/(고bar[j]-예비고bar);
예비고추세선 = 예비고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 1 to 9 {
if 저[j] < 예비저 and 저[j] > 0 then {
예비저추세기울기 = (예비저-저[j])/(저bar[j]-예비저bar);
예비저추세선 = 예비저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
고추세선 = 0;
저추세선 = 0;
for j = 2 to 9 {
if 고[1] < 고[j] then {
고추세기울기 = (고[1]-고[j])/(고bar[j]-고bar[1]);
고추세선 = 고추세기울기 * 고bar[j] + 고[j];
j = 9;
}
}
for j = 2 to 9 {
if 저[j] < 저[1] and 저[j] > 0 then {
저추세기울기 = (저[1]-저[j])/(저bar[j]-저bar[1]);
저추세선 = 저추세기울기 * 저bar[j] + 저[j];
j = 9;
}
}
#=====================================================#
# 지표출력
#=====================================================#
//Y축표시 : 가격
if 고점표시 > h[right] then plot1(고점표시,"전고점",blue);
if 저점표시 < l[right] then plot2(저점표시,"전저점",red);
if 예비고추세선>0 then plot3(예비고추세선,"예비고추세선",blue);
if 예비저추세선>0 then plot4(예비저추세선,"예비저추세선",red);
if 고추세선>0 then plot5(고추세선,"고추세선",blue);
if 저추세선>0 then plot6(저추세선,"저추세선",red);
2019-05-07
283
글번호 128438
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
진입
-시가 + n 틱 돌파 buy ATSTOP
청산
-진입후 전체 포지션 수익률이 p-1%로 감소하면 익절 청산
추가진입
-전체 포지션 수익률이 p%가 되도록 추가진입.
*참조: 1000원에서 1500원이 됐을 때 수익률을 10%로 고정시키기
만약 주식 10주를 1000원애 매입하고 현재ㅏ 1500원일시
현재 x만큼의 주식을 매입한다면 현재 평가액은 1500원 x (10+X) 일테고
이게 매수하는데 든 총 비용(1000x10 + 1500xX) 대비 1.1배가 나와야 된다는거라면
(1500*(x+10))/(1000*10+1500*x) = 1.1
(1500x(X+10)) = 1.1x(1000*10+1500*x)
1500X + 15000 = 11000+1650X
15000-11000 = 1650X-1500x
4000 = 150x
대략 26.6주네요..
저 상태에서 2000원까지 또 올랐다면
2000(10+26+x)=1.1(10000+26*1500+2000*x)
이런식으로 하시면 될겁니다
2019-05-06
193
글번호 128437
답변완료
수식 부탁드립니다.
안녕하세요.
항상 수고 많으십니다.
------------------------ 질문입니다 -----------------------------------------
선물 5분봉에서 첫 음봉이 나왔을 때,
그 때의 선물 종가값을 화면 전체에 가로선을 그리고 싶습니다.
(단, 첫봉의 음봉은 무시합니다.)
예를 들면, 5분봉에서
첫봉 두번째봉 세번째봉 네번째봉 다섯번째봉 여섯번째봉 일곱번째봉 .........
음봉 양봉 양봉 양봉 음봉 양봉 음봉
| |
무시 이 때의 값을 화면 전체에 가로선을 그리고 싶습니다
도움 부탁드립니다.
-------------------------------------------------------------------------------
감사합니다.
2019-05-06
233
글번호 128436
답변완료
수식수정부탁합니다.
안녕하세요.수고하십니다.
아래 수식수정좀 부탁합니다.
1.매수신호 발생시 청산된 이후는 정상적으로 재진입
2. 손절시는 손절된후 5이평을 종가상 돌파후 다시 5이평 아래로
하락돌파후 기존 진입 조건에 맞는경우만 진입
input : starttime(172700),endtime(010000),p(5);
var : Tcond(false);
if sdate != sdate[1] Then
SetStopEndofday(endtime);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
SetStopEndofday(0);
Tcond = true;
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
}
#완성봉20이평
var1 = ma(C,20);
#시가 수신시 20이평
var2 = (AccumN(c,19)+NextBarOpen)/20;
#시가 수신시 5이평
var3 = (AccumN(c,4)+NextBarOpen)/5;
var4 = ma(C,p);
if Tcond == true then{
if MarketPosition == 0 and var2 > var1 and var3 > var2 and NextBarOpen < var4 Then
buy("s",AtStop,NextBarOpen+PriceScale*1); }
if MarketPosition == 1 Then
{
ExitLong("bp",Atlimit,(O[BarsSinceEntry]+PriceScale*1)+(PriceScale*30));
ExitLong("bl",AtStop,(O[BarsSinceEntry]+PriceScale*1)-(PriceScale*15));
}
2019-05-06
210
글번호 128435
답변완료
종목검색
EV/EBITDA가 10 이하인 종목 검색식 부탁합니다.
2019-05-06
214
글번호 128434
답변완료
HiLoLineZigZag 의 함수수식 좀 알려주세요.
한가지 더 요청드립니다.
함수 수식을 알수있을까요?
HiLoLineZigZag 의 사용자함수 수식을 좀 알려주세요.
2019-05-05
313
글번호 128433
답변완료
이평선의 고저점 (키움수식 변환요청)
<지표명> 이평선의 고저점
수식1 %기간%,%종류%
M=ma(c,기간,종류)
수식2 저점
valuewhen(1, M<M(1), M)
수식3 고점
valuewhen(1, M>M(1), M)
지표조건설정
기간 30
종류 지수
P.S: 키움수식인데 예스수식으로 변환 부탁합니다.
아,이 수식이 지수30이평선의 골든크로스와 데드크로스지점에 표시가 되는 수식인데
홈페이지보니 예스트레이더코인 전체공개해놓은 지표중에 전의 이평선의 골든시점보다 현재 골든시점이 더 교차값이 크면 선을 더 굵게 표시해서 현재값이 높아졌음을 알수있게 표시하고 전 골든시점보다 적으면 가늘게 표시해서 구분이 가도록 표시가 되게 했는데 제가 요청한 수식에서 그렇게도 가능하게 수식을 바꿔서 더 추가해서 수식을 만들수 있으면 좋겠는데 가능할지요? 가능하면 그리 표시되게 수식부탁합니다. 반대로 전 데드보다 교차값이 크면더 굵게 표시와 전데드보다 교차값이 적으면 가늘게 표시되는것도 함께 되도록요.
사진 첨부하였습니다. 보시고 참고해서 제가 말씀드린대로 수식 요청드립니다.
2019-05-06
702
글번호 128432
답변완료
수식부탁드립니다
#,안녕하세요.
$,아래수식에서 도움 부탁드립니다.
Input :Length1(240);
Var : TLen1(0),Tma1(0);
TLen1 = Ceiling((Length1 + 1) * .5);
Tma1 = ema(ema(C, TLen1), TLen1);
plot1(DayOpen(0),"시가");
Plot2(Tma1, "삼각가중",iff(tma1>tma1[1],RED,LGREEN));
plot3((DayHigh(0)+daylow(0)+dayclose(1))/3,"포인트");
Text_Delete(var1);
Text_Delete(var2);
var1 = Text_New(sdate,stime,(DayHigh(0)+daylow(0)+dayclose(1))/3," D(HLC):"+NumToStr((DayHigh(0)+daylow(0)+dayclose(1))/3,2));
var2 = Text_New(sdate,stime,DayOpen(0)," 시가:"+NumToStr(DayOpen(0),2));
Text_SetStyle(var1,5,2);
Text_SetStyle(var2,5,2);
Text_SetColor(var1,LMAGENTA);
Text_SetColor(var2,MAGENTA);
----------------------------------------------------------------------------------
1,plot1=A, plot2=B, plot3=C 라 칭한다.
ㅡ,A<C 배열일때 현재가가 A,C 선들중 어떤선을 터치하더라도 터치하는 선마다
매수신호와 소리출력.
ㅡ,A>C 배열일때 현재가가 A,C 선들중 어떤선을 터치하더라도 터치하는 선마다
매도신호와 소리출력.
2, ㅡ,배열관계없이 현재가가 B선을 아래에서 위로 상향터치시 매도신호와 소리출력
ㅡ,배열관계없이 현재가가 B선을 위에서 아래로 하향터치시 매수신호와 소리출력
1,2번을 하나의 수식으로 작성부탁드립니다
$$$, 감사합니다.
2019-05-06
224
글번호 128431