커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

문의드립니다.

S=sum(1); M5=ma(C,기간1,지수); M2=ma(C,기간2); 상전=M5>M5(1) && M5(1)<M5(2); DC=Valuewhen(1,Crossdown(M5,M2),S); 상1=Valuewhen(1,상전,S); 상2=Valuewhen(2,상전,S); 상3=Valuewhen(3,상전,S); GC=Valuewhen(1,CrossUp(M5,M2),S); 조건W=상3<DC && DC<상2 && 상2<상1 && 상1<GC; 조건W && !조건W(1) 기간1 5 기간2 20 1. 상2 저점 보다 상3 저점이 상승하는 W패턴을 추가하고 싶네요. 2. 일봉하고 3분봉에서 사용하고 싶은데 수식이 다르다면 각각 알려주시면 감사하겠습니다.
프로필 이미지
꿀떡
2024-09-23
549
글번호 183615
종목검색

손주형 님에 의해서 삭제되었습니다.

프로필 이미지
손주형
2024-09-21
17
글번호 183614
시스템
답변완료

트레이딩뷰의 파인스크랩터를 트레이딩뷰로 변환 부탁드립니다.

코딩을 위한 노력을 해 보았으나 실격부족으로 어려워서 부탁을 드립니다. 다음의 트레이딩뷰의 코딩을 예스스탁 프로그램으로 맞게 변환을 부탁드립니다. 신호는 조건이 만족한 직전봉에 표기가 되고 있으니 조건 만족봉에 매수매도의 시그널이 되도록 부탁을 드립니다. //@version=5 indicator("ALMA ", overlay=true) //ALMA Smoothing src = input(close, title='Source', group = "ALMA Smoothing") smooth = input.int(1, title='Smoothing', minval=1, group = "ALMA Smoothing") length1 = input.int(25, title='Lookback', minval=1, group = "ALMA Smoothing") offset = 0.85 sigma1 = 7 pchange = ta.change(src, smooth) / src * 100 avpchange = ta.alma(pchange, length1, offset, sigma1) //RSI rsi = ta.rsi(close, 14) rsiL = rsi > rsi[1] rsiS = rsi < rsi[1] //Chande Momentum length11 = 9 src1 = close momm = ta.change(src1) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = math.sum(m1, length11) sm2 = math.sum(m2, length11) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) cL = chandeMO > chandeMO[1] cS = chandeMO < chandeMO[1] //GAMA credit to author: &#169; LeafAlgo https://www.tradingview.com/v/th7NZUPM/ length = input.int(14, minval=1, title="Length", group = "Gaussian Adaptive Moving Average") adaptive = input.bool(true, title="Adaptive Parameters", group = "Gaussian Adaptive Moving Average") volatilityPeriod = input.int(20, minval=1, title="Volatility Period", group = "Gaussian Adaptive Moving Average") // Calculate Gaussian Moving Average gma = 0.0 sumOfWeights = 0.0 sigma = adaptive ? ta.stdev(close, volatilityPeriod) : input.float(1.0, minval=0.1, title="Standard Deviation", group = "Gaussian Adaptive Moving Average") for i = 0 to length - 1 weight = math.exp(-math.pow(((i - (length - 1)) / (2 * sigma)), 2) / 2) value = ta.highest(avpchange, i + 1) + ta.lowest(avpchange, i + 1) gma := gma + (value * weight) sumOfWeights := sumOfWeights + weight gma := (gma / sumOfWeights) / 2 gma:= ta.ema(gma, 7) gmaColor = avpchange >= gma ? color.rgb(0, 161, 5) : color.rgb(215, 0, 0) // Color bars based on signals until the next signal occurs var int currentSignal = 0 currentSignal := avpchange >= gma ? 1 : -1//le_final ? -1 : currentSignal var color barColor = na if currentSignal == 1 barColor := color.rgb(0, 186, 6) else if currentSignal == -1 barColor := color.rgb(176, 0, 0) barcolor(barColor) plotcandle(open, high, low, close, "Bar Color", barColor, barColor, bordercolor = barColor) //Plotting ema = ta.ema(close, 7) plot(ema, color=gmaColor, linewidth=3, title="Gaussian Moving Average") plotshape(ta.crossover(avpchange,gma) and barstate.isconfirmed, "Buy Signal", text = "B", textcolor = color.white, style = shape.labelup, location = location.belowbar, color = color.rgb(0, 161, 5), offset = -1) plotshape(ta.crossunder(avpchange,gma) and barstate.isconfirmed, "Sell Signal", text = "S", textcolor = color.white, style = shape.labeldown, location = location.abovebar, color = color.rgb(215, 0, 0), offset = -1) bgcolor(ta.crossover(avpchange,gma) and barstate.isconfirmed and rsiL and cL ? color.rgb(0, 162, 5, 85): na, offset = -1) bgcolor(ta.crossunder(avpchange,gma) and barstate.isconfirmed and rsiS and cS ? color.rgb(207, 0, 0, 85): na, offset = -1) barcolor(gmaColor) alertcondition(ta.crossover(avpchange,gma) and barstate.isconfirmed, title="Buy Signal", message="Go Long! {{exchange}}:{{ticker}}") alertcondition(ta.crossunder(avpchange,gma) and barstate.isconfirmed, title="Sell Signal", message="Go Short! {{exchange}}:{{ticker}}")
프로필 이미지
하날랑
2024-09-21
912
글번호 183613
시스템
답변완료

