커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7386
글번호 230811
답변완료
고가와저가매매보다05p더해매매
input : HP(5),LP(5);
var : cnt(0),HH(0),LL(0);
HH = dayhigh(1);
for cnt = 1 to HP{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
}
LL = dayLow(1);
for cnt = 1 to LP{
if daylow(cnt) < LL Then
LL = dayLow(cnt);
}
if crossup(c,HH) then
buy();
if CrossDown(c,LL) Then
sell();
위수식에서
5일간 고가보다0.5p 더오르면 매수
5일간 저가보다-0.5p 더내리면 매도 부탁합니다
매매시점을 0.5p늘려잡습니다
항상 감사힙니다.
2016-05-31
127
글번호 98665
답변완료
답변 좀 부탁드립니다.
이전 질문의 상세한 답변 감사드립니다.
1. 참조데이터를 일봉에 적용해서 검색식을 만들어 잘 적용했습니다.
그런데..참조데이터 안에 프로그램매매에 관한
차익거래 순매수 금액과 비차익거래 순매수 금액이 안보이더라구요..
이는 어떻게 적용할까요? (전 질문번호는 48001입니다.)
2. 조건만족시 조건만족봉에 점으로 표시가 되는데...
그날 일봉의 종가가 시가보다 높으면 위쪽 화살표가 봉의 아래쪽에 나타나고,
낮으면 아래쪽 화살표가 봉의 위쪽에 나타나게 표시가 가능할까요?
3. 그리고 실시간으로 검색시 소리가 나게 할 수도 있나요? 아니면 팝업창이라도...
2016-05-31
155
글번호 98664
답변완료
재문의 합니다.
47991번 재문의 합니다.
Envelope 중심선140 추가해주세요
5일이동평균이
Envelope 중심선을 기준으로 상승이면 매수만
하락이면 매도만 나오게 해주시고요 .
진입 신호만 있고 청산 신호는 없는 식으로 부탁드립니다.
매수신호 : 5일평균선이 Envelope 중심선을 상승으로 통과하고
1번+0.13선을 뚷고 올라가면 첫번째 매수신호
2번+0.21선을 뚷고 올라가면 두번째 매수신호
3번+0.34 선을 뚷고 올라가면 3번째 매수신호
매도신호 : 5일평균선이 Envelope 중심선을 하락으로 통과하고
1번-0.13선을 뚷고 내려가면 첫번째 매도신호
2번0.21선을 뚷고 내려가면 두번째 매도신호
3번0.34 선을 뚷고 내려가면 3번째 매도신호
첨부파일 올림니다.
감사합니다.
시스템 적용시 시스템 트레이딩 설정창의 피라미딩탭에서
다른진입신호만 허용으로 설정하고 적용하시면 됩니다.
input : P(5),per1(0.13),per2(0.21),per3(0.34);
var : T(0);
value1 = EnvelopeUp(p,per1);
value2 = EnvelopeUp(p,per2);
value3 = EnvelopeUp(p,per3);
value4 = EnvelopeDown(p,per1);
value5 = EnvelopeDown(p,per2);
value6 = EnvelopeDown(p,per3);
if crossup(C,value1) Then
buy("b1");
if crossup(C,value2) Then
buy("b2");
if crossup(C,value3) Then
buy("b3");
if CrossDown(C,value4) Then
Sell("s1");
if CrossDown(C,value5) Then
Sell("s2");
if CrossDown(C,value6) Then
sell("s3");
2016-05-31
161
글번호 98663
답변완료
타주기식 부탁드립니다.
아래식은 38697 질의에 답변해주셨던 내용인데요
타주기 식을 만들어 보려하니 잘 안되어 부탁드립니다.
감사합니다.
INPUTS:
TICKCHG(10), #{Change (number of ticks) required to set up a new swing high/low.}
PCTCHG(.2), #{Percent change in price to set up a new swing high/low}
OCCUR(1),
PLOTBARS(40),
ETALINE(true),
ZIGZAG(TRUE);
ARRAY:
PBAR[50](0),
P[50](0);
VARS:
X(0),
PP(1),
JA_SLOPE1(0),
JLA_CTR(0),
JLA_LINE(0),
JAIRHBAR(0), #{ LAST SWING HIGH BAR}
JAIRLBAR(0), #{LAST SWING LOW BAR}
LOWSEEK(FALSE), #{LOOKING FOR A LOW OR A HIGH?}
W(0), #{COUNTER}
JLA_IRH(0), #{LAST SWING HIGH VALUE}
JLA_IRL(99999), #{LAST SWING LOW VALUE}
JA_SLOPE2(0),
JA_SLOPE3(0),
JLA_PT1(0),
WOLFE(0);
#{==================MAIN
#PROGRAM=========================}
IF CURRENTBAR == 1 THEN P[50] = C;
IF LOWSEEK == FALSE AND P[50] <= H THEN
BEGIN
P[50] = H;
PBAR[50] = 0;
END;
IF LOWSEEK == TRUE AND P[50] >= L THEN
BEGIN
P[50] = L;
PBAR[50] = 0;
END;
IF (LOWSEEK == FALSE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND L < P[50] * ( 1 - PCTCHG / 100) )
OR (TICKCHG <> 0
AND L < ( P[50] - tickchg * PriceScale)) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = TRUE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = L;
PBAR[50] = 0;
END;
END;
IF (LOWSEEK == TRUE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG == 0
AND H> P[50] * ( 1 + PCTCHG / 100))
OR (TICKCHG <> 0
AND H > (P[50] + tickchg * PriceScale )) THEN
BEGIN
IF ZIGZAG == TRUE THEN
PLOT4(P[50],"SWINGS");
LOWSEEK = FALSE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = H;
PBAR[50] = 0;
END;
END;
IF P[48 - PP] <> 0 THEN
BEGIN
PP = -1;
WOLFE = 0;
WHILE WOLFE < OCCUR AND PP < 46
BEGIN
PP = PP + 1;
VALUE1 = P[47-PP];
VALUE2 = P[48-PP];
VALUE3 = P[49-PP];
VALUE4 = P[50-PP];
CONDITION1 =
VALUE2 > VALUE1
AND VALUE4 > VALUE3
AND VALUE4 < VALUE2
AND VALUE3 < VALUE1
AND VALUE4 > VALUE1;
CONDITION2 =
VALUE2 < VALUE1
AND VALUE4 < VALUE3
AND VALUE4 > VALUE2
AND VALUE3 > VALUE1
AND VALUE4 < VALUE1;
IF CONDITION1 OR CONDITION2 THEN
WOLFE = WOLFE + 1;
END;
JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]);
JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]);
#{LINE 1-3}
if PBAR[47-PP] >=0 and PBAR[49-PP] >= 0 and PBAR[49-PP]-PLOTBARS >=0 then
begin
TL_Delete(value90);
VALUE90 = TL_New(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[49-PP]], sTIME[PBAR[49-PP]],P[49-PP]);
Value14=TL_SetColor(VALUE90, red);
#{VALUE93 = TL_SetExtRight(VALUE90,TRUE);}
VALUE94 =
TL_SETEND(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GetVALUE(VALUE90,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS])); //
end ;
#{LINE 1-4}
if PBAR[47-PP] >= 0 and PBAR[50-PP] >= 0 and PBAR[49-PP]-PLOTBARS >= 0 then
begin
TL_Delete(value91);
VALUE91 = TL_NEW(sDATE[PBAR[47-PP]],sTIME[PBAR[47-PP]],P[47-PP ],
sDATE[PBAR[50-PP]], sTIME[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE91, green);
TL_SETEND(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS],
TL_GETVALUE(VALUE91,sDate[PBAR[49-PP]-PLOTBARS],sTime[PBAR[49-PP]-PLOTBARS]));
end ;
if PBAR[48-PP] >=0 and PBAR[50-PP]-PLOTBARS >= 0 then
begin
#{ETA LINE}
IF ETALINE THEN
BEGIN
TL_Delete(value92);
VALUE92 = TL_NEW(sDate[PBAR[48-PP]],sTime[PBAR[48-PP]],P[48-PP ],
sDate[PBAR[50-PP]],sTime[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE92, blue);
TL_SETEND(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP]-PLOTBARS],
TL_GETVALUE(VALUE92,sDate[PBAR[50-PP]-PLOTBARS],sTime[PBAR[50-PP] -PLOTBARS]));
END;
end;
END;
IF LastBarOnChart == 1
AND ZIGZAG == TRUE THEN
BEGIN
JA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]);
FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN
PLOT4(P[49] + (PBAR[49] - JLA_CTR) *
JA_SLOPE3,"Swings");
END;
END;
FOR W = 1 TO 50
BEGIN
PBAR[W] = PBAR[W]+1;
END;
2016-05-31
287
글번호 98662
답변완료
수식 부탁드립니다
(1)
주봉 바닥 가격 붕괴후 돌파시 매수
주봉 천정을 돌파하여 주봉 바닥~천정 진폭 대칭 상승시 매도
(2)
주봉 바닥 10틱 위에서 매수
주봉 천정을 돌파하여 주봉 바닥~천정 진폭 대칭 상승 10틱 아래에서 매도
(3)
주봉 바닥 10틱 위에서 매수
주봉 천정을 돌파하여 주봉 바닥~천정 진폭 대칭 상승 10틱 위에서 매도
감사합니다
2016-05-31
152
글번호 98661
답변완료
고가와저가그리고중간값의매매
3일간의고가를 상향돌파하면 매수하고 중간값 을하향돌파하면 정리함(포지숀무)
다시고가를 상향돌파면매수 중간값을 하향돌파하면 정리함(포지숀무) 반복함
(중간값은고가와저가의1/2 입니다)
매도는반대입니다
감사합니다
2016-05-31
152
글번호 98658
답변완료
질문 좀 드리겠습니다.
강조인지 시스템인지 잘 모르겠습니다만...주로 종목검색만 해왔었습니다.
이번엔 한 종목의 일봉상에 신호발생을 표시하고 싶습니다.
예를들어 삼성전자 일봉상에서 (코스피나 선물챠트도 상관없습니다.)
금일 기관이 코스피 현물500억이상 순매수하고,
선물500억 이상 순매도가 나온날을 표시할 수 있을까요?
또 차익거래 순매수 금액과 비차익거래 순매수 금액도 조합해볼 수 있을까요?
그리고 이 결과는 전략실행챠트에서 확인해볼 수 있나요?
2016-05-31
162
글번호 98655
답변완료
수식부탁합니다
안녕하세요?
3 일전의 시가에 금일의 종가의 평균값을 구하려면 수식을 어떻게 해야하나요?
즉 (3일전 시가 +금일종가)/2 이러면 되는데 수식으로 구현하려니 잘안되네요
미리감사드립니다
2016-05-31
141
글번호 98649
답변완료
시간동안의 고가와 저가 표시..
해외선물 투자자 입니다.
1. 특정시간동안의 고가와 저가를 해당 거래일까지 나타내는 지표.
예) 15:00 ~ 19:00 동안의 고가와 저가를 다음날 아침 06:00까지 나타내는 수식
2.[1의 변경]
특정시간동안의 고가가 직전 스윙하이봉의 고가보다 낮을때는 직전 스윙하이봉부터
특정시간동안의 저가가 직전 스윙로우봉의 저가보다 높을때는 직전 스윙로우봉부터
다음날 아침 06:00 까지 나타내는 수식
예) 추세선의 스윙하이봉 사용: SHvalH
input : Left(3),Right(3);
var : SHvalH(0);
if Swinghigh(1,H,Left,Right,Left+Right+1) != -1
SHvalH = H[Right];
15:00 직전의 shvalh값이 15:00부터 19:00까지의 고가보다 높을경우 shvalh값을 고점으로
06:00시까지 지표로 나타내고 직전 스윙로우의값이 저가보다 낮을경우에는 직전의 스윙로우
저가로 나타냅니다.
3.[1과 2의 변경]
15:00시부터 19:00까지의 고가와 저가보다 19:00시 이후 첫 스윙하이와 스윙로우값이 높거나 낮을경우 스윙하이값이나 스윙로우값을 고점과 저점으로 06:00시까지 나타내는 수식 부탁드립니다.
질문 2.3의 경우 스윙하이와 스윙로우값이 직전&직후의 값이 시간대의 고가와 저가보다
낮거나 높을경우에는 시간대의 고가와 저가를 표시합니다.
4. 15:00~19:00 동안의 평균 거래량
이해가 되시게 질문드렸는지 모르겠네요..
부탁드립니다.
2016-05-31
186
글번호 98640