커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5409
글번호 230811
답변완료
수정부탁드립니다.
안녕하세요?
아래수식을 조금만 고쳐주시면 감사하겠습니다.
***내용
CME전용으로만 사용하려고합니다.
그리고 시작시간과 끝나는 시간을 외부변수로 설정하고싶습니다.
감사합니다.
input : 익절틱수(50),손절틱수(50),n(10);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
if C > O and C[1] < O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b1");
}
if C > O and C[1] < O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) then
buy("b2");
}
if C < O and C[1] > O[1] and
O < C[1] and C > O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s1");
}
if C < O and C[1] > O[1] and
O > C[1] and C < O[1] Then
{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) then
sell("s2");
}
2019-10-08
171
글번호 132587
답변완료
검색식 요청
몸통보다 윗꼬리가 더큰 일봉이 발생한 날의 고가 저가 시가 종가를
최근부터 역순으로 찾는 검색식 부탁드립니다
2019-10-08
183
글번호 132585
답변완료
진입 매수 매도 글씨 위치 변경
Input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
# 매수/매도청산
If CrossUP(value, 0) Then
{
Buy("매수");
}
# 매도/매수청산
If CrossDown(value, 0) Then
{
Sell("매도");
}
사진처럼 매수 일때는 밑으로 매도 일때는 위로 글씨 위치와 글씨 크기가 조정 되었으면 합니다
캔들 때문에 글씨가 잘 안보여서요
변경할수 있게 부탁 드립니다
2019-10-08
196
글번호 132584
답변완료
수식 해석좀 부탁드립니다.
수식 공부하다가 모르겠는 부분이 있어서 문의 드립니다.
accumn(bids-asks,dayindex+1) 이게 뜻하는게 뭔지 알고싶습니다.
2019-10-07
235
글번호 132579
답변완료
수식 작성 부탁드립니다.
*매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함
*매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함
*당일 손절 20틱, 익절 40틱시 매매종료
*매매시간 : 오전6시59분~오전8시
*썸머타임 시간변경 스크립트도 추가 부탁드립니다.
2019-10-07
182
글번호 132578
답변완료
시스템 문의 드립니다
안녕하세요.
시스템 문의 드립니다.
안녕하세요.
시스템 문의 드립니다.
하기 식에 다음 사항을 추가하고자 합니다.
하기 식은 20일 저점/고점에 닿았을 시 반대로 들어가는 역매매전략입니다.
다만, 하기 식은 신호 발생봉의 길이가 10틱이든 20틱이든..
그 힘을 판단하지 못하고, 무조건 20일 저점을 돌파하면 매수하는 식입니다.
이에 하기 식에 20일 저점 돌파 시 매수의 힘이 셀 때만
매수하는 필터를 걸고자 합니다.
1) 매수
조건1) 20일 저점 돌파 시
조건2) 돌파 시 봉이 양봉일 시
조건3) 돌파 시 봉의 길이가 50틱 이상이고,
조건4) 돌파 시 봉의 길이가 직전봉의 고점/저점의 길이의 1/2 이상일시
조건5) 돌파 시 봉의 저점이 직전봉의 저점보다 30틱 이상 내려가지 않았을 시
위 조건 1), 2), 3), 4), 5) 만족 시 매수
2) 매도
매도는 매수의 반대
감사합니다!
input : period(50), P(20);
var1 = ma(c, period);
var2 = highest(H,P);
var3 = Lowest(L,P);
if c < var1 and crossup(c,var3[1]) Then
buy("매수");
if MarketPosition == 1 and CrossDown(c,var2[1]) Then
exitlong("매수청산");
if c > var1 and CrossDown(c,var2[1]) Then
sell("매도");
if MarketPosition == -1 and CrossUp(c,var3[1]) Then
ExitShort("매도청산");
2019-10-07
188
글번호 132577
답변완료
시스템 문의 드립니다
안녕하세요.
어제 문의드렸었는데, 다시 재문의 드립니다.
하기 식에서 다음 사항 추가 부탁드립니다.
하기 식은 20일 고점/저점을 돌파 시에 매수/매도하는 식입니다.
1) 매수
- 20일 고점 돌파 시 바로 매수하지 않고 해당봉을 거래를 위한 [참고봉]으로 저장
- 조건1: 위 [참고봉] 다음봉이 [참고봉]의 고점보다 30틱을 넘어가면 매수
- 조건2:
a) 위 조건1이 만족되지 않았을 시(즉, 조건1에 의해 매수되지 않았을 시),
b) 위 [참고봉]의 저점보다 [참고봉] 다음봉의 저점이 더 내려가지 않았을시
>> 위 조건 a), b)를 만족하면 [참고봉] 다다음봉에서 매수
2) 매도
- 위 매수의 반대 로직
감사합니다.
input : period(50), P(20);
var1 = ma(c, period);
var2 = highest(H,P);
var3 = Lowest(L,P);
if c > var1 and crossup(c,var2[1]) Then
buy("매수");
if MarketPosition == 1 and CrossDown(c,var3[1]) Then
exitlong("매수청산");
if c < var1 and CrossDown(c,var3[1]) Then
sell("매도");
if MarketPosition == -1 and CrossUp(c,var2[1]) Then
ExitShort("매도청산");
2019-10-07
176
글번호 132576
답변완료
시스템 오류??
크루드오일 1분봉 연결선물로 시뮬레이션 해보고 있습니다.
유진하고 한국투자 이프렌드에서 둘 다 테스트 해보았는데, 이해 안되는 부분이 있어 문의 드립니다.
If MarketPosition == 0
AND C > DayOpen + 0.5 Then Buy();
If MarketPosition == 0
AND C < DayOpen - 0.5 Then
{
Sell();
If Date >= 20190926 Then MessageLog("SELL!!!!!!!!!!");
}
SetStopEndofday(60000);
예를 들어, 2019년 9월 26일 21시 37분 SELL!!!!!!!!!! 메시지가 찍히는데, 실제 시뮬 차트에서는 sell 이 안됩니다.
9월 17일 16:04:00
9월 17일 19:32:00
이런 경우도 차트에서 sell 도 안나오고, MarketPosition 을 MessageLog 로 찍어봐도 0 으로 나옵니다.
뭘 잘못한 건가요???
2019-10-07
200
글번호 132575
답변완료
부탁 드립니다.
도움주심에 감사 드립니다.
다음 수식이 전일과의 비교가 아닌
지정된 일시이후
예를 들어 2분봉 차트에서 120분동안
양봉의 개수의 합과 거래량의 합을 구하여
그 지정된 일시의 120분 전의 값을 구하여
var1의 값을 구하고자 합니다.
만약에 그것이 안된다면
지정된 일시 이후 120분 동안의 값과
그 값이 종료된 일시 이후
120분 동안의 값을 구하고
var1의 값을 구하고자 합니다.
var : 양봉개수(0),양봉1(0),양봉2(0),전일(0);
var : 양봉v(0),양봉v1(0),양봉v2(0),전일v(0);
if bdate != bdate[1] Then
{
양봉1 = 양봉개수[1];
양봉2 = 양봉1[1];
양봉v1 = 양봉v[1];
양봉v2 = 양봉v1[1];
}
if C > O then
{
양봉개수 = 양봉개수 +1;
양봉v = 양봉v +v;
}
전일=양봉1-양봉2;
전일v=양봉v1-양봉v2;
var1 = 전일v/전일;
plot1(var1);
참고가 될만한 유사한 수식)
input:단위(120);
input:시작일(20190801),시작시간(070000);
var : S1(0),D1(0),TM(0),TF(0);
var : Tcond(false);
if Tcond == false and sdate >= 시작일 and stime >= 시작시간 Then
Tcond = true;
if tcond == true and Tcond != Tcond[1] then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%단위;
if (Tcond == true and tcond != tcond[1]) or (tcond == true and tcond == tcond[1] and TF < TF[1])Then
{
}
}
2019-10-07
197
글번호 132574