커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7345
글번호 230811
답변완료
지표문의드립니다
안영하세요?
아래첨부된지표는 추세선관련지표인데요
추세선이 그려지고 가격이추세선근처에적히는 수식입니다
그런데 가격이없이 단지 추세선만그려지는것을원합니다
감사합니다
Input:length(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0);
Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0);
Array:고점[10,2](0),저점[10,2](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{ If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
mav = ma(C,20);
2017-02-07
149
글번호 106589
softtoug 님에 의해서 삭제되었습니다.
2017-02-07
0
글번호 106583
답변완료
수식부탁드립니다.
매수
- 시가에 매수
매수 주문수량이 == 1 이면
익절 PriceScale*10
매도
- 시가에 매도
매도 주문수량이 == 1 이면
익절 PriceScale*10
2017-02-07
124
글번호 106582
답변완료
수식 문의 드립니다.
아침저녁으로 쌀쌀합니다. 감기조심하시구요^^ 수식좀 부탁드립니다.
input : P1(1),P2(2),P3(3);
input : Period11(1),Period12(2),Period13(3);
input : Period21(4),Period22(5),Period23(2);
input : Period31(6),Period32(7),Period33(2);
input : Period41(8),Period42(9),Period43(2);
var : wma1(0),wma2(0),wma3(0);
var : SMI1(0),SMI2(0),SMI3(0),SMI4(0);
wma1 = wma(c,P1);
wma2 = wma(c,P2);
wma3 = wma(C,P3);
SMI1 = SMI(Period11,Period12,Period13);
SMI2 = SMI(Period21,Period22,Period23);
SMI3 = SMI(Period31,Period32,Period33);
SMI4 = SMI(Period41,Period42,Period43);
if
SMI3 > 0 and SMI4 > 0 and SMI3 > SMI4 and
((SMI2 > 0 and crossup(SMI1,0)) or (SMI1 > 0 and crossup(SMI2,0))) Then
buy();
if
SMI3 < 0 and SMI4 < 0 and SMI3 < SMI4 and
((SMI2 < 0 and CrossDown(SMI1,0)) or (SMI1 < 0 and CrossDown(SMI2,0))) Then
sell();
if MarketPosition == 1 and wma1 < wma2 Then
exitlong();
if MarketPosition == -1 and wma1 > wma2 Then
ExitShort();
위 조건식에서요 RSI조건을 추가 하고 싶습니다.
매수조건 :위 조건식을 만족하면서(동시에) RSI 기준선 70이상일때
매도조건 :위 조건식을 만족하면서(동시에) RSI 기준선 30이하일때
부탁드립니다.~~~~~
2017-02-07
141
글번호 106580
답변완료
지표와 속도
안녕하세요?
장 초반이나 시세가 급변할때 무거운 지표를 사용할 경우 속도가 느려지는데
가급적 지표를 단순화 하고자 합니다.
다음 몇가지 중 속도개선에 더 도움이 되는 것이 어떤 것인지 알고 싶습니다.
(지표 한개일때는 속도 차이가 별로 없지만 여러차트에 여러지표를 적용할 때에는
차이가 커지므로 가급적 줄이고 싶습니다)
1. 이동평균 식에서 ma(c,20); 과 accumn(c,20)/20; 중 어떠것이 조금이나마 더 빠른지
2. if c>ma(c,20) then sig=1; else sig=0; 와 signal=iff(c>ma(c,20),1,0); (sig는 변수)
3. 여러 변수를 var 와 array 중 어느 것을 통해 선언하는 것이 더 빠른지
4. 사용자 함수를 만드는 것이 더 빠른지
5. for문(엄청나게 속도를 저해하네요) 등 속도를 저하시키는 함수에는 어떤 것들이 있는지
6. 한 봉이 만들어질 때 마지막 한 번만 연산하게 하는 방법
7. 기타 속도를 향상시킬 수 있는 팁
질문이 너무 많아서 죄송합니다.
장초반이나 시세 급변시 차트가 현재가창의 시세보다 한참 뒤에서 뒤따라가며
그려지는걸 볼 수 있는데요 조금이라도 더 속도를 개선시키는 방법을 알고 싶습니다.
새해 복 많이 받으시고요. 행복한 하루 되세요!
2017-02-07
180
글번호 106579
답변완료
전날 동시간대에 값을 가져올려면??
수고하십니다.
전날 동 시간대에 값을 가져올려고 하는데요...
해당일꺼난 TimeHigh를 써서 가져오는데
전날꺼는 TimeHigh(1) 이게 안먹히네요?
HH = TimeHigh(090000,093000)
HH(1)
이렇게 했을때 HH(1) 이런식으로는 사용 못하는건가요?
2017-02-07
146
글번호 106578
답변완료
수식 부탁드립니다.
안녕하세요
수식하나 부탁드립니다.
1.120이평이 상승추세일때에 20이평이 120 이평을 상향돌파시 매수
2,120이평이 하락추세일때에 20이평이 120 이평을 하향돌파시 매도
하는 식입니다.
미리 감사드립니다.,
2017-02-06
131
글번호 106577
답변완료
수식문의드려요
전봉과 고점이 같은 뒤부터 저점카운팅
전봉과 저점이 같은 뒤부터 고점카운팅
부탁드립니다 감사합니다
2017-02-06
131
글번호 106576
답변완료
문의드립니다.
여러개의 진입신호가 합성된 시스템에서 특정신호(진입명)만 당일 1번만 발생하게 만드는 조건식이 궁급합니다.
제가 배운 2가지 조건식으로 시도해봤는데, 다른 신호들과 간섭이 발생해서 나타날 자리에 나타나지 않는 경우가 생기네요;;;
아래는 제가 사용해본 조건식입니다.
if Bdate != Bdate[1] Then
T1 = TotalTrades;
if MarketPosition == 0 Then
entry = TotalTrades-T1;
Else
entry = (TotalTrades-T1)+1;
if entry < 1 then{
if MarketPosition == 0 then
if Crossup(A,B)
------------------------------------------
if date != date[1] then{
Bcnt = 0;
Scnt = 0;
}
if marketposition == -1 and marketposition != marketposition[1] then
Scnt = Scnt+1;
if Scnt < 1 and Crossup(A,B)
If Scnt < 1 and
2017-02-06
139
글번호 106575