커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4708
글번호 230811
답변완료
고점,저점 수식 부탁드려요..
90틱 또는 200틱 사용할거구요...
가장최근에 만들어진 폭(고점과 저점)이 28틱 이상벌어지면 챠트상에
고점과 저점을 그리고 싶습니다.
예를들어 고점과 저점이 23틱 벌어졌을경우...
전에 그려진 라인만 유지한채 지금만들어진 고점,저점은 무시하고 넘어가기를 원하구요..
고점과 저점이 28틱 이상 벌어졌을경우에만 벌어진 폭에대해서 고점라인 저점라인
그리는 것 부탁드립니다.
****** 28틱 이상 벌어졌을겨우
var1 = 고점;
var2 = 저점;
var3 = 고점,저점 의 중심값;
var4 = 고점과 중심값(var3)의 중심값;
var5 = 저점과 중심값(var3)의 중심값;
늘 수고해주셔서 감사합니다.
2015-12-15
149
글번호 93452
답변완료
주봉수식 부탁드려요
주식에서사용할거구요...분봉챠트상에서 주봉데이터를 만들어서 사용하고 싶습니다.
var1 = 주봉의 가장최근2개의(캔들)의 최고점가격....
var2 = 주봉의 가장최근2개의(캔들)의 최저점가격....
var3 = 주봉의 가장최근2개의(캔들)의 종가가격....
var4 = 주봉의 가장최근2개의(캔들)의 중심가격....
틱봉, 분봉에서 사용하고자 합니다.
감사합니다.
2015-12-15
121
글번호 93451
답변완료
수식수정요청
NO.45500 와 관련입니다.
미국 지수선물(S&P 500) 인 경우에 대하여 다시한번 정리 해 주시면 감사하겠습니다.(당일청산 및 강제청산 없음)
2015-12-16
119
글번호 93450
답변완료
월봉
안녕하세요 수고많으세요
1)N"년간의월봉의평균값을일봉에서 돌파하는검색식
2)월. 주 봉의 (고 중 저 )의값을 일.분,틱봉에표현하고싶습니다.
2015-12-15
138
글번호 93449
답변완료
문의
input : Period(100);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Input : PercentRLen(10), OverSold(10), OverBought(90), BTrigger(62), STrigger(38),당일수익(90);
Var : PcntR(0), AvgValue(0), BSetup(False),Ssetup(False),NP(0),PreNP(0),dayPL(0),profit(0),T(0);
Lowval= Lowest(Low, Period+1);
Highval = Highest(High, Period+1);
For counter= 0 To Period {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period-DownVel)/Period;
UpAroon = 100*(Period-UpVel)/Period;
if UpAroon >= 30 or DnAroon >= 30 Then{
if crossup(dnaroon , uparoon) Then
buy("반대매수");
if crossup(uparoon , dnaroon) Then
sell("반대매도");
}
if UpAroon <= 30 or DnAroon <= 30 Then{
if crossup(dnaroon , uparoon) Then
Sell("매도");
if crossup(uparoon,dnaroon) Then
Buy("매수");
}
위식에서 crossup 해서 교차한 시점이 30 이하 나 이상일때 매수 매도 진입할수있게하고싶습니다.
교차할때 값을 구해서 그값이 30 이하 OR 이상일때 진입할수있도록 입니다
#########################################################
아래식에서 포지션 진입후 예로 매수 진입했으면 청산신호가 나올시에
손실중이면 청산하지 말고 진입가 + 2틱 일때 청산하게 해주세요 단: 대장매수,,대장매도 신호가 나오면 손실중이라도 무조건 청산하게 하고요
input : b_time1(000000),e_time1(240000),목표청산1(3);
input : stoK_p11(150),stoK_p12(250),stoK_p13(10);
input : ma_p11(15),ma_p12(3),ma_p13(5),ma_p14(10),ma_p15(10),ma_p16(20),ma_p17(15); # 이부분에서 ma_p13(15),ma_p17(15)
input : sto1(10),sto2(6);
Var:stoK1(0),stoD1(0),TRIXv(0),TRIXsig(0),stok2(0),T(0);
stok2 = StochasticsK(sto1,sto2);
If b_time1 <= Time and Time <= e_time1 Then
{
stoK1 = StochasticsK(stoK_p11,stoK_p12);
stoD1 = StochasticsD(stoK_p11,stoK_p12,stoK_p13);
If countif(ma(C,ma_p11)[1] < ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] <= ma(C,ma_p13)[1] and ma(C,ma_p12) > ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] < ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] < ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] < ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] < ma(C,ma_p17),1) == 1
Then
{
T = 1;
if MarketPosition == -1 Then
ExitShort("대장매수");
}
If countif(ma(C,ma_p11)[1] > ma(C,ma_p11),1) == 1
and (ma(C,ma_p12)[1] >= ma(C,ma_p13)[1] and ma(C,ma_p12) < ma(C,ma_p13))
and countif(ma(C,ma_p14)[1] > ma(C,ma_p14),1) == 1
and countif(ma(C,ma_p15)[1] > ma(C,ma_p15),1) == 1
and countif(ma(C,ma_p16)[1] > ma(C,ma_p16),1) == 1
and countif(ma(C,ma_p17)[1] > ma(C,ma_p17),1) == 1
Then
{
T = -1;
if MarketPosition == 1 Then
ExitLong("대장매도");
}
}
if T == 1 then{
if countif(stok2>stok2[1],2) == 1 and stok2[1] < 30 Then
buy("매수");
if countif(stok2<stok2[1],2) == 1 and stok2[1] > 70 Then
ExitLong("매수청산");
}
if T == -1 then{
if countif(stok2<stok2[1],2) == 1 and stok2[1] > 70 Then
sell("매도");
if countif(stok2>stok2[1],2) == 1 and stok2[1] < 30 Then
ExitShort("매도청산");
}
2015-12-16
118
글번호 93448
큰바위얼굴 님에 의해서 삭제되었습니다.
2015-12-15
0
글번호 93447
답변완료
문의드립니다.
안녕하세요.
위 그림처럼 선물 분봉차트에서
당일을 포함한 n일 간에
첫번째 그림의 저점에서 고점을 찍고 하락할 때
1. 고점~저점 사이의 최저점 HL
2. 고점~저점의 0.5라인, 0.618라인을 구하는 수식
두번째 그림의 고점에서 저점을 찍고 상승할 때
1. 저점~고점 사이의 최고점 LH
2. 저점~고점의 0.5라인, 0.618라인을 구하는 수식에서
위 두가지 상황이 어느 것이 나오든지 적용할 수 있는 수식을 알려주세요.
수고하세요.
2015-12-15
164
글번호 93446
답변완료
문의드립니다
1.
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점+var1*1.000);
plot2(고점+var1*0.618);
plot3(고점+var1*0.236);
plot4(고점);
plot5(저점+var1*0.724);
plot6(저점+var1*0.618);
plot7(저점+var1*0.500);
plot8(저점+var1*0.382);
plot9(저점+var1*0.236);
plot10(저점);
plot11(저점-var1*0.236);
plot12(저점-var1*0.618);
plot13(저점-var1*1.000);
.....................................................
상기지표 적용할때 마다 직접 지표 적용 시작 시간과 종료시간을 넣을 수 있도록 해주세요
즉 현재 상기 지표의 변수를 보면
고점과 저점을 직접 입력할 수 있게 되어 있는데
이 변수항에 고점도 특정시간대 부터의 고점
저점 역시 특점 시간대의 저점 이렇게 입력할 수 있도록 ..
즉 시간대도 입력할 수 있도록 바꾸어 주세요
(아니면 언제 이후 부터의 저점 고점 이렇게라도)
특정 시간대의 고점과 저점을 적용시키고 싶은데 상기 지표로는 그게 안되서 그럽니다
참 틱봉도 가능하다면 그렇게 해주세요
2.
저점먼저 고점 나중에 찍을 경우
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점);
plot2(고점-var1*0.236);
plot3(고점-var1*0.382);
plot4(고점-var1*0.500);
plot5(고점-var1*0.618);
plot6(저점);
plot7(저점-var1*0.236);
고점먼저 저점 나중에 찍을 경우
input : 고점(265),저점(264);
var1 = 고점-저점;
plot1(고점+var1*0.236);
plot2(고점);
plot3(저점+var1*0.618);
plot4(저점+var1*0.500);
plot5(저점+var1*0.382);
plot6(저점+var1*0.236);
plot7(저점);
...............................................................................
2번 지표 역시 1번 지표 처럼 변수에 특정 시간대를 입력 할 수 있도록 해주세요
감사합니다
2015-12-15
136
글번호 93438
답변완료
지표 문의 드립니다
해보다가 잘 안되서 문의 드립니다..
첨부파일에
1. 그림1번 sa=ma(c,4)를 넘으면 그림2번에 sa가 깨질 때까지에 최고값 H를 구하고
2. crossdown(종가) 되면 ii=1, H를 넘어버리면 전부 초기화,
3. 안 넘고 ii=1 상태에서 다시 그림 3번에 crossup(종가)할때 까지에 최저점 L를 구해서
(이때 crossup은 그림A처럼 L를 깨지 않은 상태에서 crossup-->crossdown-->crossup 하면 true로)
4. true 상태에서 L를 깨면 ii=2 (그럼4번)
5. ii=2 상태에서 다시 그림 5번에 crossup(종가)할때 까지에 최저점 L2를 구해서
(이때 crossup은 B처럼 L2를 깨지 않은 상태에서 crossup-->crossdown-->crossup 하면 true2로)
4. true2 상태에서 L2를 깨면 ii=3번(그럼6번)
5. ii=3 상태에서 다시 7번에 crossup(종가)하면 true3 신호 발생
5. 그림2번에 H를 넘으면 전부초기화는 공통
도움주셔서 정말 감사합니다..
2015-12-15
161
글번호 93437