커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7559
글번호 230811
답변완료
문의합니다.
Input: Period(5), Period1(10), Period2(20);
Var: 이평1(0), 이평2(0), 이평3(0), sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0),GP(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GO = O - sumGap;// 갭보정 시가
GH = H - sumGap;// 갭보정 고가
GL = L - sumGap;// 갭보정 저가
GC = C - sumGap; // 갭보정 종가
GP = dayopen - sumgap;
이평1 = (GP-ma(GC, Period))+GP;
이평2 = (GP-ma(GC, Period1))+GP;
이평3 = (GP-ma(GC, Period2))+GP;
Plot1( 이평1, "이평1");
Plot2( 이평2, "이평2");
Plot3( 이평3, "이평3");
Input : sig1(5), sig2(10), sig3(20);
var1 = ma(GC,sig1);
var2 = ma(GC,sig2);
var3 = ma(GC,sig3);
Plot10(var1, "역이평1");
Plot20(var2, "역이평2");
Plot30(var3, "역이평3");
수고하십니다.
위의식을 이평과 역이평이 클로스 되는곳에서 이평과 역이평이 수직으로
그려지면서 다음봉부턴 다음 크로스까지 직선으로 구현했으면 합니다.
(라인들이 타원이 아닌 직선 으로구현)
2013-06-13
299
글번호 64267
답변완료
부탁드립니다
1.
최대수익대비하락 (틱차트,분차트)
0틱 ~10틱 수익일때 수익이-5틱까지 하락하면 청산
10틱~20틱 수익일때 수익이 2틱까지 하락하면 청산
20틱~30틱 수익이면 수익이 5틱까지 하락하면 청산
30틱~40틱 수익이면 수익이 10틱까지 하락하면 청산
40틱~50틱 수익이면 수익이 20틱까지 하락하면 청산
50틱~60틱 수익이면 수익이 30틱까지 하락하면 청산
60틱 이상 수익이면 수익이 40틱까지 하락하면 청산
--------------------------------------------------------------------
if MarketPosition == 1 Then{
if IsEntryName("b1") == true and CrossDown(n지표,var1-3000) Then
exitlong("bx1");
}
if MarketPosition == -1 Then{
if IsEntryName("s1") == true and crossup(n지표,var2+3000) Then
ExitShort("sx1");
}
n지표값이 당일최고 n지표값보다 3000 떨어지면 매수청산
n지표값이 당일최저 n지표값보다 3000 오르면 매도청산
2.
n지표의 당일최고/당일최저 하락/상승이 아닌
n지표의 진입시점에서 3000 하락/상승시 청산을 하고 싶습니다
------------------------------------------------------------
3.
n지표값이 진입시점보다 1500떨어지거나 당일최고 n지표값보다 3000 떨어지면 매수청산
n지표값이 진입시점보다 1500오르거나 당일최저 n지표값보다 3000 오르면 매도청산
2013-06-12
196
글번호 64266
답변완료
시스템부탁드립니다
if date > date[1]+30 Then{
var1 = O;
if C > var1 Then
buy();
}
if crossup(c,var1) Then
buy();
if CrossDown(c,var1) Then
sell();
if sdate == 00000000 Then
exitlong();
이상태에서
월 마지막 다음날종가에 일단 모두청산
부탁드립니다.
예를들어 3월 31일은 일단 무조건 청산
그렇다면 4월 1일날 모두청산이 되도록 부탁드립니다.
2월은 28일 다음 3월 1일이 되겠네요
2월 28일날 종가에 모두 청산이 혹 가능하다면 그렇게 해주세요
제가 알기로는 마지막날 이라는 것을 차트가 인지를 못하는걸로 압니다~
잘부탁드려요~~
2013-06-12
248
글번호 64265
답변완료
시스템부탁드립니다
1)
6이동평균선이 상행이면서
지금의 캔들과 6개전캔들의 종가를 비교하여 위 일경우
매수하라
반대 하행이면서
6개전 캔들의 종가를 비교하여 낮을 경우 매도
부탁드립니다.
2)
월시초가 위 이면서
30분봉에서 5이평선이 상행이면서
30분봉에서 지금의 캔들과 5개전 캔들의 종가를 비교하여 위 이면서
5분봉에서 5이평선이 상행이면서
5분봉에서 지금의 캔들과 5개전 캔들의 종가를 비교하여 위 이면서
1분봉에서 20이동평균선이 상행이면서
1분봉에서 지금의 캔들과 20개전 캔들의 종가를 비교하여 위 이면
매수를진입
그렇지 않을경우 매도청산하라
반대로도 매도도 가능하도록 부탁드립니다.
3)
월시초가 위 이면서
아침 9시 30분 이후이면서
30분봉에서 5이평선이 상행이면서
30분봉에서 지금의 캔들과 5개전 캔들의 종가를 비교하여 위 이면서
1분봉에서 20이동평균선이 쌍바닥일경우 매수를 하라
매수후 매수가 된 캔들의 저점을 붕괴시 손절or청산
매수가 된 이후 5일선이 5파동에 음봉으로 5일선을 무너뜨리거나
5일선이 쌍봉일경우 매도하라
반대로도 매도도 가능하도록 부탁드립니다.
2013-06-12
228
글번호 64264
답변완료
AtStop , AtLimit 에 대해
저번에 AtStop , AtLimit 에 대해 질문을 드렸을때
특정값 이상의 시세가 발생할때 buy신호 발생하고자 하시면 atstop
특정값 이하의 시세가 발생할때 sell신호 발생하고자 하시면 atstop
근데... 또 다시 한번 질문 드리면서 뭐가 잘못 되었는지 한번 문의 드립니다.
IF MarketPosition() == 0
AND sTime < 143000
AND DAY_저점 > C
Then {
Sell("매도",AtStop,DAY_저점);
}
근데 위에 식은 보기에 조건 즉시 만족 하는 것이 아니라 일단은 " DAY_저점 > C "
이부분이 만족해야 하니깐 결국 제가 하고 픈건 DAY_저점 이하가 되면 신호를 발생하기
위해 Sell("매도",AtStop,DAY_저점); 게 해 놓았는데
결국 신호 나오는건 보면 " DAY_저점 > C " 이 부분 때문에 조건 즉시 만족하면 나오는게
아니라 다음봉에 DAY_저점 보다 현재가가 낮다면 신호가 나옵니다.
그러면 .. 답변 해 주신대로 한다면 ..
IF MarketPosition() == 0
AND sTime < 143000
AND DAY_저점 < C
Then {
Sell("매도",AtStop,DAY_저점);
}
이렇게 하면 설명 하신대로 되어야 할꺼 같습니다.
즉 전봉에서 " DAY_저점 < C " 이라면 값을 셋팅하고 현재봉에서 DAY_저점 이하가 되면 매도가 들어 가라..
이렇게 이해하는게 설명해 주신 부분 대로 라면 맞는거 같은데..
문제는 물론 제가 의도 하는 바는 DAY_저점 이란 부분을 체크 해서 그 DAY_저점 이란 걸
깨게 되면 신호를 발생하고자 하는게 제 목적입니다.
한데 " AND DAY_저점 < C "
이렇게 조건을 넣게 되면 신호 자체가 발생을 하지 않습니다.
그렇다면
IF MarketPosition() == 0
AND sTime < 143000
Then {
Sell("매도",AtStop,DAY_저점);
}
조건을 체크 하는 부분을 빼면 신호가 나오냐... 그것도 신호 자체가 나오지 않습니다.
해서 어쩔수 없이
IF MarketPosition() == 0
AND sTime < 143000
AND DAY_저점 > C
Then {
Sell("매도",AtStop,DAY_저점);
}
이렇게 조건을 주면 종가가 DAY_저점 보다 낮다면 이란 신호를 넣게 되면 신호는
나오는데 AtStop 을 쓰면서 DAY_저점 이란 값 이하가 되면 바로 신호를 내게 할려고
했는 효과가 나질 않습니다.
왜 그럴까요..?
제가 뭘 할려고 하는지는 아시겠죠 ? 시원한 답변 부탁 드립니다..
2013-06-12
219
글번호 64263
러블리 님에 의해서 삭제되었습니다.
2013-06-13
23
글번호 64262
답변완료
분할매도
어떠한 수식에서 매수 신호가 발생 하였고
청산은 익절 포인트를 잡아서 익절을 시킵니다
매수 진입할때 100계약을 매수 하고 익절은 3.0포인트 올랐을때 익절을 하도록 기본
로직이 짜져 있습니다
0.5포인트 오를때부터 3.0까지 10등분을 나누어서 10계약씩 익절을 시키고 싶습니다
식을 어떤식으로 만들어야 하나요?
2013-06-12
171
글번호 64261
답변완료
질문
데이용으로 작성하려고 합니다.
분봉에서 현재봉이 당일 저가를 만든봉이면 만들때 마다 10주씩 매수
2013-06-12
177
글번호 64259
답변완료
지표식 재문의합니다.
Plot1(data1(h)+data2(H));
plot2(data1(c)+data2(c));
plot3(data1(l)+data2(l));
1) 이와 같이 만들어진 지표를 익일에 전일 고가, 전일 종가, 전일 저가 를 구현했으면 합니다.
2) 그리고, 상기 지표의 종가를 가지고, 분봉상의 5, 20, 60, 120의 이동평균선을 만들었으면 합니다.
지난번, 한 번 질문 드렸었는데 이평이 일봉상 이평으로 나오는 것 같습니다. 이를 그냥 분봉상의 이평으로 했으면 합니다.
감사합니다.
2013-06-12
185
글번호 64257