커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8142
글번호 230811
답변완료
수식문의
주식 종목 검색
분봉 :30분봉
봉수 :240개(한달치)
수식문의 : 봉의 (종가-시가)가 3%이상(변경가능) 상승한 봉의 갯수가 20개(변경가능)
이상 인 종목 검색식을 요청합니다..
추가로 갯수가 많은것부터 나열이 되었으면 더 좋겠네요
부탁드립니다
수고하세요
2014-09-19
157
글번호 78699
답변완료
감사드립니다
아래의 시스템지표를 선이아니고 점으로 나타내어 지도록 다사한번 부탁드립니다..
현재봉에서 다음봉으로 넘어갈때 현재는 선으로 이어지는데 이것을 선이아닌
점으로 표시되도록 하는것입니다...
항상 건강하시고 행복하세요....
Input:전환율(0.5),선두께(4),선색(green); //전환율 또는 변동률
Var:j(0),upTr(100),dnTr(-100),upRate(0),dnRate(0),trnd(0),
date11(0),date12(0),time11(0),time12(0),TL1(0),
date21(0),date22(0),time21(0),time22(0),TL2(0);
Array:hiVal[2](0),loVal[2](0),hiBar[2](0),loBar[2](0);
upRate = 1 + (전환율/100); //상승률
dnRate = 1 - (전환율/100); //하락률
loBar[1] = loBar[1] + 1; //전저점의 위치. 현재 봉으로부터 떨어져 있는 거리
hiBar[1] = hiBar[1] + 1; //전고점의 위치
if DayIndex == 0 then {
if trnd == upTr then {
date11 = date[loBar[1]]; //추세선 시작일
time11 = stime[loBar[1]]; //추세선 시작시간
Value11 = loVal[1]; //추세선 시작가격
}
else {
date11 = date[hiBar[1]]; //추세선 시작일
time11 = stime[hiBar[1]]; //추세선 시작시간
Value11 = hiVal[1]; //추세선 시작가격
}
date12 = date[1]; //추세선 종료일
time12 = stime[1]; //추세선 종료시간
Value12 = C[1]; //추세선 종료가격
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12); //TL_New는 신규 추세선을 그려주는 함수
TL_SetSize(TL1,선두께);
if Value11 < value12 Then
TL_SetColor(TL1,RED);
Else
TL_SetColor(TL1,BLUE);
if Value11 < value12 Then{
buy();
}
Else{
sell();
}
hiVal[1] = O;
hiBar[1] = 0;
loVal[1] = O;
loBar[1] = 0;
hiVal[0] = C;
hiBar[0] = 0;
loVal[0] = C;
loBar[0] = 0;
trnd = 0;
if hiVal[1] * dnRate > C then trnd = dnTr;
else if loVal[1] * upRate < C then trnd = upTr;
}
if hiVal[0] <= C then {
hiVal[0] = C;
hiBar[0] = 0;
}
else {
hiBar[0] = hiBar[0] + 1;
}
if loVal[0] >= C then {
loVal[0] = C;
loBar[0] = 0;
}
else {
loBar[0] = loBar[0] + 1;
}
if trnd != dnTr && hiVal[0] * dnRate > C then trnd = dnTr;
else if trnd != upTr && loVal[0] * upRate < C then trnd = upTr;
if trnd[1] != dnTr and trnd == dnTr then { //상승추세였다가 하락추세로 바뀌었다면
hiVal[1] = hiVal[0]; //새로운 전고점에 현재 고점을 대입
hiBar[1] = hiBar[0];
hiVal[0] = C; //전고점이 확정되었으므로 전고점 이후 최고가는 현재봉의 고가
hiBar[0] = 0;
loVal[0] = C;
loBar[0] = 0;
//전고점이 새로 생긴 것이니까 전저점에서 전고점까지 추세선을 긋는다.
date11 = date[loBar[1]]; //추세선 시작일. 전저점의 날짜
time11 = stime[loBar[1]]; //추세선 시작시간
Value11 = loVal[1]; //추세선 시작가격
date12 = date[hiBar[1]]; //추세선 종료일. 전고점의 날짜
time12 = stime[hiBar[1]]; //추세선 종료시간
Value12 = hiVal[1]; //추세선 종료가격
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
if Value11 < value12 Then{
buy();
}
Else{
sell();
}
//TL_New는 신규 추세선을 그려주는 함수
}
if trnd[1] == dnTr and trnd == dnTr and //추세는 하락 상태에서 바뀌지 않았는데
hiVal[1] < hiVal[0] and //전고점보다 더 높은 고점이 출현했다면
hiVal[0] * dnRate > C then {
hiVal[1] = hiVal[0]; //전고점을 현재의 고점으로 바꿔준다.
hiBar[1] = hiBar[0];
hiVal[0] = C;
hiBar[0] = 0;
loVal[0] = C;
loBar[0] = 0;
//전고점이 추가된 게 아니고 바뀐 것이므로 종료일,종료시간,종료가격만 바꿔준다.
date12 = date[hiBar[1]]; //추세선 종료일
time12 = stime[hiBar[1]];
Value12 = hiVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
//TL_SetEnd는 기존추세선의 종료지점을 변경해주는 추세선 함수이다.
//TL_Delete 함수를 써서 직전의 추세선을 지우고 다시 TL_New로 추세선을 추가해도 된다.
}
if trnd[1] != upTr and trnd == upTr then { //추세가 하락에서 상승으로 바뀌었을 경우
loVal[1] = loVal[0];
loBar[1] = loBar[0];
loVal[0] = C;
loBar[0] = 0;
hiVal[0] = C;
hiBar[0] = 0;
date11 = date[hiBar[1]];
time11 = stime[hiBar[1]];
Value11 = hiVal[1];
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
if Value11 < value12 Then{
buy();
}
Else{
sell();
}
}
if trnd[1] == upTr and trnd == upTr and //추세는 상승을 유지하고 있는데
loVal[1] > loVal[0] and //전저점보다 낮은 저가가 출현했다면
loVal[0] * upRate < C then {
loVal[1] = loVal[0]; //직전의 전저점만 바꿔준다.
loBar[1] = loBar[0];
loVal[0] = C;
loBar[0] = 0;
hiVal[0] = C;
hiBar[0] = 0;
date12 = date[loBar[1]];
time12 = stime[loBar[1]];
Value12 = loVal[1];
TL_SetEnd(TL1, date12,time12,Value12);
}
TL_SetSize(TL1,선두께);
#TL_SetColor(TL1,선색);
if Value11 < value12 Then{
TL_SetColor(TL1,RED);
}
Else{
TL_SetColor(TL1,BLUE);
}
if trnd == upTr then {
date21 = date[loBar[1]]; //추세선 시작일
time21 = stime[loBar[1]]; //추세선 시작시간
Value21 = loVal[1]; //추세선 시작가격
}
else {
date21 = date[hiBar[1]]; //추세선 시작일
time21 = stime[hiBar[1]]; //추세선 시작시간
Value21 = hiVal[1]; //추세선 시작가격
}
date22 = date; //추세선 종료일
time22 = stime; //추세선 종료시간
Value22 = C; //추세선 종료가격
TL_Delete(TL2);
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetSize(TL2,선두께);
if Value21 < value22 Then
TL_SetColor(TL2,RED);
Else
TL_SetColor(TL2,BLUE);
2014-09-19
192
글번호 78698
태양같이 님에 의해서 삭제되었습니다.
2014-09-19
15
글번호 78697
답변완료
신호가 나오지 않는데 검토 부탁 드립니다.
아래는 TDI_추세선행식입니다. 그런데 신호가 나오지를 않는데 잘 못된 부분을 수정 좀 부탁드립니다. 감사합니다.
=================================================
input : TDILen(20), TDiMinimum(0), SwingLen(0);
var : ii(0);
If CurrentBar >= TDILen * 2 - 1 then {
Var1 = close - close[TDILen - 1];
Var11 = abs(Var1);
Var2 = accumN(Var1, TDILen);
Var22 = abs(Var2);
Var3 = accumN(Var11, TDILen * 2);
Var33 = accumN(Var11, TDILen);
Var4 = Var22 + Var33 - Var3;
If Var4 > TDIMinimum then {
For ii = 0 To SwingLen - 1 begin
condition1 = Var4[SwingLen - ii] > Var4[SwingLen - ii - 1];
condition2 = Var4[SwingLen + ii] > Var4[SwingLen + ii + 1];
end;
If condition1 == True And condition2 == True then {
If Var2 > 0 then {
For ii = 0 To SwingLen - 1 begin
condition3 = Var2[SwingLen - ii] > Var2[SwingLen - ii - 1];
condition4 = Var2[SwingLen + ii] > Var2[SwingLen + ii + 1];
end;
If condition3 == True And condition4 == True then {
sell("매도", Atmarket);
}
}
If Var2 < 0 then {
For ii = 0 To SwingLen - 1 begin
condition5 = Var2[SwingLen - ii] < Var2[SwingLen - ii - 1];
condition6 = Var2[SwingLen + ii] < Var2[SwingLen + ii + 1];
end
If condition5 == True And condition6 == True then {
buy("매수", Atmarket);
}
}
}
}
}
2014-09-19
171
글번호 78696
답변완료
수식 문의 드립니다.
65분봉으로 시스템을 작성하였는데,
장 마감후인 15:30에 진입, 청산, 손절등의 신호가 나옵니다.
장 마감 후 위 신호 안나오게 수식 부탁드립니다^^
2014-09-19
171
글번호 78693
답변완료
방법좀 가르쳐 주세요
Input : shortPeriod(12), longPeriod(26), Period(9);
value1 = MACD(shortPeriod, longPeriod);
value2 = ema(value1, Period);
Inputs: Length1(6),Length2(4),Length3(4);
Variables: KLine(0), DLine(0);
KLine = StochasticsK(Length1,Length2);
DLine = StochasticsD(Length1,Length2,Length3);
# 매수/매도청산
If MarketPosition == 0 and CrossUP(value1, value2) Then
Buy();
If MarketPosition == 1 and CrossDown(KLine, DLine) Then
ExitLong();
# 매도/매수청산
If MarketPosition == 0 and CrossDown(value1, value2) Then
Sell();
If MarketPosition == -1 and Crossup(KLine, DLine) Then
ExitShort();
RSI ,MACD 둘중에 하나라도 매수 신호가 뜨면 매수 반대로 매도하게만들려고 하는데 에러가 뜨네요..방법좀 가르쳐 주세요
2014-09-19
187
글번호 78692
신나는파파 님에 의해서 삭제되었습니다.
2014-09-19
0
글번호 78690
답변완료
색깔 종류좀 부탁드립니다.
수고하십니다.
제가 색깔을 여러가지 사용하고싶은데..
제대로 찾을수가 없네요..
주로사용하는것들을 10가지 조금 넘게 사용하고 싶은데..
색깔 사용할수 있는것. 종류별로 알려주심 감사하겠습니다.
수고하셔요..
2014-09-19
166
글번호 78689
금보 님에 의해서 삭제되었습니다.
2014-09-19
1
글번호 78688