커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3737
글번호 230811
회원 님에 의해서 삭제되었습니다.
2019-08-11
0
글번호 131066
답변완료
안녕하세요(price channel포함)
price channel지표식
INPUT : LENGTH(10),N(1);
VAR : TCHAN(0), BCHAN(0);
TCHAN = HIGHEST(HIGH, LENGTH)[0];
BCHAN = LOWEST(LOW, LENGTH)[0];
PLOT1(TCHAN+PriceScale*N, "TOP+");
PLOT2(TCHAN-PriceScale*N, "TOP-");
PLOT3(BCHAN+PriceScale*N, "BOT+");
PLOT4(BCHAN-PriceScale*N, "BOT-");
반갑습니다
아래식을 수정의뢰 합니다.
1.사용중 추세선그린후 보조도구 삭제하면 지표가 작제됩니다
2.평행일때 앞의값을 계속 따라감(주기변경때 상.하단지표 간격이 너무 좁아요)
............
input : 타주기분1(15),타주기분2(30),폭(5);
var : S1(0),D1(0),TM(0),TF1(0),TF2(0),cnt(0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
Array : O1[100](0),H1[100](0),L1[100](0);
Array : O2[100](0),H2[100](0),L2[100](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
//15분
TF1 = TM%타주기분1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then
{
O1[0] = O;
H1[0] = H;
L1[0] = L;
for cnt = 1 to 99
{
O1[cnt] = O1[cnt-1][1];
H1[cnt] = H1[cnt-1][1];
L1[cnt] = L1[cnt-1][1];
}
}
if H > H1[0] Then
H1[0] = H;
if L < L1[0] Then
L1[0] = L;
plot1(O1[0],"시가1");
plot2(H1[0],"고가1");
plot21(H1[0]+PriceScale*폭,"고가1+");
plot22(H1[0]-PriceScale*폭,"고가1-");
plot3(L1[0],"저가1");
plot31(L1[0]+PriceScale*폭,"저가1+");
plot32(L1[0]-PriceScale*폭,"저가1-");
Text_Delete(tx1);
Text_Delete(tx2);
tx1 = Text_New(sdate,stime,H1[0],NumToStr(H1[0],2));
tx2 = Text_New(sdate,stime,L1[0],NumToStr(L1[0],2));
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,0);
//30분
TF2 = TM%타주기분2;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF2 < TF2[1]) Then
{
O2[0] = O;
H2[0] = H;
L2[0] = L;
for cnt = 1 to 99
{
O2[cnt] = O2[cnt-1][1];
H2[cnt] = H2[cnt-1][1];
L2[cnt] = L2[cnt-1][1];
}
}
if H > H2[0] Then
H2[0] = H;
if L < L2[0] Then
L2[0] = L;
plot4(O2[0],"시가2");
plot5(H2[0],"고가2");
plot51(H2[0]+PriceScale*폭,"고가2+");
plot52(H2[0]-PriceScale*폭,"고가2-");
plot6(L2[0],"저가2");
plot61(L2[0]+PriceScale*폭,"저가2+");
plot62(L2[0]-PriceScale*폭,"저가2-");
Text_Delete(tx3);
Text_Delete(tx4);
tx3 = Text_New(sdate,stime,H2[0],NumToStr(H2[0],2));
tx4 = Text_New(sdate,stime,L2[0],NumToStr(L2[0],2));
Text_SetStyle(tx3,0,1);
Text_SetStyle(tx4,0,0);
}
감사합니다.
2019-09-20
354
글번호 131065
답변완료
수식 부탁드림니다.
매수 수식부탁드리겠습니다
RSI (14) < 20 이하인 조건이 연속 3회(세번째) 되는 봉에 매수 진입하는 수식 부탁드리겠습니다.
2019-08-11
260
글번호 131064
답변완료
지표식 문의드립니다.
var1의 기준선이 미리 설정되어 있습니다.
C가 var1을 상승돌파하면 누적을 하면서 돌파이후 고가와 저가의 중간을 표시
C가 var1을 하락돌파하면 누적을 하면서 하락돌파이후 고가와 저가의 중간을 표시하는
지표식을 부탁드립니다.
2019-08-11
253
글번호 131063
답변완료
1차 진입 후 추가 진입하는 로직, 추가 진입한 것만을 별도로 정리하는 것 구현하고 싶어요
문의 드립니다.
10시 기준으로 당중선 위면 매수 진입, 아래이면 매도 진입을 하고
10시 이후에 추가 진입하는 로직을 작성하려 합니다.
14시 20분까지 1차로 매수 포지션을 취한 경우
1차 진입보다 20틱 아래로 내려가면 추가매수 진입하고
매도일 경우는 반대로 추가 매도진입하는 것을 만들고 싶습니다.
아래로직을 만들어 보았으나 정상 작동하니 안네요
// **a 에서 // **b 사이 로직
추가로 2차 진입한 것은 당중선에 오면
해당 진입분은 익절 정리하고
1차 진입분이 15시20분에 정리되도록 하고 싶은 데
어떻게 하면 될까요
=================================================================
Input : stoploss(2), xx(50), xxx(2);
Input : st_time(100000), et_time(142000), clear_time(152000);
Input : Day_Entris(2), nn(20);
Var : 당중선(0);
당중선 =(DayHigh(0)+DayLow(0))/2;
If C >= 당중선 && stime == st_time Then {
Buy("b1", atMarket);
}
If C < 당중선 && stime == st_time Then {
Sell("s1", atMarket);
}
// **a
If MarketPosition == 1 && entriestoday(date) < Day_Entris && stime < et_time Then
{
buy("b2", AtStop, LatestEntryPrice(0)-PriceScale*nn,1);
}
If MarketPosition == -1 && entriestoday(date) < Day_Entris && stime < et_time Then
{
sell("s2", AtStop, LatestEntryPrice(0)+PriceScale*nn,1);
}
// **b
If stime > clear_time Then {
ExitLong();
ExitShort();
}
SetStopLoss(stoploss);
SetStopTrailing(xx, xxx, PercentStop);
2019-08-11
346
글번호 131062
답변완료
몇가지 문의드립니다.
단기이평이 장기이평을 상향돌파시 설정한 봉갯수 내의 최고가를 구하고 하향돌파시 최저가를 구하여 차트상에 표시하고자 합니다.
제가 작성해본 수식은 이러한데 제대로 적용이 안되네요. 차트 위치에 따라 지표가 달리 움직입니다.
input: fastlen(10), slowlen(50), chanel(30);
Vars: fastma(0), slowma(0), snprice(0), bnprice(0), bcount(0), scount(0);
fastma=ma(c, fastlen);
slowma=ma(c, slowlen);
if crossup(fastma, slowma) and index > 1 then{
bnprice=Highest(H, chanel)[1];
}
if CrossDown(fastma,slowma) and index > 1 then {
snprice=lowest(l, chanel)[1];
}
plot1(bnprice);
plot2(snprice);
2. 수식예제를 보다보면 추적청산에
if marketposition == 1 and marketposition[1] <> 1 then
라고 많이 쓰이던데 여기서 직전포지션값은 왜 필요로하는건가요?? 없으면 어떻게 되는지??
아래는 추적청산 풀예제입니다
mp = marketposition;
if MP == 1 and MP[1] <> 1 then Begin
StopPrice = low - ma(range,4)*mult;
end;
if MP == -1 and MP[1] <> -1 then begin
StopPrice = High + ma(range,4)*mult;
end;
If MP == 1 then begin
exitlong ("ExitLong", atstop,stopprice );
stopprice = stopprice +( low-stopprice )/Div;
end;
If MP == -1 then begin
exitshort ("Exitshort", atstop,stopprice);
stopprice = stopprice - (stopprice-high)/Div;
end;
2019-08-11
346
글번호 131061
겐지 님에 의해서 삭제되었습니다.
2019-08-11
0
글번호 131060
답변완료
항셍 시초가 기준
DayOpen함수로 당일 시가를 얻어오는 과정에서 항셍 종목의 경우 이상한 점이 있어 문의 드립니다.
타사 차트는 당일 시가 기준을 한국장 시작 시간인 오전 10:15분 최초 가격을 기준으로 하는데
예스 차트의 경우 다른 기준인 것 같아서 어려움을 겪고 있습니다.
항셍 일봉의 경우 예스차트와 타사(키움) 차트와도 다르게 표시되는데 제가 원하는것은
오전 10시 15분에 최초로 찍힌 가격입니다.
틱차트를 이용하는데 DayOpen으로 원하는 시가를 얻지 못하고 있습니다.
아시다시피 틱차트는 갭이 연결이 되어버리므로 최초 캔들의 시가가 전캔들의 종가라.. 실제 장시작과 함께 갭이 발생했을경우 실제적인 시가를 알수가 없습니다.
항셍은 오전 10:15분 시작하는 시간대가 메인장이라 생각되는데,
제가 원하는 시가를 얻어올수 있는 방법은 없는지요?
2019-08-10
418
글번호 131059
답변완료
문의드립니다.
아래의 키움수식을 예스트레이더 종목검색식으로 좀 부탁드립니다.
S=sum(1);
M=ma(C,Period);
MH=valuewhen(1,M>M(1),M);
HH=HighestSince(1,Crossup(S,TN-PN),MH);
HH=HH(1) && HH(1)==HH(2)
*지표 TN : 300
PN : 60
Period : 30
2019-08-10
332
글번호 131058