커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7439
글번호 230811
답변완료
옵션교차차트관련 45226번 재문의
45226번 관련해서 수식을 참고해 다음과 같은 수식을 작성한후, 양옵션들이 교차할경우
차트에 각각 표시하여야하나, 첨부파일처럼 분명 c242와 p242가 교차하고, c245와 p240이 교차하는데도, 차트에는 c242와 p242에만 2개의 교차가 표시됩니다...
c242와p242, c245와p240 각각 표시되는 방법을 부탁드립니다.
data1=c242
data2=p242
data3=c245
data4=p240 일 경우 아래와 같이 수식을 작성, 적용하였습니다.
if crossup(data1(c),data2(C)) or crossup(data1(c),data4(C)) Then
var1 = C;
if CrossDown(data1(c),data2(C)) or CrossDown(data1(c),data4(C)) Then
var1 = C;
if crossup(data3(c),data2(C)) or crossup(data3(c),data4(C)) Then
var3 = C;
if CrossDown(data3(c),data2(C)) or CrossDown(data3(c),data4(C)) Then
var3 = C;
plot1(var1);
plot2(var3);
2015-12-07
284
글번호 93131
답변완료
문의드립니다.
Input : RSIP(9), Period(14),dv(2);
var : RSIV(0),Mid(0),BBup(0),BBdn(0);
RSIV = RSI(RSIP);
Mid = ma(RSIV,Period);
BBup = Mid+STD(MId,Period)*dv;
BBdn = Mid-STD(MId,Period)*dv;
Plot1(RSIV, "RSI");
Plot2(Mid, "BBmid");
Plot3(BBup, "BBup");
Plot4(BBdn, "BBdn");
PlotBaseLine1(30, "기준선 30", gray);
PlotBaseLine2(70, "기준선 70", gray);
..........................................................................
상기 지표를 데이타2 참조지표로 가공해 주세요
2.
inputs : ShowAll(true),굵기(0),상승(red),하락(blue);
var : BoxTop(0), BoxBtm(0), Ctr(0), BBD(0), BBT(0), EBD(0), EBT(0), UpBand(0), DnBand(0), CurrState(1),
TextId(-1), TopId(-1), TopIdP(-1), BtmId(-1), BtmIdP(-1), LSId(-1), LSIdP(-1), RSId(-1), RSIdP(-1),
HiFirst(true), LoFirst(false), State1(false), State2(false), State3(false), State4(false), State5(false),
DrawBox(false), ValidBox(false), HadBreak(false), NewBox(false);
if index == 1 then begin
BoxTop = high;
BoxBtm = low;
State1 = true;
BBD = date;
BBT = time;
end;
if NewBox and high > UpBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId ;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete( RSIdP ) ;
if HiFirst then
TL_SetColor(RSId, 상승);
else
TL_SetColor(RSId, 하락);
NewBox = false;
State1 = true;
LoFirst = false;
HiFirst = true;
end;
if NewBox and low < DnBand then begin
BBD = date;
BBT = time;
TL_SetEnd(TopId, BBD, BBT, UpBand);
TL_SetEnd(BtmId, BBD, BBt, DnBand);
RSIdP = RSId;
RSId = TL_New(BBD, BBT, DnBand, BBD, BBT, UpBand);
if ShowAll == false and RSIdP <> -1 then TL_Delete(RSIdP);
if HiFirst then
TL_SetColor(RSId, 상승) ;
else
TL_SetColor(RSId, 하락);
NewBox = false;
State1 = true;
HiFirst = false;
LoFirst = true;
end;
if HiFirst then begin
if State4 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State4 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if low < BoxBtm then begin
State3 = true;
BoxBtm = low;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxBtm = low;
CurrState = 3;
end;
end;
if State1 then begin
if high > BoxTop then begin
BoxTop = high;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end
else begin #{ Using LoFirst }
if State4 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State4 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
State4 = false;
BoxTop = high;
CurrState = 3;
end
else begin
State4 = false;
State5 = true;
CurrState = 5;
end;
end;
end;
if State3 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
State3 = false;
CurrState = 1;
end
else begin
if high > BoxTop then begin
State3 = true;
BoxTop = high;
CurrState = 3;
end
else begin
State3 = false;
State4 = true;
CurrState = 4;
end;
end;
end;
if State2 then begin
if low < BoxBtm then begin
Boxbtm = low;
State1 = true;
State2 = false;
CurrState = 1;
end
else begin
State2 = false;
State3 = true;
BoxTop = high;
CurrState = 3;
end;
end;
if State1 then begin
if low < BoxBtm then begin
BoxBtm = low;
State1 = true;
CurrState = 1;
end
else begin
State1 = false;
State2 = true;
CurrState = 2;
end;
end;
end; #{ END IF HIFIRST OR LOFIRST }
if State5 then begin
DrawBox = true;
EBD = date;
EBT = time;
end;
if DrawBox then begin
TopIdP = TopId;
BtmIdP = BtmId;
LSIdP = LSId;
TopId = TL_New(BBD, BBT, BoxTop, EBD, EBT, BoxTop);
BtmId = TL_New(BBD, BBT, BoxBtm, EBD, EBT, BoxBtm);
LSId = TL_New(BBD, BBT, BoxBtm, BBD, BBT, BoxTop);
TL_SetSize(TopId,굵기);
TL_SetSize(BtmId,굵기);
TL_SetSize(LSId,굵기);
TL_SetSize(RSId,굵기);
if ShowAll == false then begin
if TopIdP <> -1 then TL_Delete(TopIdP);
if BtmIdP <> -1 then TL_Delete(BtmIdP);
if LSIdP <> -1 then TL_Delete(LSidP);
end;
if HiFirst then begin
TL_SetColor(TopId, 상승);
TL_SetColor(BtmId, 상승);
TL_SetColor(LSId, 상승);
end
else begin
TL_SetColor(TopId, 하락);
TL_SetColor(BtmId, 하락);
TL_SetColor(LSId, 하락);
end;
State1 = false;
State2 = false;
State3 = false;
State4 = false;
State5 = false;
DrawBox = false;
ValidBox = true;
end;
if ValidBox then begin
UpBand = BoxTop;
DnBand = BoxBtm;
ValidBox = false;
NewBox = true;
BoxTop = high;
BoxBtm = low;
end;
if HiFirst then
TextId = Text_New(date, time, high * 1.0005, NumToStr(CurrState, 0));
else
TextId = Text_New(date, time, low * 0.9995, NumToStr(CurrState, 0));
..............................................................................
2번 지표를 실행하다 보면 화면에 1,2,3,4,5 라고 나타나는데 보기 너무 불편하더라구요.
숫자들 안보이게 해주세요
그리고 박스 상단 가격과 하단 가격이 챠트상에 나타날수 있게 해주세요 (박스 상하단 주위에 자동적으로 뜰수 있게) 부탁 드립니다
3.
input : MACDP1(12),MACDP2(26),MACDP3(9),WmaP1(10),WMAP2(20),STo1(10),Sto2(5);
var1 = macd(MACDP1,MACDP2);
var2 = ema(var1,MACDP3);
var3 = Wma(C,wmaP1);
var4 = wma(c,wmaP2);
var5 = StochasticsK(sto1,sto2);
if var1 > var2 and var3 > var4 and var5 > 50 And
(crossup(var1,var2) or crossup(var3,var4) or crossup(var5,0)) Then
buy();
if var1 < var2 and var3 < var4 and var5 < 50 And
(CrossDown(var1,var2) or CrossDown(var3,var4) or CrossDown(var5,0)) Then
sell();
상기 시스템식에 아래 지표를 결합 시키고 싶네요
지표 내용은 rsi 50이상이면 매수 50이하면 매도 입니다.
상기시스템식과 아래 지표를 결합해 주세요
Input : Period(14);
var : RSIV(0);
RSIV = RSI(Period);
if RSIV >= 50 Then
Plot1(RSIV, "RSI",RED);
Else
plot1(RSIV,"RSI",blue);
PlotBaseLine1(50);
너무 많은 질문을 드린것 같아 죄송합니다
감사합니다
2015-12-08
184
글번호 93130
답변완료
지표요청 드립니다
* 월봉,주봉,일봉 직선요청드립니다.(선이 3개가 나와야 합니다. 겹치는선 있을수 있습니다)
월봉: 해당전월의 평균가
주봉: 해당전주의 평균가
일봉: 3일 펑균가
▶ 평균가기준:싯가+종가/2
▶ 2분봉 으로 매매 하는데요.....오늘 실적은 반영 안되고 하고
전일 실적 까지 월봉,주봉,일봉 3개의 평균봉 직선이 필요 합니다
(그래프에 기준선 직선으로 표시)
▶ 변수는 3개다 만들어주세요(월봉(3), 주봉(5), 일봉(5) 조정해가면서 쓰게요...)
→ 월봉(3): 3개월 평균가 모두합 / 3
→ 주봉(5): 5개주 평균가 모두합 / 5
→ 일봉(5): 5일간 평균가 모두합 / 5
* DataCompress
차트에 적용된 데이터의 주기를 반환
(틱봉 :0, 초봉:1, 분봉:2, 일봉:3, 주봉:4, 월봉:5,)
이걸로 써야 하나요? 아니면
* if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then 이걸로 써야 하나요?
많은 도움 고맙습니다!
2015-12-07
175
글번호 93129
답변완료
문의
plot1(test, "test",darkmagenta,def,2);
로 하면 에러가 납니다
plot1(test, "test",Lmagenta,def,2);
로 하면 에라가 안납니다
yes 도움말 파일에 색상예약어로 darkmagenta가 있는데
에라 나는 이유는 뭔가요??
2015-12-07
150
글번호 93128
오늘도수익 님에 의해서 삭제되었습니다.
2015-12-07
11
글번호 93127
답변완료
급하게 문의 하나 드립니다.
아래와 같은 내용으로 지난 주 문의 드린 적이 있었는데,
약간의 수정이 필요 할 것 같아서 번거롭지만 다시 한번 질문 드립니다.
--------------------------------------------------------------------------------------
해외선물 크루드오일 10분봉 서울시간 기준.
21:00 시가 ~ 22:00종가 까지 움직인 폭을 A라고 하였을 때,
(예> 21:00 시가 -> 40.50, 22:00 종가 -> 41.00이면 움직인 폭은 0.50이므로 A=0.50)
21:00 시가 ~ 22:00종가 기준의 최고점에서 위로 변동폭 A(0.50)만큼 돌파하면 그 지점에서 매수진입
21:00 시가 ~ 22:00종가 기준의 최저점에서 아래로 변동폭 A(0.50)만큼 돌파하면 그 지점에서 매도진입
(예> 21시~22시 사이 최고점이 41.00이고 최저점이 40.00이라고 할 경우, 최고점인 41.00에서 0.50위인 41.50에 매수로 진입.
반대로 매도의 경우 최저점인 40.00에서 0.50 아래인 39.50에 매도로 진입합니다.)
이익실현과 손절은 21시~22시 사이 움직인 폭인 A(0.50P)를 기준으로 잡습니다.
매매는 하루1회. 이익실현, 손절이 되지않은 경우 밤 12시 청산입니다.
복잡하지만 최대한 풀어서 설명드렸으니 정확한 수식 좀 부탁 드리겠습니다.
--------------------------------------------------------------------------------------
아 그리고 수식 밑에 주석도 좀 달아주시면 정말 감사감사 하겠습니다.
2015-12-07
194
글번호 93126
답변완료
문의드립니다
안녕하세요.
차트속성에 설정되어 있는 전체봉개수에 대한 최고가와 최저가를 지정하는 랭게이지가 있나요?
수고하세요.
2015-12-06
132
글번호 93125
답변완료
옵션 수평선 문의요
옵션이 시가대비 15% 내려왔을 경우 수평선이 생기고 음성 나오게 할수잇나요?
2015-12-06
182
글번호 93124
답변완료
부탁드립니다.
A지표가 먼저 발생이되고난후(유지되는상황)의 B 지표는 유효하며
B지표가 A지표보다 같거나 먼저 발생이되면 무시하는 조건문을 부탁드립니다.
2015-12-06
134
글번호 93123