커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5523
글번호 230811
답변완료
수식 부탁드립니다.
안녕하세요? 항상 감사드립니다.
제가 미니 나스닥100선물로 시스템을 만들면서
서머타임때와 아닐때를 함께 넣어서 다음과 같은
각각 2번에 시간대에만 매매를 하고 싶습니다.
(한국시간 기준으로 명시하겠습니다.)
1. 서머타임 아닐때
* 미장시작이후 10분 후인 23:40 시작 ~ 00:30 매매 1차종료,
* 05:00 시작 ~ 06:00 매매 2차종료
2. 서머타임때
* 미장시작이후 10분 후인 22:40 시작 ~ 23:30 매매 1차종료,
* 04:00 시작 ~ 05:00 매매 2차종료
2023-06-21
1151
글번호 169952
답변완료
수식부탁드립니다
수식부탁드립니다.
매수1 수식으로 하루 한번만 진입하고 (진입 안될수도 있음)
매수1 식으로 진입됐다면 청산후, 매수2 식으로 하루 한번만 거래되게
수식부탁드립니다.
(수식1 이 진입이 없다면 수식2는 진입 안되게 부탁드립니다)
2023-06-21
1582
글번호 169951
답변완료
수식 부탁드립니다.
안녕하세요? 항상 감사드립니다.
아래의 내용을 수식으로 부탁드립니다.
KOSPI200선물 5분봉으로 만들려고 합니다.
A = 현재종가 - 현재시가 (차이)
B = 현재고가 - 현재저가 (차이)
E = 현재종가 - 과거7번째종가 (현재종가와 과거7번째 종가와의 차이)
G : A가 1보다 크거나 같으면서 B가 1보다 크거나 같으면 2 이고,
A가 1보다 크거나 같으면서 B가 1보다 작으면 1 이며 ,
그렇지 않으면 0
I = G 의 현재부터 ~ 과거 7번째 까지의 합 (현재+ -1번째 + -2번째 +.... -6번째)
K = E / I
K가 1보다 크면 매수, K가 -1보다 작으면 매도,
둘다 아니면 직전 포지션 유지
2023-06-21
1347
글번호 169950
답변완료
질문드립니다.
항상 친절한 답변 감사드립니다.
시스템 신호를 일봉으로 종가에 신호가 나면,
그 날은 거래가 끝나게 되는데..
다음날 시가에 주문이 나가게 되는건가요?
2023-06-21
1491
글번호 169949
답변완료
잘 부탁드립니다
//@version=4
study(title="Equilibriums", shorttitle="Equilibrium", overlay=true)
//----------[ First Step: create inputs for equilibrium line periods
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen Length")
zandakaPeriods1 = input(17, minval=1, title="Zandaka Period 1")
kijunPeriods = input(26, minval=1, title="Kijun-Sen Length")
zandakaPeriods2 = input(33, minval=1, title="Zandaka Period 2")
zandakaPeriods3 = input(42, minval=1, title="Zandaka Period 3")
zandakaPeriods4 = input(52, minval=1, title="Zandaka Period 4")
zandakaPeriods5 = input(65, minval=1, title="Zandaka Period 5")
zandakaPeriods6 = input(76, minval=1, title="Zandaka Period 6")
//----------[ Second Step: define the formula for calculating the equilibrium
donchian(len) => avg(lowest(len), highest(len))
//----------[ Third Step: Link the inputs to the previously created formula
tenkanSen = donchian(tenkanPeriods)
zandakaSen1 = donchian(zandakaPeriods1)
kijunSen = donchian(kijunPeriods)
zandakaSen2 = donchian(zandakaPeriods2)
zandakaSen3 = donchian(zandakaPeriods3)
zandakaSen4 = donchian(zandakaPeriods4)
zandakaSen5 = donchian(zandakaPeriods5)
zandakaSen6 = donchian(zandakaPeriods6)
//----------[ Last Step: Create the code for plotting (this step is of vital importance as no one likes ugly or unclear indicators)
plot(zandakaSen6, linewidth=8, color=color.rgb(255,150,000,60), title="Zandaka-Sen 6")
plot(zandakaSen5, linewidth=7, color=color.rgb(255,255,000,60), title="Zandaka-Sen 5")
plot(zandakaSen4, linewidth=6, color=color.rgb(000,036,249,60), title="Zandaka-Sen 4")
plot(zandakaSen3, linewidth=5, color=color.rgb(139,000,247,40), title="Zandaka-Sen 3")
plot(zandakaSen2, linewidth=4, color=color.rgb(226,159,226,00), title="Zandaka-Sen 2")
plot(kijunSen, linewidth=3, color=color.rgb(227,000,034,20), title="Kijun-Sen")
plot(zandakaSen1, linewidth=1, color=color.rgb(038,186,030,40), title="Zandaka-Sen 1")
plot(tenkanSen, linewidth=3, color=color.rgb(000,152,116,00), title="Tenkan-Sen")
2023-06-21
1636
글번호 169948
답변완료
잘 부탁드립니다
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LeafAlgo
//@version=5
indicator("Moving Average Contrarian Indicator", overlay=false)
length = input(40, "Moving Average Length")
src = close
// Calculate moving average
ma = ta.sma(src, length)
// Calculate distance from price to moving average
distance = src - ma
// Calculate normalized MACI
distance_min = ta.lowest(distance, length)
distance_max = ta.highest(distance, length)
maci = ((distance - distance_min) / (distance_max - distance_min)) * 100
// Determine barcolor and background color conditions
maci_sma = ta.sma(maci, length)
barC = maci > maci_sma and maci > 30 ? color.lime : maci < maci_sma and maci < 70 ? color.fuchsia : color.yellow
backC = maci > maci_sma and maci > 30 ? color.new(color.lime, 80) : maci < maci_sma and maci < 70 ? color.new(color.fuchsia, 80) : color.new(color.yellow, 80)
// Color
barcolor(barC)
bgcolor(backC, transp=70)
// Plotting
plot(maci, title="MACI", color=barC, style=plot.style_histogram, linewidth=4)
plot(maci_sma, title='MACI SMA', color=color.maroon, linewidth=2)
// Overbought and oversold levels
hline(70, "Overbought", color=color.fuchsia)
hline(30, "Oversold", color=color.lime)
2023-06-21
1977
글번호 169947
답변완료
부탁드립니다
//@version=5
indicator("Super Secret 200 EMA", overlay=true)
length = input(10, "Supertrend Length")
multiplier = input.float(3.0, "Supertrend Multiplier")
emaPeriod = input(200, "EMA Period")
// Calculate Supertrend
var float supertrend = na
var float highestHigh = na
var float lowestLow = na
for i = length to 1
if ta.change(close[i]) > 0
highestHigh := math.max(highestHigh, high[i])
else
lowestLow := math.min(lowestLow, low[i])
supertrend := ta.change(close) > 0 ? lowestLow + multiplier * ta.atr(length) : highestHigh - multiplier * ta.atr(length)
supertrendColor = supertrend > ta.ema(close, emaPeriod) ? color.green : color.red
// Calculate 200 EMA
ema200 = ta.ema(close, emaPeriod)
emaColor = close > ema200 ? color.green : color.red
// Plot Supertrend and EMA
plot(supertrend, color=supertrendColor, title="Supertrend")
plot(ema200, color=emaColor, title="200 EMA")
// Determine Buy and Sell Conditions
buyCondition = ta.crossover(close, ema200) and close > supertrend
sellCondition = ta.crossunder(close, ema200) and close < supertrend
// Plot Buy and Sell Signals
plotshape(buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")
2023-06-21
1459
글번호 169946
답변완료
수식 점검 부탁드립니다.
# 질문
# 1분봉 주기에서는 종목검색식의 결과값과 지표식의 값이 틀리다. 무엇이 잘못된것인지요?
# 2분봉 이상의 주기에서는 종목검색식의 결과값과 지표식의 값이 같다.
#종목검색 속성 : 사용자 설정 검색기간 500봉
var : 단일가V(0), 단일가V비율_2일전(00.00) ;
단일가V = Dayvolume(1) - Dayvolume[1+DayIndex] ;
단일가V비율_2일전 = 단일가V / DayVolume(2) ;
/*
plot11(Dayvolume(2), "Dayvolume(2)");
plot12(Dayvolume(1), "Dayvolume(1)");
plot14(단일가V, "단일가V");
plot15(단일가V비율_2일전, "단일가V비율_2일전");
*/
if 단일가V비율_2일전 >= 0.1 Then Find(단일가V비율_2일전) ;
2023-06-21
1387
글번호 169943
답변완료
잘 부탁드립니다
indicator(title="Trend Indicator", shorttitle="Trend Analyzer", overlay=true, max_bars_back=(2000))
//@version=5
// Created by @erossini.tr
// Inputs
string ccolortp = "Color candle based on volumetric pressure compared to non-volumetric averages, confluence of fast and slow period"
mode = input.string(defval = "Ichimoku", title = "Indicator", options = ["Ichimoku", "Channel and Bands", "None"])
bandinput = input.bool(defval = false, title = "Enable extentions zone")
ccolorinput = input.bool(defval = true, title = "Enable candle color", tooltip = ccolortp)
string ichi = "Ichimoku"
string bands = "Bands and Channel"
flmode = input.string(defval = "Classic mode", title = "Fast lines mode", options = ["Volume averages", "Classic mode"], group = ichi)
ssamode = input.string(defval = "Auto", title = "SSA line mode", options = ["Volume average", "Classic mode", "Mixed", "Auto"], group = ichi)
ssbmode = input.string(defval = "VWMA", title = "SSB line mode", options = ["VWMA", "Classic"], group = ichi)
// Ichimoku
conversionPeriods = input(11, title = "Fast Line", group = ichi)
basePeriods = input(26, title = "Slow Line", group = ichi)
lnt = input(89, title = "SSB Line", group = ichi)
conv2 = ta.vwma(close, conversionPeriods)
base2 = ta.vwma(close, basePeriods)
conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine12 = math.avg(conv2, base2)
leadLine13 = math.avg(conv2, base2, conversionLine, baseLine)
leadLine2 = ta.vwma(close, lnt)
leadline21 = math.avg(ta.lowest(lnt), ta.highest(lnt))
// Trama
ama = 0.00
lengthTR = input(34, title = "Trama Backline Lenght", group = ichi)
hh = math.max(math.sign(ta.change(ta.highest(lengthTR))),0)
ll = math.max(math.sign(ta.change(ta.lowest(lengthTR))*-1),0)
tc = math.pow(ta.sma(hh or ll ? 1 : 0,lengthTR),2)
ama := nz(ama[1]+tc*(close-ama[1]),close)
// Bands and channel
source = hlc3
mode3 = input.string(defval = "Channel", title = "Mode", options = ["Channel", "Bands"], group = bands)
period = input(title = "Period", defval = 34, group = bands)
multi = input(title = "Multiplier", defval = 3.14, group = bands)
smooth = input(defval = 1, title = "Smoothing value", group = bands)
sma = ta.vwma(source, period)
// Keltner Channel
f_kc(src, length, mult, useTrueRange) =>
float basis = sma
float span = (useTrueRange) ? ta.tr : (high - low)
float rangeEma = ta.ema(span, length)
[basis, basis + rangeEma * mult, basis - rangeEma * mult]
[kcmiddle, kcupper, kclower] = f_kc(source, period, multi, true)
// Bollinger Bands
f_bb(src, length, mult) =>
float basis2 = sma
float dev = multi * ta.stdev(source, period)
[basis2, basis2 + dev, basis2 - dev]
[bbmiddle, bbupper, bblower] = f_bb(close, 5, 4)
// Plot
plotmiddle = if mode3 == "Channel"
(ta.sma(kcmiddle, smooth))
else if mode3 == "Bands"
(ta.sma(bbmiddle, smooth))
plotupper = if mode3 == "Channel"
(ta.sma(kcupper, smooth))
else if mode3 == "Bands"
(ta.sma(bbupper, smooth))
plotlower = if mode3 == "Channel"
(ta.sma(kclower, smooth))
else if mode3 == "Bands"
(ta.sma(bblower, smooth))
// Candle color
Lenghtfast = 11
Lenghtslow = 89
colorup = #2962ff
colordown = #e91e63
a1 = ta.sma(hlc3, Lenghtfast*2)
a2 = ta.vwma(hlc3, Lenghtfast)
a3 = ta.sma(hlc3, Lenghtslow*2)
a4 = ta.vwma(hlc3, Lenghtslow)
c3 = if a1 > a2 and a3 > a4 and ccolorinput == true
(colordown)
else if a1 < a2 and a3 < a4 and ccolorinput == true
(colorup)
barcolor(c3)
// Extension zones
[middle2, upper2, lower2] = ta.kc(close, 200, 12, false)
[middle3, upper3, lower3] = ta.kc(close, 200, 23, false)
g1 = if bandinput == true
upper2
g2 = if bandinput == true
upper3
g3 = if bandinput == true
lower2
g4 = if bandinput == true
lower3
h1 = plot(g1, color = color.new(color.gray, 100), editable = false)
h2 = plot(g2, color = color.new(color.gray, 100), editable = false)
h3 = plot(g3, color = color.new(color.gray, 100), editable = false)
h4 = plot(g4, color = color.new(color.gray, 100), editable = false)
fill(h3, h4, color = color.new(#2962ff, 85), title = "Lower zone")
fill(h1, h2, color = color.new(#e91e63, 85), title = "Upper zone")
// Plot
displacement = input(26, title = "Forward displacement", group = ichi)
backdisp = input(30, title = "Backwards displacement", group = ichi)
p9 = if ssbmode == "VWMA"
p9 = leadLine2
else if ssbmode == "Classic"
p9 = leadline21
x1 = if flmode == "Volume averages"
x1 = conv2
else if flmode == "Classic mode"
x1 = conversionLine
x2 = if flmode == "Volume averages"
x2 = base2
else if flmode == "Classic mode"
x2 = baseLine
u1 = if ssamode == "Volume average"
u1 = leadLine12
else if ssamode == "Classic mode"
u1 = leadLine1
else if ssamode == "Mixed"
u1 = leadLine13
else if ssamode == "Auto"
u1 = math.avg(x1, x2)
kjuncol = conversionLine > baseLine ? #2962ff : conversionLine < baseLine ? #e91e63 : color.gray
q1 = if mode == "Ichimoku"
x1
q2 = if mode == "Ichimoku"
x2
q3 = if mode == "Ichimoku"
u1
q4 = if mode == "Ichimoku"
p9
q5 = if mode == "Ichimoku"
ama
q6 = if mode == "Channel and Bands"
plotmiddle
q7 = if mode == "Channel and Bands"
plotupper
q8 = if mode == "Channel and Bands"
plotlower
plot(q1, color=color.gray, title="Conversion Line")
plot(q2, color=kjuncol, linewidth=2, title="Base Line")
p8 = plot(q3, offset = displacement, color=#2962ffb4, title="SSA")
p3 = plot(q4, offset = displacement, color=#e91e62b2, title="SSB")
fill(p8, p3,color.rgb(134, 134, 134, 77), title = "Kumo Cloud")
plot(q5, color = color.rgb(149, 0, 179, 10), offset = -backdisp, title = "Backline", style = plot.style_circles)
plot(q6, color = color.gray, title = "Middle line")
p10 = plot(q8, color = #2962ff, title = "Lower line")
p20 = plot(q7, color = #e91e63, title = "Upper line")
fill(p10, p20, color = color.new(color.gray, 90), title = "Channel Background")
2023-06-21
1545
글번호 169942