답변완료
array함수를 이용한 지표 만드는데 벽에 부딪쳤네요.
// 고점, 저점, 피보나치 레벨 계산
HighQ = Highest(C, Period);
LowQ = Lowest(C, Period);
Range = HighQ - LowQ;
// 피보나치 레벨 (절대값)
FiboLevels = Range * array.from(0.236, 0.382, 0.5, 0.618, 0.786);
// 볼린저 밴드 계산
UpperBand = avg(C, Period) + K * STDEV(C, Period);
LowerBand = avg(C, Period) - K * STDEV(C, Period);
// 현재 주가와 가장 가까운 피보나치 레벨 찾기
NearestFiboLevel = array.min(array.from(abs(C - FiboLevels)));
NearestFiboIndex = array.indexOf(NearestFiboLevel, array.from(abs(C - FiboLevels)));
// 현재 주가의 상대적 위치 (0~100)
CurrentPosition = (C - (LowQ + NearestFiboLevels[NearestFiboIndex])) / Range * 100;
위와같은 지표를 만들고 있습니다.
array.from과
array.min과
특히
array.indexOf()함수는 예스에 맞게 어떻게 고쳐야 하나요?
2025-01-05
477
글번호 186879
지표
답변완료
종목검색식 부탁드림니다.
항상 노고에 감사드림니다.
아래의 수식을 종목검색식으로 부탁드림니다.
1번종목 수식은 시초가에 갭이 1%이하에서 검색되는 종목과 예상체결량이 4%이하에서 검색되는 종목 2가지로 나뉘어서 수식 부탁드림니다.
1)번종목수식
A=BBandsUp(Period,D1);
Crossup(C, A)
지표변수
Period 60
D1 2
2)번 종목수식
A=Lowest(L(1), 기간);
B=Highest(H(1), 기간);
매=Valuewhen(1, BarsSince(L<A(1))==(기간-간격), B);
Crossup(C, 매)
지표변수
기간 15
간격 5
2025-01-05
603
글번호 186874
종목검색
답변완료
수식 변경 부탁합니다
키움 슈퍼트렌드 매수, 매도라인입니다
예스트레이더로 수식변경 부탁합니다.
행복한 하루되세요
A=supertrend(period, multiplier);
ValueWhen(1, CrossUp(C, A), A(1));
A=supertrend(period, multiplier);
ValueWhen(1, CrossDown(C, A), A(1));
2025-01-04
598
글번호 186873
지표
답변완료
다시 문의드립니다.
//이거는, 제질문에 답해주신 내용입니다.
안녕하세요
예스스탁입니다.
조건이 여러개 순차적으로 발생한다면
아래와 같이 작성하시면 됩니다.
1
1차조건만족하면 변수값은 1
변수값이 1인 상태에서 2차조건만족하면 변수값은 2
변수값이 2인 상태에서 3차조건만족하면 변수값은 3으로하고 검색
var : T(0);
var1 = ma(C,20);
var2 = (DayHigh+DayLow)/2;
if CrossUp(var1,20) 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);
}
2
3가지 조건이 모두 당일 발생해야 된다면
아래와 같이 날짜 변경시 변수값을 0으로 초기화하시면 됩니다.
var : T(0);
var1 = ma(C,20);
var2 = (DayHigh+DayLow)/2;
if sDate != sDate[1] Then
T = 0;
if CrossUp(var1,20) 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);
}
즐거운 하루되세요
// 여기까지가 지난번 내용입니다.
귀찮게 해드려서 죄송합니다...
3개만 더 질문드립니다...
1. 저기위에 수식중에서,
if CrossUp(var1,20) then
T = 1;
혹시...이 부분...20일선 골든이면...
if CrossUp(C,var1) then
T = 1;
이거...아닌가요?
2. 모두 당일 발생 말고...
등락이 안정되는 분봉 10개후, 즉 10분봉부터 검색하려면 어케해야 하나요?
3. 이게 하루종일 검색하니까, 종목이 너무 많이 나오고, 오전에 골든하고 오후에 고점근처가도 검색됩니다... 이런거 말고, 분봉10개 안에서 조건3개가 만족하는종목을 검색하고 싶습니다. 예를들어 10분에서20분사이, 혹은 20분에서 30분사이...부탁드립니다.
미리 감사드립니다...ㅎ
수고하세요...ㅎ
2025-01-07
454
글번호 186872
검색
답변완료
문의
// 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("Predictive Channels [LuxAlgo]", "LuxAlgo - Predictive Channels", overlay = true)
//-----------------------------------------------------------------------------}
//Settings
//-----------------------------------------------------------------------------{
mult = input.float(5, 'Factor', minval = 0)
slope = input.float(50, minval = 0) * mult
//Style
r2Css = input(#f23645, 'Upper Resistance', inline = 'resistance', group = 'Colors')
r1Css = input(color.new(#f23645, 50), 'Lower', inline = 'resistance', group = 'Colors')
s1Css = input(color.new(#089981, 50), 'Upper Support    ', inline = 'support', group = 'Colors')
s2Css = input(#089981, 'Lower', inline = 'support', group = 'Colors')
avgCss = input(#787b86, 'Average', group = 'Colors')
areaBull = input(color.new(#089981, 80), 'Fill', inline = 'area', group = 'Colors')
areaBear = input(color.new(#f23645, 80), '', inline = 'area', group = 'Colors')
//-----------------------------------------------------------------------------}
//Calculation
//-----------------------------------------------------------------------------{
var pc_avg = close
var os = 1
var hold_atr = 0.
atr = nz(ta.atr(200)) * mult
pc_avg := math.abs(close - pc_avg) > atr ? close
: pc_avg + os * hold_atr / slope
hold_atr := pc_avg == close ? atr / 2 : hold_atr
os := pc_avg > pc_avg[1] ? 1 : pc_avg < pc_avg[1] ? -1 : os
pc_R2 = pc_avg + hold_atr
pc_R1 = pc_avg + hold_atr/2
pc_S1 = pc_avg - hold_atr/2
pc_S2 = pc_avg - hold_atr
//-----------------------------------------------------------------------------}
//Plot
//-----------------------------------------------------------------------------{
plot_0 = plot(close, color = na, display = display.none, editable = false)
//SR PLots
plot(pc_R2, 'Upper Resistance', close == pc_avg ? na : r2Css)
plot(pc_R1, 'Lower Resistance', close == pc_avg ? na : r1Css)
plot_avg = plot(pc_avg, 'Average', close == pc_avg ? na : avgCss)
plot(pc_S1, 'Upper Support', close == pc_avg ? na : s1Css)
plot(pc_S2, 'Lower Support', close == pc_avg ? na : s2Css)
//Fill
topcss = close > pc_avg ? areaBull : color.new(chart.bg_color, 100)
btmcss = close < pc_avg ? areaBear : color.new(chart.bg_color, 100)
fill(plot_0, plot_avg, pc_R2, pc_S2, topcss, btmcss)
예스식으로 부탁드립니다
2025-01-04
561
글번호 186871
지표