커뮤니티

부탁드립니다

프로필 이미지
양념통닭
2023-08-16 23:58:33
989
글번호 171560
답변완료
안녕하세요 무더운 날씨에 수고가 많으십니다. 예스랭귀지 수식으로 부탁드립니다. ///////////////////////////////////////////////////////////// 1. // Inputs sum_length = input(500, title='EVWMA Length') vwap_smoothing = input(400, title='VWAP Smoothing') // Calculate EVWMA vol_period = math.sum(volume, sum_length) evwma = 100.100 evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / vol_period vwap_smooth = ta.ema(ta.vwap, vwap_smoothing) long = ta.crossover(vwap_smooth, evwma) short = ta.crossunder(vwap_smooth, evwma) plot(evwma, color=color.new(color.blue, 100)) plot(vwap_smooth, color=color.new(color.red, 100)) strategy.entry('Long', strategy.long, when=long) strategy.entry('Short', strategy.short, when=short) *문의사항 1. blue가 red를 crossUp 할때 buy (색상: 빨간색) 2. red가 blue를 crossUp 할때도 buy (색상: 파란색) 1번 2번 을 or로 묶으주시면 고맙겠습니다. (* crossdown의 화살표 삭제부탁드립니다.) 3. sell (crossdown) 은 밑에 수식으로 부탁드리겠습니다. crossdown 외에 나머지도 삭제 부탁드립니다. // Inputs length = input(60) price = input(close) // RSI ma = ta.sma(price, length) plot(ma) if ta.crossover(close, ma) strategy.entry('MaLong', strategy.long, comment='MaLong') if ta.crossunder(close, ma) strategy.entry('MaShort', strategy.short, comment='MaLong') 1+2+3 합쳐서 가능 하시면 검색식, 시스템식, 지표식 3가지 모두 부탁 드리겠습니다. 꾸벅^^ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2. 지표식으로 변환부탁드립니다. // Momentum len = input.int(500, "Momentum Length", 500, group = "Dynamic RSI Momentum") src = input.source(close, "Source", group = "Dynamic RSI Momentum") min_rsi = input.int(500, "Min RSI", group = "Dynamic RSI Momentum") max_rsi = input.int(500, "Max RSI", group = "Dynamic RSI Momentum") upLvl = input.float(500, "OverBought", 0, 500, group = "Dynamic RSI Momentum") dnLvl = input.float(500, "OverSold", 0, 500, group = "Dynamic RSI Momentum") // +++++++++++++++++++++ // ++ CALCULATION ++ // +++++++++++++++++++++ // RMA Function rmaFun(src, len) => sma = ta.sma(src, len) alpha = 1/len sum = 0.0 sum := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1]) // RSI Function rsiFun(src, len) => 100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) / rmaFun(src[1] - src > 0 ? src[1] - src : 0, len)) // Momentum momVal = src - src[len] // Calculation Price vs Momentum corr = ta.correlation(src, momVal, len) corr := corr > 1 or corr < -1 ? float(na) : corr rsiLen = 0 rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0)) rsiMom = rsiFun(src, rsiLen) // +++++++++++++++++++++ // ++ STRATEGY ++ // +++++++++++++++++++++ long = ta.crossover(rsiMom, dnLvl) short = ta.crossunder(rsiMom, upLvl) // +++> Long <+++++ if long and not na(rsiMom) strategy.entry("Long", strategy.long) // +++> Short <+++++ if short and not na(rsiMom) strategy.entry("Short", strategy.short) // +++++++++++++++++++++ // ++ PLOT ++ // +++++++++++++++++++++ plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow) hline(50, "Mid Line", color.gray) upperLine = hline(upLvl, "Upper Line", color.gray) lowerLine = hline(dnLvl, "Lower Line", color.gray) fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill") /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 수고하세요, 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-08-17 16:35:38