검색식 부탁 드려요

1. 캔들이 (몸통기준,종가기준) 전환선 위에 있는 종목검색식. 2. 현재봉 (0봉전) 이 26봉중 신고가인(종가기준) 검색식 3. 25봉 전 종가가(현재봉미포함), 현재봉포함 26봉중 최저가인(종가기준) 검색식 4. 양봉 캔들이 기준선을 돌파 했을때(관통) 검색식 5. 양봉캔들이 전환선을 돌파했을때(관통) 검색식 6. 캔들이 10개 있다면(1,2,3,4,5,6,7,8,9,10번 : 10개 캔들), - 10번 캔들은 10개 캔들중 신고가 임.(몸통기준,종가기준) ---》즉,10번캔들이 1번 캔들의 고점(몸통및 종가기준)을 돌파한 종목 - 1번 캔들의 고점이(몸통기준,종가기준)10번 캔들 다음으로 높음 상기 캔들의 조건을 만족하는 10봉 신고가 (몸통,종가기준) 종목 검색식 부탁드려요. ## 대략 이런모양입니다 (반드시 1번캔들 고점이 10번 캔들 다음으로높음) 10 --------------------------------> 10번이 1번 전고점 돌파 1 ------------------------------ 2 9 3 8 4 7 5 6
프로필 이미지
일지매7
2024-09-23
640
글번호 183612
종목검색
답변완료

문의드립니다.

input : _value(Numeric),_Avg(Numeric); var : _X(0); var : normalize(0); _X = _Value / _Avg; Normalize = IFF(_X > 1.50 , 1.00 , IFF(_X > 1.20 , 0.90 , IFF(_X > 1.00 , 0.80 , IFF(_X > 0.80 , 0.70 , IFF(_X > 0.60 , 0.60 , IFF( _X > 0.40 , 0.50 , IFF(_X > 0.20 , 0.25 ,0.1))))))); 이렇게 사용자 함수를 만들어 검증을 하면 첨부한 것과 같이 나옵니다 뭐가 문제인지 궁금합니다
프로필 이미지
동해바다01
2024-09-21
552
글번호 183611
사용자 함수

아침식사됩니다 님에 의해서 삭제되었습니다.

프로필 이미지
아침식사됩니다
2024-09-21
1
글번호 183610
종목검색
답변완료

부틱드립니다

