커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1470
글번호 230811
답변완료
트레일링 스탑 수식 문의 드립니다.
안녕하세요..항상 많은 도움 감사드립니다. 트레일링 스탑 설정 시스템식에 대해서 문의 드립니다.
if A then
buy("A매수");
if B then
sell("B매도");
A매수로 진입하였을때 나스닥 선물 기준으로 50pt(틱이 아니라 포인트)이상 수익시에는
최고 수익점에서 -20pt(포인트)가 빠지면 청산하라....는 시스템식을 어떻게 작성하면 될까요? 반대 매도의 경우도 부탁드립니다.
항상 건강하시고 좋은 연말 보내시길 바립니다.
2023-12-27
1112
글번호 175236
답변완료
문의드립니다
분할 청산 관련 질문입니다.
Exitlong("1", atstop, ~~);
Exitlong("2", atstop, ~~);
청산3
청산4....
이런 식으로 계속 분할 청산을 해 나가다 보면 1번 분할 청산을 하고 다시 상승했다가
내려오면 다시 1번 분할 청산을 수행하게 되네요.
1번 청산 2번 청산 3, 4...이 중복없이 순서대로 진행되도록 조절하고 싶습니다.
단 완전히 청산되기 전이라도 새로운 피라미딩 진입이 일어난다면 다시 청산1부터 새로 시작하도록 구상하고 있습니다.
좀 복잡한데 언제나 예스스탁에 감사드립니다.
2023-12-27
1043
글번호 175226
답변완료
문의 드립니다
안녕하세요
키움수식 입니다 예스수식으로 전환부탁드립니다
((2*((predayhigh()+predaylow()+predayclose())/3)
-predayhigh())+(predayhigh()+predaylow()+predayclose())/3
-predayhigh()+predaylow())/2
감사합니다
2023-12-27
1213
글번호 175225
답변완료
지수추가
수고하십니다.
코스피per 코스닥per
예스트레이더의 지수의 특수지수에 거래소에서 제공하는 시장per 를 추가 해 주셨으면 합니다.
2023-12-27
1187
글번호 175224
답변완료
부틱드립니다
수고하십니다
아레수식은 키움수식입니다 예스수식으로 부탁드립니다
수식1
A=csar(af,maxAf);
valuewhen(1, crossup(C, A),C)
수식2
A=csar(af,maxAf);
valuewhen(1, crossdown(C, A),C)
2023-12-27
1151
글번호 175223
답변완료
부탁드립니다.
1.
수식
crossup(c, bbandsup(20,2))
and sum(if(v(1)*4<=V,1,0),40) >=1
and V>V(1)*배수
and C>O
지표변수
배수 3
2.
수식
A=shift(close,-midPeriod+1);
B=ma(C,25);
K=CrossUp(A,B);
shift(K,24)
지표변수
midPeriod 25
1번2번 종목검색 부탁드립니다.
감사합니다.
2023-12-27
1124
글번호 175222
답변완료
문의 드립니다.
input : HMA(14);
var : src(0),hi(0),lo(0),ema1(0),ema2(0),diff(0),mi(0);
var : md(0),sb(0),sh(0),mdc(0);
src = (h+l+c)/3;
hi = iff(isnan(hi[1]) == true , ma(h, HMA) , (hi[1] * (HMA - 1) + high) / HMA);
lo = iff(isnan(lo[1]) == true , ma(l, HMA) , (lo[1] * (HMA - 1) + low) / HMA);
Ema1 = Ema(src,HMA);
Ema2 = Ema(Ema1,HMA);
diff = Ema1-Ema2;
mi = Ema1+diff;
md = IFf(mi>hi , (mi-hi) , IFf(mi<lo , (mi - lo) , 0));
sh = md-sb;
mdc = iff(src>mi,iff(src>hi,lime,green),iff(src<lo,red,orange));
plot1(md, "MACD", mdc);
시스템식 2개 만들어주세요.
첫번째 조건은
선의 색상이 lime색으로 바뀌면 매수 신호 다른색으로 바뀌면 매도 신호
---------------------------------------------------------------------------
두번째 조건은
선의 색상이 red색으로 바뀌면 매도 신호 다른 색으로 바뀌면 매수 신호로 해서
각각 다른 시스템식으로 만들고 싶은데 가능할까요?
------------------------------------------------------------
안되면
red 색에서 lime 색으로 바뀔때 매도 신호
lime 색에서 red 색으로 바뀔때 매수 신호가 나오게 해주세요.
2023-12-27
927
글번호 175221
답변완료
85133 재질문입니다. 제 의도를 잘못 이해하신 듯 합니다.
아 그냥 제가 직접 작성해서 성공했습니다
감사합니다.
------------
dayofweek 함수는 저도 알고 있는데요.
제 의도는 "매년" 특정한 날짜의 요일에 따라 진입 조건을 달리하고 싶은겁니다.
아래에 작성해주신 내용은 올해에 한정되어서 딱 올해 날짜를 넣어서 요일을 반출한건데요.. 제가 원하는건 그게 아니라,
매년 특정 날짜가 되면, 그 날짜의 요일을 확인
그 날짜의 요일에 따라서 12월 특정 날짜에 매수 진입
그리고 그 다음 해의 특정 날짜에 매도
이런겁니다.
12월 1일, 12월 2일, 3일 이런거는 그냥 제가 예시로 들어드린 거고요~
sdate를 한다음에 left에서 4자리 반출 거기에, 10000을 곱하고 1201을 더한 값을 넣어서 매년 12월 1일의 요일을 뽑을수는 있을듯 한데,
제가 하필 12월 말에 사서, 내년 1월로 넘어가서 매도를 해야하는 바람에..
이게 좀 복잡해지더라고요..
아주 정확히 다시 말씀드리면,
1. 매년 12월 20일의 요일을 확인
2. 12월 20일의 요일이 월요일이면, 12월 24일 9시 1분에 사서 내년 1월 4일 3시 20분에 매도
3. 12월 20일의 요일이 화요일이면, 12월 23일 9시 1분에 사서 내년 1월 3일 3시 20분에 매도
입니다.
data1은 1분봉,
data2는 필요하신 경우 일봉 사용해주셔도 좋습니다.
감사합니다.
2023-12-27
1297
글번호 175220
답변완료
타종목의 전일 고가를 가져오는 방법(2)
안녕하세요
답변 감사합니다.
타종목의 전일 고가를 가져올때 알려주신대로 이렇게 하면 정상으로 나오는데요
MessageLog("** Data2 High = %.2f",Data2(HighD(1)));
MessageLog("** Data2 High = %.2f",Data2(HighD(2)));
MessageLog("** Data2 High = %.2f",Data2(HighD(3)));
이렇게 For 문 사용하면 동일한 값이 출력됩니다.
3개가 아니라 10개를 구하려면 제 수식을 어떻게 고치면 될까요?
For Cnt = 1 To 3
{
MessageLog("Data2 High = %.2f",Data2(HighD(Cnt)));
}
감사합니다.
2023-12-27
1310
글번호 175219