커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5394
글번호 230811
답변완료
수식 문의 드립니다
안녕하세요
특정시간 60분봉의 시가 중앙선을 나타내는 지표를 문의드립니다
예) 1. 오전 10시와 15시 시가의 중앙선
- 오전 10시 15,000
- 오후 15시 18,000
- 중앙선 16,500
2. 30분봉도 표현가능한 지표도 알려주요
2024-08-07
851
글번호 182338
답변완료
검색식 부탁 드려요
1. C - C (기간)
기간 21 , 기준선 0
현재봉 종가에서 21일전 종가를 빼서
"현재종가가 기준선 0 보다 클때"의 종목 검색식 부탁드립니다.
2. 주가가 볼린저밴드(20,2) 상단선을 돌파하는 검색식
3. 주가가 기준선을(일목) 돌파하는 검색식
4. 주가가 전환선을(일목) 돌파하는 검색식 부탁드립니다.
2024-08-07
890
글번호 182337
답변완료
문의 드립니다
안녕하세요
볼밴(20,0.4)의 상단을 돌파라면 매수 빨간 삼각형
하단을 돌파하면 매도 파란 삼각형으로 차트에 나타내고
10틱단위로 차트에 표시하고 싶습니다
감사합니다
2024-08-07
962
글번호 182336
답변완료
지표 질문입니다
틱 차트에서
전일 오후 3시 이후~종가 구간내 최저가를 표시한다
금일 오전 시가부터~9시5분 까지 최고가를 표시한다
감사합니다
2024-08-07
1021
글번호 182335
답변완료
시스템트레이딩 수식 부탁드립니다.
안녕하세요?
시스템 트레이딩에 사용할 것이구요.
분봉에 사용 예정, period는 30입니다.
1.
cci가 0선 상향돌파하면 매수
cci가 0선 하향돌파하면 매도청산하려고 합니다.
또 하나의 식을 부탁드려봅니다.
2. 주가가 30선 이상일 때만
cci가 0선 상향돌파하면 매수
cci가 0선 하향돌파하면 매도청산하려고 합니다.
2024-08-07
1000
글번호 182328
답변완료
변환 부탁드립니다.
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator("DTFX Algo Zones [LuxAlgo]", shorttitle = "LuxAlgo - DTFX Algo Zones", overlay = true, max_boxes_count = 500, max_lines_count = 500)
///---------------------------------------------------------------------------------------------------------------------}
//Inputs
//---------------------------------------------------------------------------------------------------------------------{
structureTog = input.bool(true, title = "Show Swing Points", group = "Structure")
structureLen = input.int(10, title = "Structure Length", group = "Structure")
zoneDispNum = input.int(1, title = "Show Last", group = "Zones", minval = 0)
dispAll = input.bool(true, title = "Display All Zones", tooltip = "Ignores Zone Display # and Displays all Possible Zones.", group = "Zones")
zoneFilter = input.string("Both", title = "Zone Display", options = ["Bullish Only", "Bearish Only", "Both"], group = "Zones")
noOverlap = input.bool(true, title = "Clean-Up Level Overlap", group = "Zones")
fib_group = "              Fib Levels                    Line Style                 Bull | Bear"
f1Tog = input.bool(false, title = "", group = fib_group, inline = "1")
f2Tog = input.bool(true, title = "", group = fib_group, inline = "2")
f3Tog = input.bool(true, title = "", group = fib_group, inline = "3")
f4Tog = input.bool(true, title = "", group = fib_group, inline = "4")
f5Tog = input.bool(false, title = "", group = fib_group, inline = "5")
f1Lvl = f1Tog?input.float(0, title = "", group = fib_group, inline = "1"):na
f2Lvl = f2Tog?input.float(0.3, title = "", group = fib_group, inline = "2"):na
f3Lvl = f3Tog?input.float(0.5, title = "", group = fib_group, inline = "3"):na
f4Lvl = f4Tog?input.float(0.7, title = "", group = fib_group, inline = "4"):na
f5Lvl = f5Tog?input.float(1, title = "", group = fib_group, inline = "5"):na
f1Style = input.string(". . .", title = "", options = ["___","- - -",". . ."], group = fib_group, inline = "1")
f2Style = input.string("- - -", title = "", options = ["___","- - -",". . ."], group = fib_group, inline = "2")
f3Style = input.string("___", title = "", options = ["___","- - -",". . ."], group = fib_group, inline = "3")
f4Style = input.string("- - -", title = "", options = ["___","- - -",". . ."], group = fib_group, inline = "4")
f5Style = input.string(". . .", title = "", options = ["___","- - -",". . ."], group = fib_group, inline = "5")
f1BullColor = input.color(#089981, title = "", group = fib_group, inline = "1")
f2BullColor = input.color(#089981, title = "", group = fib_group, inline = "2")
f3BullColor = input.color(#089981, title = "", group = fib_group, inline = "3")
f4BullColor = input.color(#089981, title = "", group = fib_group, inline = "4")
f5BullColor = input.color(#089981, title = "", group = fib_group, inline = "5")
f1BearColor = input.color(#f23645, title = "", group = fib_group, inline = "1")
f2BearColor = input.color(#f23645, title = "", group = fib_group, inline = "2")
f3BearColor = input.color(#f23645, title = "", group = fib_group, inline = "3")
f4BearColor = input.color(#f23645, title = "", group = fib_group, inline = "4")
f5BearColor = input.color(#f23645, title = "", group = fib_group, inline = "5")
structureColor = input.color(color.gray, title = "Structure Color", group = "Style")
bullZoneColor = input.color(color.new(#089981,80), title = "Bullish Zone Color", group = "Style")
bearZoneColor = input.color(color.new(#f23645,80), title = "Bearish Zone Color", group = "Style")
//---------------------------------------------------------------------------------------------------------------------}
//UDTs
//---------------------------------------------------------------------------------------------------------------------{
type pb
float price
int bar
type fs
line f1
line f2
line f3
line f4
line f5
//---------------------------------------------------------------------------------------------------------------------}
//Functions
//---------------------------------------------------------------------------------------------------------------------{
linestyle(_input) =>
_input == "___"?line.style_solid:
_input == "- - -"?line.style_dashed:
_input == ". . ."?line.style_dotted:
na
get_fibs(_top,_bot,_dir,_fl1,_fl2,_fl3,_fl4,_fl5) =>
rng = _dir == 1 ? _top - _bot : _bot - _top
anchor = _dir == 1 ? _bot : _top
fib1 = anchor + (rng*_fl1)
fib2 = anchor + (rng*_fl2)
fib3 = anchor + (rng*_fl3)
fib4 = anchor + (rng*_fl4)
fib5 = anchor + (rng*_fl5)
[fib1,fib2,fib3,fib4,fib5]
//---------------------------------------------------------------------------------------------------------------------}
//Calcs
//---------------------------------------------------------------------------------------------------------------------{
var int dir = 0
float top = na
float btm = na
var pb t = pb.new(na,na)
var pb b = pb.new(na,na)
var bool bos_up_check = false
var bool bos_down_check = false
var string last_bot = "NA"
var string last_top = "NA"
var zones = array.new_box()
var lvls = array.new<fs>()
var box live_zone = na
var fs live_lvls = fs.new(na,na,na,na,na)
upper = ta.highest(structureLen)
lower = ta.lowest(structureLen)
if dir >= 0 and high[structureLen] > upper
dir := -1
top := high[structureLen]
if dir <= 0 and low[structureLen] < lower
dir := 1
btm := low[structureLen]
top_conf = not na(top)
bot_conf = not na(btm)
int structure_confirmed = 0
if top_conf
t := pb.new(top,bar_index-structureLen)
bos_up_check := true
if structureTog
structure_confirmed := 1
if bot_conf
b := pb.new(btm,bar_index-structureLen)
bos_down_check := true
if structureTog
structure_confirmed := -1
plotshape(structure_confirmed>0?true:false, style = shape.circle, title = "Swing High", location = location.abovebar, offset = -structureLen, color = structureColor)
plotshape(structure_confirmed<0?true:false, style = shape.circle, title = "Swing Low", location = location.belowbar, offset = -structureLen, color = structureColor)
HH = top_conf and t.price > t.price[1]
HL = bot_conf and b.price > b.price[1]
LH = top_conf and t.price < t.price[1]
LL = bot_conf and b.price < b.price[1]
last_top := HH?"HH":LH?"LH":last_top
last_bot := LL?"LL":HL?"HL":last_bot
var int t_dir = 0
choch_up = ta.crossover(close,t.price) and (high == upper) and t_dir <= 0
choch_down = ta.crossunder(close,b.price) and (low == lower) and t_dir >= 0
if choch_up
t_dir := 1
if choch_down
t_dir := -1
bos_up = ta.crossover(close,t.price) and bos_up_check and t_dir >= 0
bos_down = ta.crossunder(close,b.price) and bos_down_check and t_dir <= 0
mss_up = bos_up or choch_up
mss_down = bos_down or choch_down
if mss_up
bos_up_check := false
if zoneFilter != "Bearish Only"
_top = t.price
_bot = dir == -1 ? lower : dir == 1 ? b.price : 0
[fib1,fib2,fib3,fib4,fib5] = get_fibs(_top,_bot,1,f1Lvl,f2Lvl,f3Lvl,f4Lvl,f5Lvl)
live_zone := box.new(t.bar,_top,bar_index,_bot,bgcolor = bullZoneColor,border_color = na)
live_lvls := fs.new(
line.new(t.bar,(f1Tog?fib1:na),bar_index,fib1, color = f1BullColor, style = linestyle(f1Style)),
line.new(t.bar,(f2Tog?fib2:na),bar_index,fib2, color = f2BullColor, style = linestyle(f2Style)),
line.new(t.bar,(f3Tog?fib3:na),bar_index,fib3, color = f3BullColor, style = linestyle(f3Style)),
line.new(t.bar,(f4Tog?fib4:na),bar_index,fib4, color = f4BullColor, style = linestyle(f4Style)),
line.new(t.bar,(f5Tog?fib5:na),bar_index,fib5, color = f5BullColor, style = linestyle(f5Style))
)
zones.push(live_zone)
lvls.push(live_lvls)
if mss_down
bos_down_check := false
if zoneFilter != "Bullish Only"
_top = dir == 1 ? upper : dir == -1 ? t.price : 0
_bot = b.price
[fib1,fib2,fib3,fib4,fib5] = get_fibs(_top,_bot,-1,f1Lvl,f2Lvl,f3Lvl,f4Lvl,f5Lvl)
live_zone := box.new(b.bar,_top,bar_index,_bot,bgcolor = bearZoneColor,border_color = na)
live_lvls := fs.new(
line.new(b.bar,(f1Tog?fib1:na),bar_index,fib1, color = f1BearColor, style = linestyle(f1Style)),
line.new(b.bar,(f2Tog?fib2:na),bar_index,fib2, color = f2BearColor, style = linestyle(f2Style)),
line.new(b.bar,(f3Tog?fib3:na),bar_index,fib3, color = f3BearColor, style = linestyle(f3Style)),
line.new(b.bar,(f4Tog?fib4:na),bar_index,fib4, color = f4BearColor, style = linestyle(f4Style)),
line.new(b.bar,(f5Tog?fib5:na),bar_index,fib5, color = f5BearColor, style = linestyle(f5Style))
)
zones.push(live_zone)
lvls.push(live_lvls)
if zones.size() > zoneDispNum and not dispAll
zones.shift().delete()
ln = lvls.shift()
ln.f1.delete()
ln.f2.delete()
ln.f3.delete()
ln.f4.delete()
ln.f5.delete()
if lvls.size() > 1 and noOverlap
last_zone = zones.get(zones.size()-2)
last_lvl = lvls.get(lvls.size()-2)
if last_lvl.f1.get_x2() > live_lvls.f1.get_x1()
last_lvl.f1.set_x2(math.max(live_zone.get_left(),last_zone.get_right()))
last_lvl.f2.set_x2(math.max(live_zone.get_left(),last_zone.get_right()))
last_lvl.f3.set_x2(math.max(live_zone.get_left(),last_zone.get_right()))
last_lvl.f4.set_x2(math.max(live_zone.get_left(),last_zone.get_right()))
last_lvl.f5.set_x2(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f1.set_x1(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f2.set_x1(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f3.set_x1(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f4.set_x1(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f5.set_x1(math.max(live_zone.get_left(),last_zone.get_right()))
live_lvls.f1.set_x2(bar_index)
live_lvls.f2.set_x2(bar_index)
live_lvls.f3.set_x2(bar_index)
live_lvls.f4.set_x2(bar_index)
live_lvls.f5.set_x2(bar_index)
//---------------------------------------------------------------------------------------------------------------------}
2024-08-07
1350
글번호 182318
답변완료
거래량 막대 색깔 변경
안녕하세요..
거래량 막대 새깔을 이전봉종가 기준으로 이전봉종가 보다 높으면 빨강으로 낮으면 파랑으로 설정하고 싶은데 어떻게 하면 될까요? 부탁드립니다..
2024-08-07
1213
글번호 182315
답변완료
다시 질문드립니다.
제가 질문한 의도를 잘못 해석하신듯해서 다시 설명드릴게요
처음에 질문한 내요은 다음과 같습니다.
" 1분봉으로 MACD 기준선 0을 골드 크로스 , 데드 크로스로 매매 타점을 잡았다고 가정하겠습니다.
그런데 10분봉에서 양봉일경우에는 1분봉 골드크로스 매수 타점만 발생시키고,
10분봉에서 음봉일 경우에는 , 1분봉 데드 크로스 매도 타점만 발생시키고 싶습니다."
답변주신 수식
input : 타주기분(10);
input : short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),TF(0);
var : MACDV(0),MACDS(0);
macdv = macd(short,long);
macds = ema(macdv,sig);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
var1 = Open; // var1 = 시가
}
if CrossUp(MACDV,0) and C > var1 Then
Buy();
if CrossDown(MACDV,0) and C < var1 Then
Sell();
}
제가 의도한 내용은 현재 1분봉으로 매매기준을 삼아서 매매를 하고 있습니다.
그런데, 10분봉상 음봉상태에서 1분봉의 매매타점이 나오는 경우가 있습니다.
그런경우 10분봉상 음봉이면 1분봉에서 매매타점이 나오더라도, 매수하지 않게 하려는 수식구성을 하고자 하는 것입니다.
위에서 답변 주신 수식은 저의 의도와는 다른 수식인듯 합니다.
즉, 다시 정리하면
10분봉에서 양봉기준이 나오면, 1분봉에서 macd 매수 타점만 발생
10분봉에서 음봉기준이 나오면 , 1분봉에서 macd 매도 타점만 발생
이게 핵심입니다.
타 주기를 현재 봉 기준으로 넣어서 매매하고자 하는게 아님을 인지해주시고 , 수식 구성 부탁합니다.
2024-08-07
990
글번호 182314
ksks 님에 의해서 삭제되었습니다.
2024-08-07
8
글번호 182313