안녕하세요 예스스탁입니다. 1-1 지표 input : sum_length(500),vwap_smoothing(400); var : vol_period(0),evwma(0),vwap_smooth(0),long(False),short(False); input : length(60); var : mav(0); vol_period = AccumN(volume, sum_length); evwma = 100.100; evwma = ((vol_period - volume) * iff(IsNan(evwma[1]) == true, close,evwma[1]) + volume * close) / vol_period; vwap_smooth = ema(evwma, vwap_smoothing); mav = ma(c, length); Plot1(evwma); Plot2(vwap_smooth); Plot3(mav); 1-2 검색 input : sum_length(500),vwap_smoothing(400); var : vol_period(0),evwma(0),vwap_smooth(0),long(False),short(False); input : length(60); var : mav(0); vol_period = AccumN(volume, sum_length); evwma = 100.100; evwma = ((vol_period - volume) * iff(IsNan(evwma[1]) == true, close,evwma[1]) + volume * close) / vol_period; vwap_smooth = ema(evwma, vwap_smoothing); mav = ma(c, length); if CrossUp(evwma,vwap_smooth) or CrossDown(evwma,vwap_smooth) Then Plot1(H,"검색",Magenta); if CrossDown(close, mav) Then Plot1(H,"검색",Cyan); 1-3 시스템 input : sum_length(500),vwap_smoothing(400); var : vol_period(0),evwma(0),vwap_smooth(0),long(False),short(False); input : length(60); var : mav(0); vol_period = AccumN(volume, sum_length); evwma = 100.100; evwma = ((vol_period - volume) * iff(IsNan(evwma[1]) == true, close,evwma[1]) + volume * close) / vol_period; vwap_smooth = ema(evwma, vwap_smoothing); mav = ma(c, length); if CrossUp(evwma,vwap_smooth) or CrossDown(evwma,vwap_smooth) Then Buy(); if CrossDown(close, mav) Then Sell(); 2 // Momentum input : len(500),min_rsi(500),max_rsi(500),upLvl(55),dnLvl(45); var : src(0),sma1(0),alpha1(0),rmaFun1(0),sma2(0),alpha2(0),rmaFun2(0); var : rsiFun(0),momVal(0),corr(0),rsiLen(0),rsiMom(0); src = close; // Momentum momVal = src - src[len]; // Calculation Price vs Momentum corr = correlation(src, momVal, len); corr = iff(corr > 1 or corr < -1 , Nan , corr); rsiLen = 0; rsiLen = int(min_rsi + IFf(round((1 - corr) * (max_rsi-min_rsi) / 2, 0) == False,round((1 - corr) * (max_rsi-min_rsi) / 2, 0),0)); var1 = IFf(src - src[1] > 0 , src - src[1] ,0); var2 = IFf(src[1] - src > 0 , src[1] - src ,0); sma1 = ma(var1, len); alpha1 = 1/len; rmaFun1 = 0.0; rmaFun1 = iff(IsNan(rmaFun1[1]) == true, sma1 , alpha1 * var1 + (1 - alpha1) * iff(isnan(rmaFun1[1])==False,rmaFun1[1],0)); sma2 = ma(var2, len); alpha2 = 1/len; rmaFun2 = 0.0; rmaFun2 = iff(IsNan(rmaFun2[1]) == true, sma2 , alpha2 * var2 + (1 - alpha2) * iff(isnan(rmaFun2[1])==False,rmaFun2[1],0)); rsiFun = 100 - 100 / (1 + rmaFun1 / rmaFun2); rsiMom = rsiFun; plot1(rsiMom, "Dynamic RSI Momentum", iff(rsiMom < dnLvl , green , iff(rsiMom > upLvl , red ,yellow))); PlotBaseLine1(upLvl, "Upper Line", gray); PlotBaseLine2(dnLvl, "Lower Line", gray); PlotBaseLine3(50, "Mid Line", gray); 즐거운 하루되세요 > 양념통닭 님이 쓴 글입니다. > 제목 : 부탁드립니다 > 안녕하세요 무더운 날씨에 수고가 많으십니다. 예스랭귀지 수식으로 부탁드립니다. ///////////////////////////////////////////////////////////// 1. // Inputs sum_length = input(500, title='EVWMA Length') vwap_smoothing = input(400, title='VWAP Smoothing') // Calculate EVWMA vol_period = math.sum(volume, sum_length) evwma = 100.100 evwma := ((vol_period - volume) * nz(evwma[1], close) + volume * close) / vol_period vwap_smooth = ta.ema(ta.vwap, vwap_smoothing) long = ta.crossover(vwap_smooth, evwma) short = ta.crossunder(vwap_smooth, evwma) plot(evwma, color=color.new(color.blue, 100)) plot(vwap_smooth, color=color.new(color.red, 100)) strategy.entry('Long', strategy.long, when=long) strategy.entry('Short', strategy.short, when=short) *문의사항 1. blue가 red를 crossUp 할때 buy (색상: 빨간색) 2. red가 blue를 crossUp 할때도 buy (색상: 파란색) 1번 2번 을 or로 묶으주시면 고맙겠습니다. (* crossdown의 화살표 삭제부탁드립니다.) 3. sell (crossdown) 은 밑에 수식으로 부탁드리겠습니다. crossdown 외에 나머지도 삭제 부탁드립니다. // Inputs length = input(60) price = input(close) // RSI ma = ta.sma(price, length) plot(ma) if ta.crossover(close, ma) strategy.entry('MaLong', strategy.long, comment='MaLong') if ta.crossunder(close, ma) strategy.entry('MaShort', strategy.short, comment='MaLong') 1+2+3 합쳐서 가능 하시면 검색식, 시스템식, 지표식 3가지 모두 부탁 드리겠습니다. 꾸벅^^ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2. 지표식으로 변환부탁드립니다. // Momentum len = input.int(500, "Momentum Length", 500, group = "Dynamic RSI Momentum") src = input.source(close, "Source", group = "Dynamic RSI Momentum") min_rsi = input.int(500, "Min RSI", group = "Dynamic RSI Momentum") max_rsi = input.int(500, "Max RSI", group = "Dynamic RSI Momentum") upLvl = input.float(500, "OverBought", 0, 500, group = "Dynamic RSI Momentum") dnLvl = input.float(500, "OverSold", 0, 500, group = "Dynamic RSI Momentum") // +++++++++++++++++++++ // ++ CALCULATION ++ // +++++++++++++++++++++ // RMA Function rmaFun(src, len) => sma = ta.sma(src, len) alpha = 1/len sum = 0.0 sum := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1]) // RSI Function rsiFun(src, len) => 100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) / rmaFun(src[1] - src > 0 ? src[1] - src : 0, len)) // Momentum momVal = src - src[len] // Calculation Price vs Momentum corr = ta.correlation(src, momVal, len) corr := corr > 1 or corr < -1 ? float(na) : corr rsiLen = 0 rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0)) rsiMom = rsiFun(src, rsiLen) // +++++++++++++++++++++ // ++ STRATEGY ++ // +++++++++++++++++++++ long = ta.crossover(rsiMom, dnLvl) short = ta.crossunder(rsiMom, upLvl) // +++> Long <+++++ if long and not na(rsiMom) strategy.entry("Long", strategy.long) // +++> Short <+++++ if short and not na(rsiMom) strategy.entry("Short", strategy.short) // +++++++++++++++++++++ // ++ PLOT ++ // +++++++++++++++++++++ plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow) hline(50, "Mid Line", color.gray) upperLine = hline(upLvl, "Upper Line", color.gray) lowerLine = hline(dnLvl, "Lower Line", color.gray) fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill") /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 수고하세요, 감사합니다.