커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3748
글번호 230811
답변완료
수식전환 부탁드립니다.
수식전환 부탁드립니다.
length = input(title="Length", type=integer, defval=45)
powersLength = input(title="Elder Powers Length", type=integer, defval=10)
adjustableLevel = input(title="Adjustable Entry Level", type=integer, defval=75)
applyFilling = input(title="Apply Powers Filling ?", type=bool, defval=false)
elderBullPower = high - ema(close, powersLength)
elderBearPower = low - ema(close, powersLength)
adjust(value) => 100 * value / length
bullCount = sum(elderBullPower > 0 ? 1 : 0, length)
bearCount = sum(elderBearPower < 0 ? 1 : 0, length)
total = adjust(abs(bullCount - bearCount))
bull = adjust(bullCount)
bear = adjust(bearCount)
bullPlot = plot(bull, title="Bull", linewidth=2, color=#0ebb23, transp=0)
bearPlot = plot(bear, title="Bear", linewidth=2, color=red, transp=0)
plot(total, title="Total", linewidth=2, color=#3c78d8, transp=0)
fillColor = applyFilling ? (bull > bear ? #0ebb23 : red) : color(white, 100)
fill(bullPlot, bearPlot, color=fillColor, transp=80)
hline(adjustableLevel, title="Adjustable Entry Level", linestyle=dotted)
hline(50, title="Middle Level", linestyle=dotted, color=#f49517)
2020-04-09
1007
글번호 137758
답변완료
문의드립니다.
input : length(20),siglength(9),colorBars(false);
var : mao(0),mac(0),mc(0),mo(0),signal(0);
mao =ma(open, length);
mac =ma(close, length);
mc=mac-mao;
mo=mao-mac;
signal=ma(mc, siglength);
plot1(0,"ZeroLine",gray);
plot2(mc,"BullHisto",green);
plot3(mo,"BearHisto",red);
plot4(mo,"BearLine",red);
plot5(mc,"BullLine",green);
plot6(signal,"Signal",blue);
-------------------------------------------------------------
변환된 이 수식에서 plot6만을 남기고 캔들에 적용시키고 싶어서
input : length(20),siglength(9);
var : mao(0),mac(0),mc(0),mo(0),signal(0);
mao =ma(open, length);
mac =ma(close, length);
mc=mac-mao;
mo=mao-mac;
signal=ma(mc, siglength);
plot1(signal,"Signal",blue);
으로 수정 후 컴파일 해보았습니다. 소수점 자리는 6으로 세팅한 후 적용해본 결과
화면에 적용하였을 때, 정상적으로 구현이 되나
가격에 적용을 하였을 때는 캔들위로 overlay가 되지 않고 캔들을 위로 밀리고
0으로 구현이 됩니다.
수정 문의드려도 될까요
감사합니다.
2020-04-09
1132
글번호 137757
답변완료
종목검색식 부탁드립니다.
안녕하세요 잘좀 부탁드립니다.
모든 수치는 제가 넣을수 있게 부탁드리며 기본수치로 해주시면 됩니다.
========================================================
지수이평 220일 기준 주가가 220일 위에 있는 종목중에
엔벨로프(중심선)이 볼린져밴드 중신선을 골든크로스 하는 종목을 찾고싶습니다.
2020-04-09
1109
글번호 137755
답변완료
66922 추가 질문 부탁 드립니다.(내용 무)
.
2020-04-09
1010
글번호 137753
답변완료
부탁드립니다.
감사드립니다.
마지막 청산된 (StopLoss, StopTrailing) 봉 위에 표시되게 요청드립니다.
모든 청산된 (StopLoss, StopTrailing) 봉 위에 표시되게 하는 방법도 설명 부탁드립니다.
차트 마지막봉 위에 표시되게 작성해 드립니다.
input : 손절(20),익절(15),익절하락(3);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tt(0),tx(0),X(false),tx1(0),cnt(0),sum(0);
var: Tcond(false),ht(0),lcnt(0),trcnt(0),R(-1);
Array : XX[200](-1);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
tt = 0;
X = false;
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = false;
if MarketPosition == 1 Then
{
ExitLong("BE6");
}
if MarketPosition == -1 Then
{
ExitShort("SE6");
}
}
if Tcond == true then
{
if marketposition == 0 and crossup(var1,var2) Then {
buy("B1");
}
if marketposition == 0 and crossdown(var1,var2) Then {
sell("S1");
}
if marketposition == 0 and crossup(var2,var3) and var3[1] < var3 Then {
buy("B2");
}
if marketposition == 0 and crossdown(var3,var4) and var3[1] > var3 Then {
sell("S2");
}
## 청산
if MarketPosition == 1 then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
}
## 카운트 (수정요청)
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
lcnt = lcnt+1;
XX[0] = 0;
for cnt = 1 to 199
{
XX[cnt] = XX[cnt-1][1];
}
if Floor((trcnt+lcnt)*0.2) > 1 then
{
sum = 0;
for cnt = 0 to Floor((trcnt+lcnt)*0.2)-1
{
if XX[cnt] == 1 Then
sum = sum+1;
}
R = sum/Floor((trcnt+lcnt)*0.2)*100;
}
tt = tt +1 ;
if tt > ht Then
{
ht = tt;
}
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(ht,0)+"◆");
Text_SetSize(tx,20);
Text_Setstyle(tx,2,1);
Text_SetColor(tx,GREEN);
}
if IsExitName("StopTrailing",1) == true then
{
trcnt = trcnt+1;
XX[0] = 1;
for cnt = 1 to 199
{
XX[cnt] = XX[cnt-1][1];
}
if Floor((trcnt+lcnt)*0.2) > 1 then
{
sum = 0;
for cnt = 0 to Floor((trcnt+lcnt)*0.2)-1
{
if XX[cnt] == 1 Then
sum = sum+1;
}
R = sum/Floor((trcnt+lcnt)*0.2)*100;
}
tt = tt + 1;
ht = tt;
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(ht,0)+"◆");
Text_SetSize(tx,20);
Text_Setstyle(tx,2,1);
Text_SetColor(tx,GREEN);
}
}
Text_Delete(tx1);
tx1 = Text_New(NextBarSdate,NextBarStime,H,NumToStr(trcnt/(trcnt+lcnt)*100,1)+NewLine+NumToStr(R,1));
Text_SetStyle(tx1,0,1);
2020-04-09
917
글번호 137751
답변완료
안녕 하세요
안녕하세요.
시스템식 다시 부탁해요
4개의 시스템식을 하나의 식으로 부탁 함니다
(A or B) and (C or D) 로 원했는데 답변결과는(A or B) or (C or D) 인것 같아요
다시 잘 검토해서 (A or B) and (C or D) 해주시기 바람니다.
감사함니다
예스스탁 답변식입니다
Input : shortPeriod1(5), longPeriod1(20);
Input : shortPeriod2(10), longPeriod2(30);
Input : shortPeriod3(20), longPeriod3(30);
input : shortPeriod4(20), longPeriod4(30);
value1 = ma(C, shortPeriod1);
value2 = ma(C, longPeriod1);
value3 = ma(C, shortPeriod2);
value4 = ma(C, longPeriod2);
value5 = ema(C, shortPeriod3);
value6 = ema(C, longPeriod3);
value7 = ema(C, shortPeriod4);
value8 = ema(C, longPeriod4);
if (crossup(value1,value2) or crossup(value3,value4)) or
(crossup(value5,value6) or crossup(value7,value8)) Then
buy();
if (CrossDown(value1,value2) or CrossDown(value3,value4)) or
(CrossDown(value5,value6) or CrossDown(value7,value8)) Then
sell();
A식
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
B식
Input : shortPeriod(10), longPeriod(30);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
C식
Input : shortPeriod(20), longPeriod(30);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
D식
Input : shortPeriod(20), longPeriod(30);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
2020-04-09
882
글번호 137742
답변완료
종목검색식 부탁드립니다.
1. n1시까지의 누적 거래대금 = m1
n2시까지의 누적 거래대금 = m2
(m2 - m1)/m1 > 0.05 인 종목을 검색한다.
2. 이때 n1, n2 가 정규시간을 넘어도 되는건지 궁금합니다.
(예: n1 = 155000, n2 = 175000)
감사합니다.
2020-04-09
914
글번호 137737
CSI300 님에 의해서 삭제되었습니다.
2020-04-08
0
글번호 137735
답변완료
수식 부탁 드립니다
키움 수식입니다 예스로 전환 부탁 드립니다
수식1
a=ma(sum(((c*4) - ((h+l) + (((h(1)+l(1))))))*v),2,지수이평);
b=ma(a,20,단순이평);
f = ma(종가,20,지수이평)-ma(종가,50,지수이평);
s= ma(f,9,지수이평);
if(a>b, if(s<f, 100,65), if(s>f, 0,35));
색상은 위와 같이 보이게 했으면 합니다
2020-04-08
1088
글번호 137734