답변완료
부탁드립니다 항상 감사합니다
input : 타주기분(60);
input : P(20), Dv(2);
var : S1(0), D1(0), TM(0), TF(0), prevTF(0), isNew(false);
var : cnt(0), SumSqrt(0), Stdv(0), sum(0), BBmd(0), BBup(0), BBdn(0);
var : lastPriceInBlock(0), isFirst(true);
Array : CC;
{ 기준 시각/날짜 초기화 }
if Bdate <> Bdate[1] then begin
S1 = TimeToMinutes(stime);
D1 = sdate;
end;
if D1 > 0 then begin
if sdate = D1 then
TM = TimeToMinutes(stime) - S1
else
TM = TimeToMinutes(stime) + 1440 - S1;
TF = TM % 타주기분;
prevTF = TF[1];
{ 새 블럭 판단: 날짜 변경 or 나머지 되감김 or 충분히 경과 }
isNew = (Bdate <> Bdate[1]) or (TF < prevTF) or (TM >= TM[1] + 타주기분);
{ 각 틱에서 현재 블럭의 마지막 가격을 트래킹 }
lastPriceInBlock = C;
if isNew and (isFirst = false) then begin
{ 직전 블럭 종료 시점 가격을 밀어넣기 }
for cnt = 99 downto 1 begin
CC[cnt] = CC[cnt-1];
end;
CC[0] = C[1]; { 직전 틱(=직전 블럭 끝)의 종가를 기록 }
end;
if isFirst then begin
{ 초기 1회 세팅: 현재가로 CC[0] 채우기 }
CC[0] = C;
isFirst = false;
end;
{ 충분히 쌓였으면 볼밴 계산 }
if P <= 99 and CC[P-1] > 0 then begin
sum = 0;
for cnt = 0 to P-1 begin
sum = sum + CC[cnt];
end;
BBmd = sum / P;
SumSqrt = 0;
for cnt = 0 to P-1 begin
SumSqrt = SumSqrt + (CC[cnt] - BBmd)*(CC[cnt] - BBmd);
end;
Stdv = SquareRoot(SumSqrt / P);
BBup = BBmd + (Dv * Stdv);
BBdn = BBmd - (Dv * Stdv);
Plot1(BBup, "상단");
Plot2(BBmd, "중단");
Plot3(BBdn, "하단");
end;
end;
예스트레이더 해외선물에 적용할수있게끔 부탁드립니다
답변완료
문의 드립니다.
//@version=5
indicator(
title="DEMA Adjusted Average True Range [BackQuant]",
shorttitle = "DEMA ATR [BackQuant]",
overlay=true,
timeframe="",
timeframe_gaps=true
)
// Define User Inputs
simple bool showAtr = input.bool(true, "Plot Dema Atr on Chart?")
simple bool haCandles = input.bool(false, "Use HA Candles?")
simple int periodDema = input.int(7, "Dema Period", group = "Dema Atr")
series float sourceDema = input.source(close, "Calculation Source", group = "Dema Atr")
simple int periodAtr = input.int(14, "Period", group = "Dema Atr")
simple float factorAtr = input.float(1.7, "Factor", step = 0.01, group = "Dema Atr")
simple bool paintCandles = input.bool(false, "Paint Candles According to trend?")
simple bool showMA = input.bool(false, "Show Atr Moving Average as Confluence?",group = "Confluence")
string movingAverageType = input.string("Ema", title="MA Type", options=["SMA", "Hull", "Ema", "Wma", "Dema"],group = "Confluence")
simple int movingAveragePeriod = input.int(50, "Moving Average Period", group = "Confluence")
simple color longColour = #00ff00
simple color shortColour = #ff0000
/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
// Use HA Candles?
heikinashi_close = request.security(
symbol = ticker.heikinashi(syminfo.tickerid),
timeframe = timeframe.period,
expression = close,
gaps = barmerge.gaps_off,
lookahead = barmerge.lookahead_off
)
var series float source = close
if haCandles == true
source := heikinashi_close
if haCandles == false
source := sourceDema
/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
// Function
DemaAtrWithBands(periodDema, source, lookback, atrFactor)=>
ema1 = ta.ema(source, periodDema)
ema2 = ta.ema(ema1, periodDema)
demaOut = 2 * ema1 - ema2
atr = ta.atr(lookback)
trueRange = atr * atrFactor
DemaAtr = demaOut
DemaAtr := nz(DemaAtr[1], DemaAtr)
trueRangeUpper = demaOut + trueRange
trueRangeLower = demaOut - trueRange
if trueRangeLower > DemaAtr
DemaAtr := trueRangeLower
if trueRangeUpper < DemaAtr
DemaAtr := trueRangeUpper
DemaAtr
// Function Out
DemaAtr = DemaAtrWithBands(periodDema, source, periodAtr, factorAtr)
/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
// Moving Average Switch Type
movingAverage(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Hull" => ta.hma(source, length)
"Ema" => ta.ema(source, length)
"Wma" => ta.wma(source, length)
"Dema" => ta.dema(source, length)
maOut = movingAverage(DemaAtr, movingAveragePeriod, movingAverageType)
/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
// Conditions
DemaAtrLong = ta.crossover(DemaAtr, DemaAtr[1])
DemaAtrShort = ta.crossunder(DemaAtr, DemaAtr[1])
// Colour Condtions
var color Trend = #ffffff
if DemaAtrLong
Trend := longColour
if DemaAtrShort
Trend := shortColour
// Plotting
plot(
showAtr ? DemaAtr : na,
"ATR",
color=Trend,
linewidth = 2
)
barcolor(paintCandles ? Trend : na)
plot(showMA ? maOut : na, "Moving Average", color.white, 2, plot.style_line)
/////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
// Alerts
alertcondition(
DemaAtrLong,
title="Dema ATR Trend Up",
message="Dema ATR Trend Up - {{ticker}} - {{interval}}"
)
alertcondition(
DemaAtrShort,
title="Dema ATR Trend Down",
message="Dema ATR Trend Down - {{ticker}} - {{interval}}"
)
트레이딩뷰 수식인데 여기서 DEMA 선의 색이 바뀌면 매수/매도 신호가 나오게 해주세요.
답변완료
종목 검색 변환 요청드립니다
안녕하세요?
아래 키움 신호 검색 수식을 예스랭귀지 종목 검색 수식으로 변환 부탁드립니다.
선행1 = shift((highest(high,5) + lowest(low,5) + highest(high, 20) + lowest(low,20)) / 4, 20-1);
선행2 = shift((highest(high,60) + lowest(low,60))/2, 20-1);
라인 = Valuewhen(1, Crossup(선행1, 선행2) or Crossdown(선행1, 선행2), min(L,L(1)));
Crossup(C, 라인)
Valuewhen 사용자함수는 별도로 정의하였습니다.