커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1367
글번호 230811
답변완료
종목검색식 부탁드립니다.
아래 2가지 수식을 종목검색식으로 변환 부탁드립니다.
감사합니다...^^
1)
A1=Highestsince(1, date!=date(1), H);
A2=Valuewhen(1, A1==H, L);
D=Valuewhen(1, date!=date(1), A2(1));
CrossUp(C, D)
2)
기준봉=H>C(1)*증가율 && 거래대금>금액1 && 거래대금<금액2 && C>O;
D=Valuewhen(1, 기준봉, (H+L)/n);
CrossUp(C, D)
(지표변수) 증가율: 1.15 / 금액1: 30000 / 금액2: 70000 / n: 2
2024-10-23
980
글번호 184506
답변완료
종목검색식 부탁드립니다.
아래 2가지 키움수식을 예스종목 검색식으로 변환 부탁드립니다.
감사합니다...^^
1)
La=LRL(Period1);
Lb=LRL(Period2);
m1=ma(C, 기간1, 종류);
m2=ma(C, 기간2, 종류);
Mx1=max(La,Lb);
Mn1=min(La,Lb);
Mx2=max(m1,m2);
Mn2=min(m1,m2);
(O<Mn1 && C>Mx1) or (O<Mn2 && C>Mx2)
(지표변수) Period1: 20 / Period2: 40 / 기간1: 60 / 기간2: 90 / 종류: 가중
2)
A=LRL(Period1);
B=LRL(Period2);
D=crossup(A,B);
E=crossdown(A,B);
F=valuewhen(1,D or E, 기준가격);
A1=ma(C, 기간1, 종류);
B1=ma(C, 기간2, 종류);
D1=crossup(A1,B1);
E1=crossdown(A1,B1);
F1=valuewhen(1,D1 or E1, 기준가격);
CrossUp(F,F1)
(지표변수) Period1: 20 / Period2: 40 / 기간1: 60 / 기간2: 90 / 종류: 가중 / 기준가격: 시가
2024-10-23
920
글번호 184505
답변완료
키움수식입니다
M=MA(C, 기간);
M1=MA(C, 기간1);
가=LRL(60) - LRS(60)*5;
Bu=BBandsUp(20,2);
나=LRL(20) - LRS(20)*5;
다=LRL(10) - LRS(10)*5;
EU=EnvelopeUP(20, 6);
전환=(highest(high,shortPeriod)+lowest(low,shortPeriod))/2;
전환1=(highest(high,반shortPeriod)+lowest(low,반shortPeriod))/2;
전환2=(highest(high,소shortPeriod)+lowest(low,소shortPeriod))/2;
CrossUP(C, M1(midPeriod-1))&&
CrossUP(C, M(midPeriod-1))&&
CrossUP(C, 가)&&
CrossUP(C, BU(midPeriod-1))&&
C>전환&&C>전환1&&C>전환2 OR
CrossUP(C, EU(midPeriod-1))
기간40 , 기간1 20 , midPeriod 26 ,shortPeriod 9 ,
반shortPeriod 6 , 소shortPeriod 5 ,
감사합니다
2024-10-23
843
글번호 184504
답변완료
수고하십니다
트레인딩뷰챠트인데 변환 부탁드려요
1.
// Discontinued Signal Lines
dsl_lines(src, length)=>
UP = 0.
DN = 0.
UP := (src > ta.sma(src, length)) ? nz(UP[1]) + dsl_mode / length * (src - nz(UP[1])) : nz(UP[1])
DN := (src < ta.sma(src, length)) ? nz(DN[1]) + dsl_mode / length * (src - nz(DN[1])) : nz(DN[1])
[UP, DN]
2.
// Zero-Lag Exponential Moving Average function
zlema(src, length) =>
lag = math.floor((length - 1) / 2)
ema_data = 2 * src - src[lag]
ema2 = ta.ema(ema_data, length)
ema2
//@version=5
indicator("DSL Oscillator [BigBeluga]")
// ====================================================================================================================}
// INPUTS
// ===================================================================================================================={
// User inputs for customization
len = input.int(10, "Length")
dsl_mode = input.string("Fast", "DSL Lines Mode", ["Fast", "Slow"]) == "Fast" ? 2 : 1
// Color definitions
color_up = #8BD8BD
color_dn = #436cd3
// Condition for a dashed line
bool dashed = bool(bar_index % 2)
// ====================================================================================================================}
// CALCULATIONS
// ===================================================================================================================={
// Calculate RSI with a period of 10
RSI = ta.rsi(close, 10)
// Zero-Lag Exponential Moving Average function
zlema(src, length) =>
lag = math.floor((length - 1) / 2)
ema_data = 2 * src - src[lag]
ema2 = ta.ema(ema_data, length)
ema2
// Discontinued Signal Lines
dsl_lines(src, length)=>
up = 0.
dn = 0.
up := (src > ta.sma(src, length)) ? nz(up[1]) + dsl_mode / length * (src - nz(up[1])) : nz(up[1])
dn := (src < ta.sma(src, length)) ? nz(dn[1]) + dsl_mode / length * (src - nz(dn[1])) : nz(dn[1])
[up, dn]
// Calculate DSL lines for RSI
[lvlu, lvld] = dsl_lines(RSI, len)
// Calculate DSL oscillator using ZLEMA of the average of upper and lower DSL Lines
dsl_osc = zlema((lvlu + lvld) / 2, 10)
// Calculate DSL Lines for the oscillator
[level_up, level_dn] = dsl_lines(dsl_osc, 10)
// Determine color based on oscillator position relative to its DSL Lines
color = color.from_gradient(dsl_osc, level_dn, level_up, color_dn, color_up)
// ====================================================================================================================}
// PLOT
// ===================================================================================================================={
// Plot upper and lower DSL Lines
plot(level_up, color = dashed ? color.new(color_up, 20) : na, editable = false)
plot(level_dn, color = dashed ? color.new(color_dn, 20) : na, editable = false)
// Plot the DSL oscillator
plot(dsl_osc, color = color, linewidth = 2)
// Detect crossovers for signal generation
up = ta.crossover(dsl_osc, level_dn) and dsl_osc < 55
dn = ta.crossunder(dsl_osc, level_up) and dsl_osc > 50
// Plot signals on the oscillator
plotshape(up ? dsl_osc[1] : na, "", shape.circle, location.absolute, color_up, -1, "", chart.fg_color, false, size.tiny)
plotshape(dn ? dsl_osc[1] : na, "", shape.circle, location.absolute, color_dn, -1, "", chart.fg_color, false, size.tiny)
// Plot signals on the chart
plotshape(up, "", shape.triangleup, location.bottom, color_up, 0, "Enter", chart.fg_color, true, size.tiny,
force_overlay = true)
plotshape(dn, "", shape.triangledown, location.top, color_dn, 0, "Exit", chart.fg_color, true, size.tiny,
force_overlay = true)
// Color the background on signal occurrences
bgcolor(up ? color.new(color_up, 90) : na, force_overlay = true, editable = false)
bgcolor(dn ? color.new(color_dn, 90) : na, force_overlay = true, editable = false)
// Color candles based on signals
candle_col = up ? color.new(color_up, 0) : dn ? color.new(color_dn, 0) : na
plotcandle(open, high, low, close, "",
candle_col,
candle_col,
bordercolor = candle_col,
force_overlay = true,
editable = false)
// Plot horizontal lines for visual reference
h = plot(75, display = display.none, editable = false)
m = plot(50, display = display.none, editable = false)
l = plot(25, display = display.none, editable = false)
// Fill areas between horizontal lines
fill(m, h, 120, 50, color_up, na, editable = false)
fill(m, l, 50, -20, na, color_dn, editable = false)
2024-10-23
1018
글번호 184503
답변완료
종목검색부탁드립니다.
A=LinearRegValue(C, period);
B=MA(A, avgperiod)-MA(StdError(C, period),avgperiod);
AA=LinearRegValue(C, period1);
BB=MA(AA, avgperiod)-MA(StdError(C, period1),avgperiod);
A1=(H+L+C)/3;
xTrend = if(A1 > A1(1), volume * 100, -volume * 100);
xFast = eavg(xTrend, FastX);
xSlow = eavg(xTrend, SlowX);
xKVO = xFast - xSlow;
xTrigger = eavg(xKVO, TrigLen);
B<BB && xKVO>xTrigger && (CROSSUP(C,B) OR CROSSUP(C,BB)) && C>O
period 20
period1 60
avgperiod 3
TrigLen 13
Fastx 34
SlowX 55
입니다.트레이더종목검색식으로 변환부탁드려용^^늘감사드립니다!
2024-10-23
815
글번호 184502
답변완료
수식요청
다음 조건을 만족하는 수식을 요청드립니다.
1.0봉전 볼밴(20,2)하한선이 엔벨로프(20,5)지지선을 하향돌파
2.1봉전 ~ 5봉전 동안 볼밴(20,2)하한선 > 엔벨로프(20,5)지지선 유지
3.전일종가대비 0봉전 가격이 10%이상 상승
4.0봉전 RSI(20)>60
5.1봉전 ~ 5봉전 동안 RSI(20)<59.9
이상입니다.
2024-10-22
918
글번호 184501
답변완료
진입 횟수 질문
매수 매도 전략이 복수로 여러개 있을 때
매수의 진입횟수와 매도의 진입횟수를 따로 컨트롤 하고 싶을 때
방법이 있을지 궁금합니다.
없다면 그냥 매수 전략 매도 전략 따로 쓸 예정입니다.
항상 감사합니다.
2024-10-22
803
글번호 184500
답변완료
수식전환
수고많으십니다 아래 타사 수식을 에스로변환 부탁드립니다
타사의 (일목균형표),당사의 채우기 수식은,,,
수식4 3분봉
A1=Highestsince(1,date!=date(1),H);
Valuewhen(1,date!=date(1),A1(1))
수식5 시가베팅
A1=Highestsince(1,date!=date(1),H);
A2=Valuewhen(1,A1==H,L);
Valuewhen(1,date!=date(1),A2(1))
감사합니다^^
2024-10-22
890
글번호 184499
답변완료
수식지왕님이 써주신 옵션 민감도 입니다.
/*cpFlag : Call,Put 구분, 1,2로 표현
S : 기초자산가격의 가격, 예)주가지수(KOSPI200)
X : 행사가격
T : 잔존만기(연율)
r : 무위험 이자율, 예) CD금리
q : 배당률
Sig : 변동성 */
input: cpflag(1), //콜풋 입력
InS(0), //현재 지수를 입력 안하면 data 참조를 통해 실시간 가격을 이용. 테스트시 이용
x(145.0), //행사가 입력
ex(20050908), //만기일
r(0.0351), //CD 금리, 요기서 볼 수 있음 ==> http://stock.koscom.co.kr/
q(0), //배당률
InSig(0), //내재변동성을 입력 안하면 자체 계산된 변동성을 사용. 단, 오차 감안해야 함
InPrice(0); //역시 테스트를 목적으로 함
var:S(0),T(0),sig(0),price(0),ImVol(0),bs(0),delta(0),gamma(0),vega(0),theta(0),rho(0);
S = iff(inS!=0,inS,data1("c")); //kospi200종합을 같이 띄워 놓아야 합니다.
T = (DateToJulian(ex) - DateToJulian(date) + 1)/365;
price = iff(inPrice!=0,inPrice,c);
imvol = _ImVol(cpFlag, S, X, T, r, q, price);
sig = iff(insig!=0,insig,ImVol);
bs = _BlackSholes(cpFlag, S, X, T, r, q, sig);
delta = _Delta(cpFlag, S, X, T, r, q, sig);
gamma = _gamma(cpFlag, S, X, T, r, q, sig);
theta = _theta(cpFlag, S, X, T, r, q, sig);
vega = _vega(cpFlag, S, X, T, r, q, sig);
rho = _rho(cpFlag, S, X, T, r, q, sig);
plot1(imvol*100,"내재변동성");
plot2(bs,"이론가");
plot3(delta,"델타");
plot4(gamma,"감마");
plot5(theta,"쎄타");
plot6(vega,"베가");
plot7(rho,"로");
사용자 함수는 입력을 완료한 상태인데..
사용법을 정확하게 모르겠습니다.
2024-10-22
1067
글번호 184498