커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1753
글번호 230811
답변완료
수식 문의
안녕하세요?
data1 ~ data4 에 4개의 종목이 있습니다.
a1 > 0 이면 data1의 종목을 n1개 사고, a1 <=0 이면 data1의 종목을 사지 않고, 또 그 전에 보유하고 있었으면 다 팝니다.
주식 종목이므로, 매도진입은 안합니다. 즉, 판다는 이야기는 그 종목 보유 안 한다는 말씀입니다.
... 이런식으로
a4 > 0 이면 data4의 종목을 n4개 사고, a4 <=0 이면 data4의 종목을 사지 않고, 또 그 전에 보유하고 있었으면 다 팝니다.
즉, a1 ~ a4 모두 0 이하면 다 팔고 가만히 있기에, 직전 지표값에서 수평선이 그어지고 있어야 합니다.
a1, a3 > 0 이고 a2, a4 <0 이면 data1, data3 종목만 각각 n1, n3개 사서 보유합니다.
이렇게 했을 때의 손익을 그려주는 지표를 부탁드립니다.
감사합니다.
2022-05-16
896
글번호 158876
답변완료
수식부탁드립니다
a4=BBandsC(Period,D1);
A=MACD(short,long);
B=MACD(short,long)-eavg(MACD(short,long),signal);
a3=eavg(MACD(short,long),signal);
m10=ma(c,10,지수);
a2= a>a3 && a>0 && a4<l && o(1)>=c(1) && o<=c && m10>l;
a2 && !a2(1)
period 20
d1 2
short 12
long 26
signal 9
2022-05-16
902
글번호 158875
답변완료
문의
안녕하세요
해외선물 질문합니다
해외선물에서 신규매수 1계약후 이 계약을 청산하지 않은 삳태에서
신규매도 1계약 진입해서 신규매수와 신규매도 1계약이 공존하는 수식이 가능한가요?
(가능한 지 여부를 알고싶습니다)
2022-05-15
827
글번호 158874
회원 님에 의해서 삭제되었습니다.
2022-05-15
68
글번호 158873
답변완료
수식 수정부탁드립니다.
안녕하십니까
아래수식 잘 사용중입니다.
조건을 추가하고 싶어 글남깁니다.
--------------------------------------------
var : mav(0);
mav = ma(C,5);
if Bdate != Bdate[1] Then
{
Condition1 = False;
var1 = 0;
Var2 = 0;
}
var1 = var1+v;
Var2 = Var2+1;
Var3 = var1/Var2;
if C < DayOpen and mav < mav[1] Then
Condition1 = true;
if Condition1 == true and CrossUp(c,DayOpen) Then
Buy();
if MarketPosition == 1 Then
{
# if CrossDown(C,DayOpen) Then
# ExitLong();
# if v >= Var3[1]*5 then
# ExitLong();
}
SetStopProfittarget(2.3,PercentStop);
SetStopLoss(1.8,PercentStop);
SetStopEndofday(151500);
ㅇ현재 매수 조건
1. 개장 후 시가 형성 후 현재 가격이 시가 아래로 떨어지고
2. 5일 이동평균 하락(분봉에 적용)
위 조건이 만족된 후
3. 현재 가격이 당일 시가를 돌파 할 경우 매수
ㅇ 수정요청 매수 조건
1. 개장 후 시가 형성 후 현재 가격이 시가 아래로 떨어지고
2. 5일 이동평균 하락(분봉에 적용)
위 조건이 만족된 후
3. 현재 가격이 당일 시가를 돌파 AND
4. MACD 오실레이터 양의 값 AND
5. 20일 가격이동평균 상승 중 AND
6. 현재가격이 볼린저밴드 상단을 돌파 하지 않았다면 바로매수
7. 현재 가격이 볼린저밴드 상단을 돌파 하였다면, 현재가격이 5일 가격이동평균선 하향돌파 하면 매수
잘부탁 드립니다.
감사합니다.
2022-05-15
1007
글번호 158872
답변완료
수식에대한 질문입니다
서머타임에 따른 매매 허용 시간에 대한 질문의 답변을 이렇게 주셨었는데요
var : ST(0),ET(0),Tcond(False);
if Bdate != Bdate[1] Then
{
if stime >= 80000 Then
{
ST = 223000;
ET = 053000;
}
else
{
ST = 213000;
ET = 043000;
}
}
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
Tcond = true;
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if Tcond == true Then
{
진입식
}
여기서 궁금한 단락이 이것입니다
(sdate != sdate[1] and stime >= ST)
(sdate != sdate[1] and stime >= ET)
이 식이 왜 있는것인지 이해하기가 어렵습니다. 자정을 넘긴시점(00시00분)에서 stime값이 ST값보다 크거나 같은 상황이 있을리 없지 않습니까? ET의 경우에도 마찬가지구요.
시뮬레이션에 물려봐도 두가지 경우가 true을 띄는 경우가 없던데 이 식은 왜 들어가있는것인지요?
2022-05-15
934
글번호 158871
답변완료
해외선물 (당일마감 문의)크루드오일 시스템 매매 중입니다.
해외선물 크루드오일 시스템 매매 중입니다.
당일 매매(오버나잇 금지) 조건식으로
알려주신대로 이렇게 운영 중인데 맞는지요?
매일 오전 06:10 에 당일 자동마감됩니다.
섬머타임 관련없이
연중 이 조건식으로 시스템운영이 가능한지요?
원하는 크루드오일 시스템 운영시간
*모두 한국시간 실시간 기준으로 요망
*시작: 매일 아침 장시작 직후 ---> 1분 59초 후
*종료: 매일 아침 장종료 직전 ---> 2분 00초 전
조건식과 그 결과물(첨부)은 아래와 같읍니다.
###################################################################
input : StartTime(070159),EndTime(055800);
var : Tcond(false);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
###################################################################
if Tcond == true Then
{
If ((sTime >= 070159) or (sTime < 055800)) and 매도조건식 ### <----- 매도조건식
Then
Sell ("sell-stocro-01");
If ((sTime >= 070159) or (sTime < 055800)) and 매수조건식 ### <----- 매수조건식
Then
Buy ("buy-stocro-01");
}
###################################################################
^^항상 감사합니다.
2022-05-15
1102
글번호 158870
답변완료
data2에 관한 문의
input: period(20), n(2);
value1 = BollBandUp(period,n) ;
Value2 = BollBandDown(period,n);
Value3 = ma(c,60);
if
CrossUp(Value2,Value3) and Value3[1] < Value3
Then
Buy("ll");
if CrossDown(Value1,Value3) Then Sell("ss");
예를 들면 이 전략을 data2에 적용하려면 data2(CrossUp(Value2,Value3) and Value3[1] < Value3 ) 이런식으로는 안되는건가요?
//
위 식으로 data2에서 "ll"이 발생하고 "ss"가 발생하기 사이에 data1에서 신호가 발생하게 만들고 싶은데 방법이 있을까요? 다시 말해 긴 시간프레임의 진입신호가 짧은시간프레임의 진입 조건이 되도록 하고 싶습니다
//
data1 이 3분봉
data2 가 15분봉일 경우 data2의 조건이 c>ma(c,50) 같은 지속형 조건이 아닌 crossup이라던지 c>o라던지 어떤 한 순간만 만족하는 조건일 경우 data2의 봉이 완성되는 순간 data1에서의 요구조건과 일치하는 경우에만 신호가 발생하나요? 즉 신호가 아무리 많이 발생할 수 있다고 해도 15분에 한번이 최대인가요?
//
data2(open) < data2(close) 와 data2(o<c) / data2(o<c)[1] 과 data2(o[1]<c[1])
이런것들은 뭐가 맞는 표현식인가요?
2022-05-15
1135
글번호 158869
답변완료
종가파라볼릭 일정폭에 알람소리
선물 거래시, 하락 종가파라볼릭이 발생하여 반등없이 계속 하락할때, 하락종가파라볼릭 최고꼭지점에서 -1p하락하면 알람 울리고 더 하락하면 -1.5p에서,또 더 하락하면 -2p에서,세 군데 알람 울리게 해주시고,
반대로 상승종가파라볼릭이 발생하여 계속 상승할때는,상승종가파라볼릭 최저꼭지점에서 +1p +1.5p +2p 세군데 도달시 알람 울리게 해주세요. 감사합니다.
2022-05-14
749
글번호 158868