커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1541
글번호 230811
답변완료
수식변환부탁드립니다
트레이딩뷰 수식을 예스트레이더 강조수식으로 변환부탁드립니다
항상 감사드립니다
len=input(10)
o=ema(open,len)
c=ema(close,len)
h=ema(high,len)
l=ema(low,len)
haclose = (o+h+l+c)/4
haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2
hahigh = max (h, max(haopen,haclose))
halow = min (l, min(haopen,haclose))
len2=input(10)
o2=ema(haopen, len2)
c2=ema(haclose, len2)
h2=ema(hahigh, len2)
l2=ema(halow, len2)
col=o2>c2 ? red : lime
plotcandle(o2, h2, l2, c2, title="heikin smoothed", color=col)
2023-04-29
1098
글번호 168601
답변완료
지표관련 문의드립니다
안녕하세요. 수식작성에 도움주셔서 항상 감사합니다
1) 첨부한 차트에서 나오는 숫자는 어떤 의미인지 간단하게라도 안내부탁드립니다
저점대비 가격상승/하락분을 나타내는것 같기도 하고..
수치는 어떤 위치일때만 표시하는 건가요? 어디는 숫자가 있고 어디는 없고...
(혹시 아신다면 ...의미있는 수치는 몇% 을 기준으로 보나요? 종목마다 다르겠지만 )
2) 첨부한 아래 수식에서
0봉전기준, 이전 60봉이내 가장 높은 수치를 표기한 위치부분에서
윗꼬리는 제외하고 양봉의 종가부분(유첨 ① 캔들)과 처음 발생한 음봉의 시가(유첨 ②캔들)에 2개의 수평라인을 긋는 지표수식 부탁드립니다
(60봉이내는 숫자 조정가능)
참고로,차트에 적용한 지표수식을 첨부합니다
-----------지표수식--------------------------------------
Input : 전환(0.2),쌍바닥상(1),쌍바닥하(2),쌍봉상(1),쌍봉하(2);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""), TL1(0),TX1(0);
Array:고[10,4](0),저[10,4](0);
var : box(0),BB(False);
var : TX11(0),TX12(0),TX13(0);
var : cond11(False),cond12(False),cond13(False);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1]+전환 <= HH and hiBar == 0;
Condition2 = 고[1,1]-전환 >= LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
//양전환되면 tx11점은 삭제
Text_Delete(tx11);
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New_Self(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,2);
TL_SetColor(TL1,RED);
Text_Delete(tx1);
TX1 = Text_New_Self(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1]-저[1,1],2));
Text_SetSize(tx1,25);
Text_SetColor(Tx1,Red);
Text_SetStyle(tx1,1,1);
Text_SetBold(tx1,1);
cond13 = False;
if 고[1,1] <= 고[2,1]+PriceScale*쌍봉상 and 고[1,1] >= 고[2,1]-PriceScale*쌍봉하 and 고[2,1] > 0 Then
{
cond13 = true;
tx13 = Text_New(고[1,3],고[1,4],고[1,1],"●");
Text_SetStyle(tx13,2,0);
Text_SetColor(tx13,Magenta);
Text_SetSize(tx13,20);
}
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
Text_SetString(TX1,NumToStr(고[1,1]-저[1,1],2));
Text_SetLocation(TX1,고[1,3],고[1,4],고[1,1]);
if cond13 == False Then
{
if 고[1,1] <= 고[2,1]+PriceScale*쌍봉상 and 고[1,1] >= 고[2,1]-PriceScale*쌍봉하 and 고[2,1] > 0 Then
{
cond13 = true;
tx13 = Text_New (고[1,3],고[1,4],고[1,1],"●");
Text_SetStyle(tx12,2,0);
Text_SetColor(tx12,Magenta);
Text_SetSize(tx12,20);
}
}
Else
{
if 고[1,1] <= 고[2,1]+PriceScale*쌍봉상 and 고[1,1] >= 고[2,1]-PriceScale*쌍봉하 and 고[2,1] > 0 Then
{
Text_SetLocation(tx11,고[1,3],고[1,4],고[1,1]);
}
Else
{
Text_Delete(tx12);
cond12 = False;
}
}
}
최종꼭지점 = "고점";
Plot1(고[1,1]);
NoPlot(2);
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,2);
TL_SetColor(TL1,BLUE);
Text_Delete(tx1);
TX1 = Text_New_Self(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1]-고[1,1],2));
Text_SetSize(tx1,25);
Text_SetColor(Tx1,Blue);
Text_SetStyle(tx1,1,0);
Text_SetBold(tx1,1);
bb = False;
if bb == False and 저[1,1] <= 고[1,1]-0.5 and 고[1,1] > 0 Then
{
bb= true;
box = Box_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Box_SetColor(box,Lime);
Box_SetFill(box,true,70);
}
cond11 = False;
if 저[1,1] >= 저[2,1]-PriceScale*2 and 저[2,1] > 0 Then
{
cond11 = true;
tx11 = Text_New(저[1,3],저[1,4],저[1,1],"●");
Text_SetStyle(tx11,2,0);
Text_SetColor(tx11,Blue);
Text_SetSize(tx11,30);
}
cond12 = False;
if 저[1,1] < DayHigh-0.7 and 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
cond12 = true;
tx12 = Text_New(저[1,3],저[1,4],저[1,1],"●");
Text_SetStyle(tx12,2,0);
Text_SetColor(tx12,Green);
Text_SetSize(tx12,20);
}
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
Text_SetString(TX1,NumToStr(저[1,1]-고[1,1],2));
Text_SetLocation(TX1,저[1,3],저[1,4],저[1,1]);
if bb == true Then
Box_SetEnd(box,저[1,3],저[1,4],저[1,1]);
Else
{
if bb == False and 저[1,1] <= 고[1,1]-0.5 and 고[1,1] > 0 Then
{
bb= true;
box = Box_New_Self(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
Box_SetColor(box,Lime);
Box_SetFill(box,true,70);
}
}
if cond11 == true Then
{
if 저[1,1] >= 저[2,1]-PriceScale*2 and 저[2,1] > 0 Then
Text_SetLocation(tx11,저[1,3],저[1,4],저[1,1]);
if 저[1,1] < 저[2,1]-PriceScale*2 and 저[2,1] > 0 Then
{
Text_Delete(tx11);
cond11 = False;
}
}
if cond12 == False Then
{
if 저[1,1] < DayHigh-0.7 and 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
cond12 = true;
tx12 = Text_New(저[1,3],저[1,4],저[1,1],"●");
Text_SetStyle(tx12,2,0);
Text_SetColor(tx12,Green);
Text_SetSize(tx12,20);
}
}
Else
{
if 저[1,1] < DayHigh-0.7 and 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
Text_SetLocation(tx11,저[1,3],저[1,4],저[1,1]);
}
Else
{
Text_Delete(tx12);
cond12 = False;
}
}
}
최종꼭지점 = "저점";
Plot2(저[1,1]);
NoPlot(1);
}
2023-04-29
1052
글번호 168600
답변완료
사용자함수 만들때 array 값 입력 문의
질문1. 사용자 함수 만들때 array 값을 넣을수 있나요?
input : 입력(array);
위와 같이 해도 가능한가요?
안된다면 함수 입력값을 배열(array)로 입력 하는 방법 부탁드립니다.
질문2. 사용자 함수 리턴 값을 두개로 받을 수 있는 방법은 없는지요?
2023-04-29
709
글번호 168599
답변완료
거래대금
ETF 두종목의 일 거래 대금을 합쳐서 지표로 표시 하고 싶습니다
A 종목의 일 거래 대금과 B 종목의 거래 대금을 더해서 표시 하는 방법을 문의 드립닏
2023-04-29
768
글번호 168598
신대륙발견 님에 의해서 삭제되었습니다.
2023-04-30
45
글번호 168597
답변완료
주문 수량, 금액 관련
안녕하세요.
주문함수에서 수량을 입력하는데, 혹시 베팅 금액에 맞게 수량이 계산되게 할 수 있나요?
Buy(~~~, 수량);
자금관리 코드를 구현해서 시뮬레이션을 하고 있는데요.
최초 진입시 총자산의 60%를 들어갔고, 피라미딩 시 남은 40%를 들어가려고 하는데,
수량을 계산할 때와 진입할 때의 주식 가격이 달라지기 때문에 총자산을 초과하게 수량이 주문되는 경우가 있더라고요.
감사합니다.
2023-04-29
510
글번호 168596
답변완료
문의드립니다
1분봉차트입니다
1번
if stime >= 151000 and stime != 153000 Then
Buy("피라미딩1번", AtStop, LatestEntryPrice(0)*1.1, 수량) );
질문1 : 위 수식에서, 만약 동시호가 끝나고 확정된 그날의 종가에서 매수조건 만족 시 (이전까지는 매수조건 만족 안됨) -> 장이 마감되면서 실전 차트의 15시 31분봉에 매수신호(꽉 찬 화살표)는 나타나지만, 실제로는 주문거부가 뜸 -> 이게 맞을까요?
아니면 차트상에 꽉찬 화살표 없이 바로 주문거부가 뜰까요?
질문2 : 일반적으로, 주문이 들어갔는데 거부된 주문거부들은, 시스템 모니터[6103]에서 확인할 수 있나요? 아니면 미체결[1102]에서 확인할 수 있나요?
오늘의 주문거부된 것들은, 오늘밤12시까지는 확인 가능하다가 다음날이 되면 사라지는지요?
(다음날에, 어제 주문거부되었던 것들을 확인하기는 불가능한가요?)
2번
if stime == 153000 and C > LatestEntryPrice(0)*1.1 Then
Buy("피라미딩2번", OnClose,def, 수량 );
질문1 : 위 수식에서, 만약 동시호가 끝나고 확정된 종가에서 매수조건 만족 시 (이전까지는 매수조건 만족 안됨) -> 실제 매수주문은 다음날 첫분봉에 나가겠지만, onclose기 때문에 차트의 15시 31분봉(stime == 153000)에 예비신호 표시됨(텅빈 화살표) -> 이 예비신호는 언제까지 차트에 떠있을까요?
오늘 당일이 끝날때까지는(밤 12시까지는) 남아있는지, 아니면 장이 마감했기때문에 예비신호도 떳따가 바로 사라지는지.. 궁금합니다
2023-04-30
670
글번호 168595
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2023-04-29
16
글번호 168594
답변완료
부탁 드립니다
도움에 감사 드립니다.
국내주식용 차트에 수직선이 분봉용에는 잘 그어지나..
틱봉용 차트에서 나타 나지 않습니다..
지정한 시간 근처에 표시되도 괜찮습니다.
방법이 있는지요?
미리 감사 드립니다.
input:시작(90000);
var:tl96(0);
if stime == 시작 or (stime > 시작 and stime[1] < 시작) Then
TL96 = TL_New(sdate,stime,9999999,sdate,stime,-999999);
2023-04-29
675
글번호 168593