수고하십니다 트레이딩 뷰 수식입니다. 예스로적용가능하도록 부탁 드립니다. //@version=3 // strategy(title = "Open Close Cross Strategy R5.1 revised by JustUncleL", shorttitle = "OCC Strategy R5.1", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, calc_on_every_tick=false) // // Revision: 5 // Original Author: @JayRogers // Revision Author: JustUncleL revisions 3, 4, 5 // // *** USE AT YOUR OWN RISK *** // - There are drawing/painting issues in pineo when working across resolutions/timeframes that I simply // cannot fix here.. I will not be putting any further effort into developing this until such a time when // workarounds become available. // NOTE: Re-painting has been observed infrequently with default settings and seems OK up to Alternate // multiplier of 5. // Non-repainting mode is available by setting "Delay Open/Close MA" to 1 or more, but the reported // performance will o dramatically. // // R5.1 Changes by JustUncleL // - Upgraded to Version 3 Pineo. // - Added option to Trade type (Long, Short, Both or None) // - Added bar colouring work around patch. // - Small code changes to improve efficiency. // - NOTE: To enable non-Repainting mode set "Delay Open/Close MA" to 1 or more. // 9-Aug-2017 // - Correction on SuperSmooth MA calculation. // // R5 Changes by JustUncleL // - Corrected cross over calculations, sometimes gave false signals. // - Corrected Alternate Time calculation to allow for Daily,Weekly and Monthly charts. // - Open Public release. // R4 Changes By JustUncleL // - Change the way the Alternate resolution in oed, use a Multiplier of the base Time Frame instead, // this makes it easy to switch between base time frames. // - Added TMA and SSMA moving average options. But DEMA is still giving the best results. // - Using "calc_on_every_tick=false" ensures results between backtesting and real time are similar. // - Added Option to Disable the coloring of the bars. // - od default settings. // // R3 Changes by JustUncleL: // - Returned a simplified version of the open/close channel, it shows strength of current trend. // - Added Target Profit Option. // - Added option to reduce the number of historical bars, overcomes the too many trades limit error. // - Simplified the strategy code. // - Removed Trailing Stop option, not required and in my opion does not work well in Trading View, // it also gives false and unrealistic performance results in backtesting. // // R2 Changes: // - Simplified and cleaned up plotting, now just shows a Moving Average derived from the average of open/close. // - Tried very hard to alleviate painting issues caused by referencing alternate resolution.. // // Deoion: // - Strategy based around Open-Close Crossovers. // Setup: // - I have generally found that setting the strategy resolution to 3-4x that of the chart you are viewing // tends to yield the best results, regardless of which MA option you may choose (if any) BUT can cause // a lot of false positives - be aware of this // - Don't aim for perfection. Just aim to get a reasonably snug fit with the O-C band, with good runs of // green and red. // - Option to either use basic open and close series data, or pick your poison with a wide array of MA types. // - Optional trailing stop for damage mitigation if desired (can be toggled on/off) // - Positions get taken automagically following a crossover - which is why it's better to set the resolution // of the o greater than that of your chart, so that the trades get taken sooner rather than later. // - If you make use of the stops, be sure to take your time tweaking the values. Cutting it too fine // will cost you profits but keep you safer, while letting them loose could lead to more drawdown than you // can handle. // - To enable non-Repainting mode set "Delay Open/Close MA" to 1 or more. // // === INPUTS === useRes = input(defval = true, title = "Use Alternate Resolution?") intRes = input(defval = 3, title = "Multiplier for Alernate Resolution") stratRes = ismonthly? tostring(interval*intRes,"###M") : isweekly? tostring(interval*intRes,"###W") : isdaily? tostring(interval*intRes,"###D") : isintraday ? tostring(interval*intRes,"####") : '60' basisType = input(defval = "SMMA", title = "MA Type: ", options=["SMA", "EMA", "DEMA", "TEMA", "WMA", "VWMA", "SMMA", "HullMA", "LSMA", "ALMA", "SSMA", "TMA"]) basisLen = input(defval = 8, title = "MA Period", minval = 1) offsetSigma = input(defval = 6, title = "Offset for LSMA / Sigma for ALMA", minval = 0) offsetALMA = input(defval = 0.85, title = "Offset for ALMA", minval = 0, step = 0.01) scolor = input(false, title="Show coloured Bars to indicate Trend?") delayOffset = input(defval = 0, title = "Delay Open/Close MA (Forces Non-Repainting)", minval = 0, step = 1) tradeType = input("BOTH", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"]) // === /INPUTS === // Constants colours that include fully non-transparent option. green100 = #008000FF lime100 = #00FF00FF red100 = #FF0000FF blue100 = #0000FFFF aqua100 = #00FFFFFF darkred100 = #8B0000FF gray100 = #808080FF // === BASE FUNCTIONS === // Returns MA input oion variant, default to SMA if blank or typo. variant(type, src, len, offSig, offALMA) => v1 = sma(src, len) // Simple v2 = ema(src, len) // Exponential v3 = 2 * v2 - ema(v2, len) // Double Exponential v4 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential v5 = wma(src, len) // Weighted v6 = vwma(src, len) // Volume Weighted v7 = 0.0 v7 := na(v7[1]) ? sma(src, len) : (v7[1] * (len - 1) + src) / len // Smoothed v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) // Hull v9 = linreg(src, len, offSig) // Least Squares v10 = alma(src, len, offALMA, offSig) // Arnaud Legoux v11 = sma(v1,len) // Triangular (extreme smooth) // SuperSmoother filter // &#169; 2013 John F. Ehlers a1 = exp(-1.414*3.14159 / len) b1 = 2*a1*cos(1.414*3.14159 / len) c2 = b1 c3 = (-a1)*a1 c1 = 1 - c2 - c3 v12 = 0.0 v12 := c1*(src + nz(src[1])) / 2 + c2*nz(v12[1]) + c3*nz(v12[2]) type=="EMA"?v2 : type=="DEMA"?v3 : type=="TEMA"?v4 : type=="WMA"?v5 : type=="VWMA"?v6 : type=="SMMA"?v7 : type=="HullMA"?v8 : type=="LSMA"?v9 : type=="ALMA"?v10 : type=="TMA"?v11: type=="SSMA"?v12: v1 // security wrapper for repeat calls reso(exp, use, res) => use ? security(tickerid, res, exp, gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on) : exp // === /BASE FUNCTIONS === // === SERIES SETUP === closeSeries = variant(basisType, close[delayOffset], basisLen, offsetSigma, offsetALMA) openSeries = variant(basisType, open[delayOffset], basisLen, offsetSigma, offsetALMA) // === /SERIES === // === PLOTTING === // Get Alternate resolution Series if oed. closeSeriesAlt = reso(closeSeries, useRes, stratRes) openSeriesAlt = reso(openSeries, useRes, stratRes) // trendColour = (closeSeriesAlt > openSeriesAlt) ? green : red bcolour = (closeSeries > openSeriesAlt) ? lime100 : red100 barcolor(scolor?bcolour:na, title = "Bar Colours") closeP=plot(closeSeriesAlt, title = "Close Series", color = trendColour, linewidth = 2, style = line, transp = 20) openP=plot(openSeriesAlt, title = "Open Series", color = trendColour, linewidth = 2, style = line, transp = 20) fill(closeP,openP,color=trendColour,transp=80) // === /PLOTTING === // // // === ALERT conditions xlong = crossover(closeSeriesAlt, openSeriesAlt) xshort = crossunder(closeSeriesAlt, openSeriesAlt) longCond = xlong // alternative: longCond[1]? false : (xlong or xlong[1]) and close>closeSeriesAlt and close>=open shortCond = xshort // alternative: shortCond[1]? false : (xshort or xshort[1]) and close<closeSeriesAlt and close<=open // === /ALERT conditions. // === STRATEGY === // stop loss slPoints = input(defval = 0, title = "Initial Stop Loss Points (zero to disable)", minval = 0) tpPoints = input(defval = 0, title = "Initial Target Profit Points (zero for disable)", minval = 0) // Include bar limiting algorithm ebar = input(defval = 10000, title="Number of Bars for Back Testing", minval=0) dummy = input(false, title="- SET to ZERO for Daily or Longer Timeframes" ) // // Calculate how many mars since last bar tdays = (timenow-time)/60000.0 // number of minutes since last bar tdays := ismonthly? tdays/1440.0/5.0/4.3/interval : isweekly? tdays/1440.0/5.0/interval : isdaily? tdays/1440.0/interval : tdays/interval // number of bars since last bar // //set up exit parameters TP = tpPoints>0?tpPoints:na SL = slPoints>0?slPoints:na // Make sure we are within the bar range, Set up entries and exit conditions if ((ebar==0 or tdays<=ebar) and tradeType!="NONE") strategy.entry("long", strategy.long, when=longCond==true and tradeType!="SHORT") strategy.entry("short", strategy.short, when=shortCond==true and tradeType!="LONG") strategy.close("long", when = shortCond==true and tradeType=="LONG") strategy.close("short", when = longCond==true and tradeType=="SHORT") strategy.exit("XL", from_entry = "long", profit = TP, loss = SL) strategy.exit("XS", from_entry = "short", profit = TP, loss = SL) // === /STRATEGY === // eof
프로필 이미지
파생돌이
2024-09-22
1207
글번호 183609
지표
답변완료

