커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3211
글번호 230811
답변완료
문의드립니다!
안녕하세요!
1, 지난주에 수정해주신 아래 수식1에서 다음사항을 보완수정 부탁드립니다
즉, 봉과 상대선의 만남의 형태가 1) 하방에서 상방으로 2) 상방에서 하방으로..
이렇게 2가지 경우가 있는데 현재수식에서는 어느 한가지 방향에서의 만남시에만 신호가 발생되는것같습니다
예를들어서
1) 콜봉이 상대고점과 만남시 하방에서 상방으로 향한경우에는 신호가 발생
상방에서 하방으로 향한경우에는 신호가 미발생됩니다
2) 콜봉이 상대저점과 만남시 하방에서 상방으로 향한경우에는 신호가 미발생
상방에서 하방으로 향한경우에는 신호가 발생됩니다
* 풋봉의 경우도 똑같은 이치로서 한가지 경우에만 신호가 발생됩니다
수고스러우시겠지만 모든경우에 다 신호가 발생토록 보완수정 부탁드리겠습니다
2, 아래 수식2에서 선의 이름이 화면 왼쪽에서 발생되도록 수정 부탁드립니다
매번 도와주심에 진심으로 다시한번 감사드립니다 !!!
------------------------------------------------------------------------------------
(수식 1)
input : N(0),굵기(3);
var : H1(0,data1),L1(0,data1),H2(0,Data1),L2(0,Data1);
var : TL1(0,data1),TL2(0,data1),TL3(0,data1),TL4(0,data1);
H1 = data1(DayHigh(0));
L1 = data1(DayLow(0));
H2 = data2(HighD(0));
L2 = data2(LowD(0));
Plot1(H1,"data1 최고");
Plot2(L1,"data1 최저");
Plot3(H2,"data2 최고");
Plot4(L2,"data2 최저");
#data1가격이 상승해 Data2 최고가-N틱을 만날때
if data1(H) >= H2-PriceScale*N and data1(H[1]) < H2[1]-PriceScale*N Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL1 = TL_new(sDate,sTime,99999999,sDate,sTime,0);
TL_SetSize(TL1,굵기);
TL_SetColor(TL1,RED);
}
#data1가격이 하락해 Data2 최저가+N틱을 만날때
if data1(L) <= L2+PriceScale*N and data1(L[1]) > L2[1]+PriceScale*N Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL2 = TL_new(sDate,sTime,99999999,sDate,sTime,0);
TL_SetSize(TL2,굵기);
TL_SetColor(TL2,BLUE);
}
#data2가격이 상승해 Data1 최고가-N틱을 만날때
if data2(H) >= H1-PriceScale*N and data2(H[1]) < H1[1]-PriceScale*N Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL3 = TL_new(sDate,sTime,99999999,sDate,sTime,0);
TL_SetSize(TL3,굵기);
TL_SetColor(TL3,MAGENTA);
}
#data2가격이 하락해 Data1 최저가+N틱을 만날때
if data2(L) <= L1+PriceScale*N and data2(L[1]) > L1[1]+PriceScale*N Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL4 = TL_new(sDate,sTime,99999999,sDate,sTime,0);
TL_SetSize(TL4,굵기);
TL_SetColor(TL4,CYAN);
}
(수식 2)
var : 당일시가(0),전일시가(0),금일종가(0),전일종가(0);
var : 금일고가(0),전일고가(0),금일저가(0),전일저가(0);
var : 금일중간가격(0),전일중간가격(0),천정대칭가격(0),바닥대칭가격(0);
var : Tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0);
var : Tx7(0),tx8(0),tx9(0),tx10(0),tx11(0),tx12(0);
당일시가 = dayopen;
전일시가 = dayopen(1);
금일종가 = dayclose;
전일종가 = dayclose(1);
금일고가 = dayhigh;
전일고가 = dayhigh(1);
금일저가 = daylow;
전일저가 = daylow(1);
금일중간가격 = (dayhigh + daylow)/2;
전일중간가격 = (dayhigh(1)+daylow(1))/2;
천정대칭가격 = dayhigh + (dayhigh - dayhigh(1));
바닥대칭가격 = daylow - (daylow-daylow(1));
Plot1(당일시가);
Plot2(전일시가);
Plot3(금일종가);
Plot4(전일종가);
Plot5(금일고가);
Plot6(전일고가);
Plot7(금일저가);
Plot8(전일저가);
Plot9(금일중간가격);
Plot10(전일중간가격);
Plot11(천정대칭가격);
Plot12(바닥대칭가격);
if Index == 1 or Bdate != Bdate[1] Then
{
tx1 = Text_New_Self(sDate,sTime,당일시가,"당일시가 "+NumToStr(당일시가,2));
tx2 = Text_New_Self(sDate,sTime,전일시가,"전일시가 "+NumToStr(전일시가,2));
tx3 = Text_New_Self(sDate,sTime,금일종가,"금일종가 "+NumToStr(금일종가,2));
tx4 = Text_New_Self(sDate,sTime,전일종가,"전일종가 "+NumToStr(전일종가,2));
tx5 = Text_New_Self(sDate,sTime,금일고가,"금일고가 "+NumToStr(금일고가,2));
tx6 = Text_New_Self(sDate,sTime,전일고가,"전일고가 "+NumToStr(전일고가,2));
tx7 = Text_New_Self(sDate,sTime,금일저가,"금일저가 "+NumToStr(금일저가,2));
tx8 = Text_New_Self(sDate,sTime,전일저가,"전일저가 "+NumToStr(전일저가,2));
tx9 = Text_New_Self(sDate,sTime,금일중간가격,"금일중간가격 "+NumToStr(금일중간가격,2));
tx10 = Text_New_Self(sDate,sTime,전일중간가격,"전일중간가격 "+NumToStr(전일중간가격,2));
tx11 = Text_New_Self(sDate,sTime,천정대칭가격,"천정대칭가격 "+NumToStr(천정대칭가격,2));
tx12 = Text_New_Self(sDate,sTime,바닥대칭가격,"바닥대칭가격 "+NumToStr(바닥대칭가격,2));
}
Else
{
Text_SetLocation(tx1,NextBarSdate,NextBarStime,당일시가);
Text_SetLocation(tx2,NextBarSdate,NextBarStime,전일시가);
Text_SetLocation(tx3,NextBarSdate,NextBarStime,금일종가);
Text_SetLocation(tx4,NextBarSdate,NextBarStime,전일종가);
Text_SetLocation(tx5,NextBarSdate,NextBarStime,금일고가);
Text_SetLocation(tx6,NextBarSdate,NextBarStime,전일고가);
Text_SetLocation(tx7,NextBarSdate,NextBarStime,금일저가);
Text_SetLocation(tx8,NextBarSdate,NextBarStime,전일저가);
Text_SetLocation(tx9,NextBarSdate,NextBarStime,금일중간가격);
Text_SetLocation(tx10,NextBarSdate,NextBarStime,전일중간가격);
Text_SetLocation(tx11,NextBarSdate,NextBarStime,천정대칭가격);
Text_SetLocation(tx12,NextBarSdate,NextBarStime,바닥대칭가격);
}
2020-08-24
897
글번호 141722
답변완료
수식어 부탁드립니다
Input : short(12), long(26), signal(9),Profit(20),Drop(10);
input : StartTime(70000),EndTime(55000);
var : Tcond(false);
Var : MACDv(0), MACDs(0),macdo(0) ;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
MACDv = MACD(short, long);
MACDs = ema(MACDv,signal);
macdo = MACDv-MACDs;
if Tcond == true then
{
if MarketPosition <= 0 and crossup(MACDO,0) Then
buy("b");
if MarketPosition >= 0 and CrossDown(MACDO,0) Then
sell("s");
if MarketPosition == 1 then
{
if highest(H,BarsSinceEntry) >= EntryPrice+Profit then
{
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-drop);
}
}
if MarketPosition == 1 then
{
if Lowest(L,BarsSinceEntry) <= EntryPrice-Profit then
{
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+drop);
}
}
}
if EndTime > StartTime Then
SetStopEndofday(EndTime);
Else
{
if sdate != sdate[1] Then
SetStopEndofday(EndTime);
if bdate != bdate[1] Then
SetStopEndofday(0);
}
----------------------------
수식어를 통한 특정기간,시간의 진입 신호가 나오질 않아서 문의 드립니다
2020-08-24
1123
글번호 141716
답변완료
수식어 부탁드립니다
if MarketPosition <= 0 Then
buy("b",atlimit,dayhigh-PriceScale*90);
if MarketPosition == 1 Then
exitlong("bx",atlimit,lowest(L,BarsSinceEntry)+PriceScale*50);
if MarketPosition >= 0 Then
sell("s",atlimit,daylow+PriceScale*600);
if MarketPosition == -1 Then
ExitShort("sx",atlimit,Highest(H,BarsSinceEntry)-PriceScale*57);
if sdate != sdate[1] Then
SetStopEndofday(55000);
if bdate != bdate[1] Then
SetStopEndofday(0);
-------------------------------------
위 수식어에서 청산후 진입신호는 청산후 20분이 지난 캔들의 하이로우에서 다시 진입신호가 되도록 수식어를 부탁 드립니다.
늘 감사합니다.
2020-08-24
1069
글번호 141714
답변완료
차트 보조도구 저장방법 문의
안녕하세요. 차트 보조도구에
'지지저항 분석선'을 적용후에 저장하는 방법을 알고 싶습니다.(그리고 수평선 그은 것도 저장이 안되네요)
차트에 다 적용하고 설정한 후에
화면틀 저장, 차트틀 저장 했는데도
예스차트 껐다키거나 불러오기 했을 때 다 사라져 있네요. 어떻게 저장하나요?
2020-08-24
1014
글번호 141711
답변완료
다음의 기능이 가능한지 궁금합니다.
다음의 내용이 궁금합니다.
1. 특정 조건이 만족할 때 차트에 수평선을 그리는게 가능한가요?
(예: 양봉 3개 발생시 차트에 수평선 그리기)
2. 봉이 완성되지 않고 중간에 조건을 만족할 때 매매 신호를 발생시키는 것도 가능한가요?
(예: 5분봉에서 봉의 시가 보다 1포인트 상승할때 매수 ..와 같이 봉을 만드는 중간에 조건이 만족할 때도 매매 신호의 발생이 가능한지 알고 싶습니다.)
3. 볼린저 밴드와 현재가의 차이를 표시하는게 가능한가요?
(예: 볼린저 밴드의 상단값과 현재가의 차이를 지속적으로 표시하는게 가능할까요? 1분 봉이라면 1분마다 해당 값을 업데이트하여 표시할 수 있을까요?
2020-08-24
1040
글번호 141710
답변완료
분단위 중심선표시
안녕하세요
첨부파일과 같이 표현하고싶읍니다
장시작이후 분단위 15봉 30봉 60봉 기준으로 고가저가를
표시하고중심값을 표시하며 현제가가준으로 마지막 2개의
박스중심값은 연장선으로 표시하는 지표수식좀 부탁합니다
15봉 30봉 60봉은 각자 변수로 지정할수있게 부탁합니다
2020-08-24
1271
글번호 141709
답변완료
지표작성 문의드립니다.
현재 차트에 1분봉 차트에 콜옵션 20개 풋옵션20개 띄워놓은 상태입니다.(data1 부터 data40이라고 가정)
여기서 실시간으로 누적 거래금액이 최대인 옵션의 콜과 풋의 data번호를 찾아서,
차트상에 해당 옵션 가격에 +0.02pt 한 위치에 plot 지표를 띄우고 싶습니다.
예를 들면, 현재 data15콜과 data30풋이 누적 거래금액이 최대 종목이라면, 차트상 이 옵션의 캔들마다 바로 위에 점그래프든 원그래프든 색과 도형을 표시하고 싶습니다.(또 실시간이니 최대누적금액 종목이 바뀌면 자동으로 바꿔 표시되게 하고 싶습니다.)
도와주시면 감사하겠습니다.
2020-08-24
1209
글번호 141708
답변완료
수식문의 드립니다.
a=wavg(h,기간1);
Sma1=a*e;
f=wavg(h,기간2);
Sma2=f*e;
i=wavg(h,기간3);
Sma3=i*e;
max(Sma1,Sma2,Sma3)
안녕하세요.
키움수식입니다.
e는 변수고요.
어떻게 표현해야될까요?
부탁드립니다.
2020-08-24
1014
글번호 141707
답변완료
시스템 손절매 기능
안녕하세요?
시스템에서 손절매 기능 문의드립니다.
운용하는 계약수에 따라 손절매가 달라지나요?
즉.. 만약 10pt에 손절매 옵션을 선택했다면,
1계약을 할때와 2계약을 할때 청산 로직이 달라지게 되는건가요?
혹시 계약수에 상관없이 손절을 하려면 어떻게 해야 할까요?
2020-08-24
1172
글번호 141706