커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1631
글번호 230811
답변완료
종목검색식 재 문의 드려요
만들어주신 수식으로 종목검색을하면
기간 500일. 일봉 기준으로
2260개가 나오고 이격도하고 상관없이 나오네요.
제가 요청하는 수식 아래와 같습니다.
Smart Disparity Index를 계산하는 공식:
SDI = 100 x (EMA6 - simple_moving_average) / simple_moving_average
50일 이동평균 : SDI50 = 100 x (EMA6 - SMA50) / SMA50
10일 이동평균 : SDI10 = 100 x (EMA6 - SMA10) / SMA10
이렇게 10일과 50일 각각의 이동평균선을 구하고
이 수식으로 만든 10일과 50일선 두 선의 이격도가 2%이내인 종목을 찾는 검색식입니다.
다시한번 확인 부탁드려요
안녕하세요
예스스탁입니다.
input : length1(10);
input : length2(50);
var1 = ma(C,length1);
var2 = ma(C,length2);
value1 = 100 * (var1 - var2) / var1;
if abs(value1) < 10 Then
Find(1);
즐거운 하루되세요
> 신데렐라맨 님이 쓴 글입니다.
> 제목 : 종목검색식 문의 드려요
> 트뷰 smart disparty index 라는 지표인데
일반적인 이격도에 수식을 추가하여 지표를 부드럽게 만든거같습니다.
이 지표기준 그림처럼 10일선과 50일선의 이격도가 2%이내인 종목을
찾는 검색식좀 만들어주세용~~
https://kr.tradingview.com/v/P6RTbphF/
2025-01-13
703
글번호 187155
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
아래 조건에 맞는 시스템식 부탁드립니다.
종목 : 해외선물
차트 : 5분봉
매수 : 5일 이평이 10일 이평 상승 돌파시 매수 1계약
추가매수 : 매수후 10틱 하락시 추가 1계약 매수
추가매수 횟수는 변수를 설정해서 최대 진입회수를 제한 할수 있게 부탁드립니다.
매수익절 : 매수후 평균수익이 20틱 이상일 경우 익절
매수손절 : 매수후 평균손실이 50틱 이상일 경우 손절
죄송하지만 주석도 부탁드립니다.
감사합니다.
2025-01-13
516
글번호 187154
답변완료
종목 검색식 부탁드립니다
항상 감사 드립니다.
다음 수식을 예스트레이더 종목검색식으로 부탁드립니다
cnt=countsince(date==date(1)
&& date==date(2)
&& date!=date(3),c>dayopen()
&& c(1)<dayopen());
s=countsince(date!=date(1), c<dayopen());
cnt==1 && cnt(1)==0
&& s>1
2025-01-13
551
글번호 187153
살빼고싶다 님에 의해서 삭제되었습니다.
2025-01-14
73
글번호 187152
답변완료
문의드립니다.
var : T(0),B(0);
var1 = ma(C,20);
var2 = (DayHigh+DayLow)/2;
if sDate != sDate[1] Then
{
T = 0;
b = 0;
}
B = B +1;
if B >= 10 Then
{
if CrossUp(c,var1) then
T = 1;
if T == 1 and CrossUp(C,var2) Then
T = 2;
if T == 2 and C >= DayHigh*0.997 Then
{
T = 3;
Find(1);
}
}
음...이게 진짜 나중에 보면 정말 창피할 질문이지만...혼자 해보려는데...이해가 안되서 질문합니다...
1. 위의 검색식이 분봉기준이라는게 어떤건가요?
혹시...파워종목검색의 기준봉설정에 좌우되는 건가요?
2. 보면, 내부변수가 T와 B, 2개가 설정되어 있는데, B가 왜 분봉인가요?
3. 왜 1분이 지나 분봉하나생성되면 B가 1씩 더해 지나요?
이부분이 전혀 이해가...되지 않아요...ㅠㅠ
설명 부탁드립니다...
미리 감사합니다...ㅎ
2025-01-13
616
글번호 187151
답변완료
종목검색 재질문 드립니다.
노고에 감사드립니다.
질문1
3201. 3202 화면에서 과거시점을 검색하려고 5를 입력하고 검색해도 현재봉이 나오는데 제가 조작을 잘못했나요?
5를 입력후 5봉전 결과를 알고 싶을때 조작방법을 설명부탁드립니다.
질문2
지난번 질문에서 일목균형표 선행 (1 or 2) 보다 캔들(주가)이 아래 있기를 기대했는데 전부 일목 구름위에 있습니다.
일목 구름속 or 일목 아래 있는걸로 수정하려고 하는데 어디를 고처야할지 모르겠습니다.
수고스럽지만 부탁드립니다.
var : AA(0),BB(0),X1(0),X2(0),A(0);
AA=(H+L+C)/3;
BB=AA*V;
X1=AccumN(BB,2);
X2=AccumN(V,2);
A=X1/X2;
input : Period(20),dv(2);
var : BBup(0),BBmd(0),BBdn(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
var : 기준선(0), 전환선(0),선행스팬1(0), 선행스팬2(0);
전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2;
기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(High, 52)[25] + Lowest(Low, 52)[25]) / 2;
if ma(Money,5)[1] >= 500000000 and
ma(Volume,5)[1] >= 50000 and
ma(C,112) < ma(C,224) and ma(C,224) < ma(C,448) and
V >= ma(V,120)[1]*(700/100) and
A[3] > A[2] &&
A[2] > A[1] &&
A[1] < A[0] and
((CrossUp(C,bbup) or CrossUp(c,선행스팬1) or CrossUp(c, 선행스팬2)) or
CrossUp(C,C[25])) and
((C < min(선행스팬1,선행스팬2) and C >= min(선행스팬1,선행스팬2)*0.98) and
(C < C[25] and C >= C[25]*0.98)) Then
Find(1);
2025-01-13
534
글번호 187150
답변완료
도움 부탁드립니다
안녕하세요
늘 도움주셔서 감사드립니다.
아래의 지표 내용중에서 캔들에 "●","▼","▲" 표시를 하는 부분이 있습니다.
총 8개 인데 이 부분을 검색식으로나, 아니면 강조식이든 켄들이 종가 마감이 아닌
캔들이 시작될때 표시되었으면 합니다.
표현이 제대로 되었는지 ...
고맙습니다.
input : length(20);
input : len2(10);
input : showsignals(true);
input : highlighting(true);
var : upper(0),lower(0);
lower = lowest(L,length);
upper = highest(H,length);
plot1(upper, "Upper");
plot2(lower, "Lower");
var : up(0),down(0),sup(0),sdown(0);
var : k1(0),k2(0),k3(0),k4(0),i1(-1),i2(-1);
up=highest(high,length);
down=lowest(low,length);
sup=highest(high,len2);
sdown=lowest(low,len2);
if high >= up[1] Then
i1 = 0;
Else
{
if i1 >= 0 Then
i1 = i1+1;
}
if Low <= down[1] Then
i2 = 0;
Else
{
if i2 >= 0 Then
i2 = i2+1;
}
K1=iff(i1 <=i2, down , up);
K2=iff(i1 <= i2,sdown,sup);
K3=iff(close>K1,down,nan);
K4=iff(close<K1,up,nan);
plot3(K1,"Trend Line",red);
plot4(K2,"Exit Line",blue);
var : buySignal(False),sellSignal(False),buyExit(False),sellExit(False);
var : O1(-1),O2(-1),O3(-1),O4(-1);
var : E1(-1),E2(-1),E3(-1),E4(-1);
var : tx1(0),tx2(0),tx3(0),tx4(0);
var : tx5(0),tx6(0),tx7(0),tx8(0);
buySignal=high==upper[1] or CrossUp(high,upper[1]);
sellSignal = low==lower[1] or CrossUp(lower[1],low);
buyExit=low==sdown[1] or CrossUp(sdown[1],low);
sellExit = high==sup[1] or CrossUp(high,sup[1]);
if BuySignal == true Then
var1 = Index;
if sellSignal == true Then
var2 = Index;
if buyExit == true Then
var3 = Index;
if sellExit == true Then
var4 = Index;
O1= IFf(var1 > 0,Index-var1,-1);
O2= IFf(var2 > 0,Index-var2,-1);
O3= IFf(var3 > 0,Index-var3,-1);
O4= IFf(var4 > 0,Index-var4,-1);
if BuySignal[1] == true Then
var5 = Index;
if sellSignal[1] == true Then
var6 = Index;
if buyExit[1] == true Then
var7 = Index;
if sellExit[1] == true Then
var8 = Index;
E1= IFf(var5 > 0,Index-var5,-1);
E2= IFf(var6 > 0,Index-var6,-1);
E3= IFf(var7 > 0,Index-var7,-1);
E4= IFf(var8 > 0,Index-var8,-1);
if buySignal and O3<O1[1] Then
{
tx1 = Text_New(sDate,sTime,down,"●");
Text_SetColor(tx1,Green);
}
if buySignal and showsignals and O3<O1[1] Then
{
tx2 = Text_New(sDate,sTime,down,"▲");
Text_SetColor(tx2,Green);
}
if sellSignal and O4<O2[1] Then
{
tx3 = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx3,Red);
}
if sellSignal and showsignals and O4<O2[1] Then
{
tx4 = Text_New(sDate,sTime,down,"▼");
Text_SetColor(tx4,Red);
}
if buyExit and O1<O3[1] Then
{
tx5 = Text_New(sDate,sTime,up,"●");
Text_SetColor(tx5,blue);
}
if buyExit and showsignals and O1<O3[1] Then
{
tx6 = Text_New(sDate,sTime,down,"▼");
Text_SetColor(tx6,blue);
}
if sellExit and O2<O4[1] Then
{
tx7 = Text_New(sDate,sTime,down,"●");
Text_SetColor(tx7,Yellow);
}
if sellExit and showsignals and O2<O4[1] Then
{
tx8 = Text_New(sDate,sTime,down,"▲");
Text_SetColor(tx8,blue);
}
2025-01-13
556
글번호 187149
답변완료
질문드리겠습니다
답변감사드립니다
전에 질문에서 countif로 질문을 드렸던 이유가 조건검색 환경에서
aa[0] > aa[1]*1.05 인 조건이 예를들어 "200봉 이내에서 3회이상 발생했을때 검색"을 하려고 했던건데요,
만약에 아래와 같은 방법으로 작성 (cnt 범위는 수정을 한다고 했을때)하게 되면
h>l*1.08 이 가장 최근봉 (현재 진행봉) 이어야만 검색이 가능한건가요?
조건검색은 차트상 가장 최근봉 기준으로 검색이돼서
현재 당장에 발생한 봉만이 아니라, 과거의 만족 시점들도 찾으려면 countif 를 써야하는데
아래식처럼 모든봉 기준이 아니라, 특정 조건+배열로 묶었을때의 상황에서는 어떻게 작성해야되는지 궁금합니다
조건이 차트상에서 0봉이 아니라 과거에 있었던 거라면 ( 예를 들어 가장 최근 조건만족봉이 차트상 현재봉에서 N 봉 전에 나왔었다면),
"200봉 이내에 3회이상 발생" 이라는 조건을 검색하려면 어떻게 작성하면 될까요
감사합니다
var : cnt(0),count(0);
Array : aa[50](0);
if h>l*1.08 Then
{
TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
var1 = Index;
Var2 = var1[1];
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = h;
if aa[0] > aa[1]*1.05 Then Plot12(h,"aa comp",Green,Def,1);
count = 0;
for cnt = 0 to 4
{
if aa[cnt] > aa[cnt+1]*1.05 then
count = count+1;
}
if count >= 3 then
Plot13(h,"CountIf",Red,Def,1);
}
2025-01-14
626
글번호 187148
답변완료
예트 코드 올립니다.잘못된 주문이 나갑니다. 검토바랍니다.
var : vEntryPrice(2232.9), vExitPrice(2345.9), vLossCutPrice(2188.2);
// 매수진입부분
if C > vLossCutPrice and C <= vEntryPrice and MarketPosition == 0 Then
Buy("매수", AtMarket);
// 익절부분. 로직에따라 SetStopProfittarget 사용
if C >= vExitPrice and MarketPosition == 1 Then
ExitLong("매수청산", AtMarket);
// 손절매. 로직에따라 SetStopLoss 사용
if C <= vLossCutPrice and MarketPosition == 1 Then
Sell("손절", AtMarket);
첨부한 1/9 매수가격 일시 이후에 실행했기에 매수는 이루어지지 않았습니다.
(eFriend Force 스샷보시면 매수 없습니다)
그런데 첨부한 스샷처럼 1/10 같은 시간에 exitlong과 손절이 됐습니다.
1. MarketPosition이 1일때 주문하도록 조건이 들어갔는데 왜 매도 주문이 나갔을까요?
2. 왜 매도주문이 2개가 같은 시간에 동시에 나갔을까요?
추가 필요한 자료 있으면 올리겠습니다.
2025-01-12
588
글번호 187144