해외선물 결제월물이 바뀌었을 때 과거 데이터는 어떻게 처리되는지요?

어디에 물어봐야 될지 모르겠지만 먼저 여기에 질의를 해봅니다. 결제월물이 바뀌면 과거의 데이터를 어떻게 가지고 오는지 모르겠지만 같은 로직으로 돌려 보는데도 과거의 시뮬레이션 값이 달라지는데 원인이 무엇인지요? 과거의 챠트 데이터는 변화가 없어야 맞는 거 같은데.... 9월20일은 9월물이 마감되는 날입니다. 12월물은 9월20일 며칠전에 거래가 되었구요. 9월물에 사용된 로직을 가지고 4월21일~9월20까지 시뮬레이션을 돌리면 총손익이 9,218.25P나오고, 같은 로직으로 같은 시뮬레이션 기간에 대한 12월물을 돌리면 총손익이 1,222P 나옵니다. 지나간 데이터는 변화될 수 없는 것이기 때문에 12월물이 시작된 부분만 값이 달라야되는 것이 상식적으로 맞는 거 같은데 너무나 다른 결과가 나오는 이유를 알고 싶습니다.
프로필 이미지
하날랑
2024-09-21
499
글번호 183608
시스템

남한산성 님에 의해서 삭제되었습니다.

프로필 이미지
남한산성
2024-09-21
265
글번호 183607
시스템
답변완료

지표변환문의드립니다

안녕하세요. 키움 지표를 변환하려고 하는데 안되어서요. 문의드립니다. countsince(c!=c(1),if(v>number1 and v<number2,1,0)) number1과 number2는 지표조건설정에서 지정하는 값입니다. 너무 어렵네요. 미리감사드립니다. 수고하십시오.
프로필 이미지
cometrue
2024-09-21
640
글번호 183606
지표