커뮤니티

시스템 부탁드립니다. 감사합니다.

프로필 이미지
도여니
2021-02-13 22:16:30
725
글번호 146302
답변완료
외국 사이트에 있는 Heikin Ashi 수식과 다비스 박스입니다. 매수는 Heikin Ashi 수식에서 buy신호만을 이용하고 싶고 청산은 설정한 이격도에서 70프로를 청산하고 나머지 30프로는 다비스 박스 bottom box 보다 종가가 아래 있으면 나머지 30프로를 청산하는 시스템을 만들고 싶습니다. 복잡한걸 의뢰해드려 죄송합니다. 천천히 해주셔도 됩니다. 감사합니다. 1. Heikin Ashi study("Heikin Ashi Smoothed Buy Sell ", overlay=true) EMAlength=input(55,"EMA LENGTH?") src=ohlc4 haOpen=0.0 haOpen := (src + nz(haOpen[1]))/2 haC=(ohlc4+nz(haOpen)+max(high,nz(haOpen))+min(low,nz(haOpen)))/4 EMA1=ema(haC,EMAlength) EMA2=ema(EMA1,EMAlength) EMA3=ema(EMA2,EMAlength) TMA1=3*EMA1-3*EMA2+EMA3 EMA4=ema(TMA1,EMAlength) EMA5=ema(EMA4,EMAlength) EMA6=ema(EMA5,EMAlength) TMA2=3*EMA4-3*EMA5+EMA6 IPEK=TMA1-TMA2 YASIN=TMA1+IPEK EMA7=ema(hlc3,EMAlength) EMA8=ema(EMA7,EMAlength) EMA9=ema(EMA8,EMAlength) TMA3=3*EMA7-3*EMA8+EMA9 EMA10=ema(TMA3,EMAlength) EMA11=ema(EMA10,EMAlength) EMA12=ema(EMA11,EMAlength) TMA4=3*EMA10-3*EMA11+EMA12 IPEK1=TMA3-TMA4 YASIN1=TMA3+IPEK1 mavi=YASIN1 kirmizi=YASIN longCond=mavi>kirmizi and mavi[1]<=kirmizi[1] shortCond=mavi<kirmizi and mavi[1]>=kirmizi[1] trendState = kirmizi < mavi ? true : kirmizi > mavi ? false : trendState[1] closePlot = plot(kirmizi, title = "Close Line", color = #009900, linewidth = 10, style = line, transp = 90) openPlot = plot(mavi, title = "Open Line", color = #CC0000, linewidth = 10, style = line, transp = 90) closePlotU = plot(trendState ? kirmizi : na, transp = 100, editable = false) openPlotU = plot(trendState ? mavi : na, transp = 100, editable = false) closePlotD = plot(trendState ? na : kirmizi, transp = 100, editable = false) openPlotD = plot(trendState ? na : mavi, transp = 100, editable = false) fill(openPlotU, closePlotU, title = "Up Trend Fill", color = #009900, transp = 1) fill(openPlotD, closePlotD, title = "Down Trend Fill", color = #CC0000, transp = 1) last_signal = 0 long_final = longCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == -1) short_final = shortCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1) alertcondition(long_final, title="buy alarm", message="buy signal!!!") alertcondition(short_final, title="sell alarm", message="sell signal!!!") last_signal := long_final ? 1 : short_final ? -1 : last_signal[1] plotshape(long_final, style=shape.labelup, location=location.belowbar, color=green,size=size.tiny,title="buy label",text="BUY",textcolor=white) plotshape(short_final, style=shape.labeldown, location=location.abovebar, color=red,size=size.tiny,title="sell label",text="SELL",textcolor=white) 2. Darbis box //@version=4 study("Darvas Box Buy Sell", overlay=true) boxp = input(defval=5, title="Length", minval=1, maxval=500) LL = lowest(low, boxp) k1 = highest(high, boxp) k2 = highest(high, boxp - 1) k3 = highest(high, boxp - 2) NH = valuewhen(high > k1[1], high, 0) box1 = k3 < k2 TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) plot(TopBox, linewidth=3, color=#00FF00, title="TBbox") plot(BottomBox, linewidth=3, color=#FF0000, title="BBbox") Buy = crossover(close, TopBox) Sell = crossunder(close, BottomBox) alertcondition(Buy, title="Buy Signal", message="Buy") alertcondition(Sell, title="Sell Signal", message="Sell") plotshape(Buy, style=shape.labelup, location=location.belowbar, transp=0, color=#00FF00, size=size.tiny, title="Buy Signal", text="Buy", textcolor=color.black) plotshape(Sell, style=shape.labeldown, location=location.abovebar, transp=0, color=#FF0000, size=size.tiny, title="Sell Signal", text="Sell", textcolor=color.white)
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-02-15 17:28:49

안녕하세요 예스스탁입니다. input : EMAlength(55); input : boxp(5); input : 이격도기간(20); var : src(0),haOpen(0),haC(0); var : Ema1(0),Ema2(0),Ema3(0),TMA1(0); var : Ema4(0),Ema5(0),Ema6(0),TMA2(0); var : Ema7(0),Ema8(0),Ema9(0),TMA3(0); var : Ema10(0),Ema11(0),Ema12(0),TMA4(0); var : IPEK(0),IPEK1(0),YASIN(0),YASIN1(0); var : mavi(0),kirmizi(0),longCond(False),ShortCond(False),trendState(0); var : LL(0),k1(0),k2(0),k3(0),box1(False),TopBox(0),BottomBox(0),NH(0),idx(0); var : v1(0),v2(0),dis(0); src = (o+h+l+c)/4; if index == 0 then { haOpen = src; haC = src; } else { haOpen = (haOpen[1]+ src)/2 ; haC=(src+haOpen+max(high,haOpen)+min(low,haOpen))/4; } EMA1=ema(haC,EMAlength); EMA2=ema(EMA1,EMAlength); EMA3=ema(EMA2,EMAlength); TMA1=3*EMA1-3*EMA2+EMA3; EMA4=ema(TMA1,EMAlength); EMA5=ema(EMA4,EMAlength); EMA6=ema(EMA5,EMAlength); TMA2=3*EMA4-3*EMA5+EMA6; IPEK=TMA1-TMA2; YASIN=TMA1+IPEK; EMA7=ema((h+l+c)/3,EMAlength); EMA8=ema(EMA7,EMAlength); EMA9=ema(EMA8,EMAlength); TMA3=3*EMA7-3*EMA8+EMA9; EMA10=ema(TMA3,EMAlength); EMA11=ema(EMA10,EMAlength); EMA12=ema(EMA11,EMAlength); TMA4=3*EMA10-3*EMA11+EMA12; IPEK1=TMA3-TMA4; YASIN1=TMA3+IPEK1; mavi=YASIN1; kirmizi=YASIN; longCond=mavi>kirmizi and mavi[1]<=kirmizi[1]; shortCond=mavi<kirmizi and mavi[1]>=kirmizi[1]; trendState = iff(kirmizi < mavi , true ,IFf(kirmizi > mavi , false , trendState[1])); LL = lowest(low, boxp); k1 = highest(high, boxp); k2 = highest(high, boxp - 1); k3 = highest(high, boxp - 2); box1 = k3 < k2; if high > K1[1] Then { NH = high; idx = 0; } Else { if NH > 0 Then { idx = idx+1; if idx == boxp-2 and box1 == true Then { TopBox = NH; BottomBox = LL; } } } dis = Disparity(이격도기간); if LongCond == true Then Buy("b"); if MarketPosition == 1 Then { #진입수량의 70% v1 = Floor(MaxContracts*0.7); #진입수량의 30% v2 = MaxContracts-V1; if CrossDown(dis,110) Then ExitLong("bx1",OnClose,DEf,"",v1,1); if CrossDown(c,BottomBox) Then ExitLong("bx2",OnClose,DEf,"",v2,1); } 즐거운 하루되세요 > 도여니 님이 쓴 글입니다. > 제목 : 시스템 부탁드립니다. 감사합니다. > 외국 사이트에 있는 Heikin Ashi 수식과 다비스 박스입니다. 매수는 Heikin Ashi 수식에서 buy신호만을 이용하고 싶고 청산은 설정한 이격도에서 70프로를 청산하고 나머지 30프로는 다비스 박스 bottom box 보다 종가가 아래 있으면 나머지 30프로를 청산하는 시스템을 만들고 싶습니다. 복잡한걸 의뢰해드려 죄송합니다. 천천히 해주셔도 됩니다. 감사합니다. 1. Heikin Ashi study("Heikin Ashi Smoothed Buy Sell ", overlay=true) EMAlength=input(55,"EMA LENGTH?") src=ohlc4 haOpen=0.0 haOpen := (src + nz(haOpen[1]))/2 haC=(ohlc4+nz(haOpen)+max(high,nz(haOpen))+min(low,nz(haOpen)))/4 EMA1=ema(haC,EMAlength) EMA2=ema(EMA1,EMAlength) EMA3=ema(EMA2,EMAlength) TMA1=3*EMA1-3*EMA2+EMA3 EMA4=ema(TMA1,EMAlength) EMA5=ema(EMA4,EMAlength) EMA6=ema(EMA5,EMAlength) TMA2=3*EMA4-3*EMA5+EMA6 IPEK=TMA1-TMA2 YASIN=TMA1+IPEK EMA7=ema(hlc3,EMAlength) EMA8=ema(EMA7,EMAlength) EMA9=ema(EMA8,EMAlength) TMA3=3*EMA7-3*EMA8+EMA9 EMA10=ema(TMA3,EMAlength) EMA11=ema(EMA10,EMAlength) EMA12=ema(EMA11,EMAlength) TMA4=3*EMA10-3*EMA11+EMA12 IPEK1=TMA3-TMA4 YASIN1=TMA3+IPEK1 mavi=YASIN1 kirmizi=YASIN longCond=mavi>kirmizi and mavi[1]<=kirmizi[1] shortCond=mavi<kirmizi and mavi[1]>=kirmizi[1] trendState = kirmizi < mavi ? true : kirmizi > mavi ? false : trendState[1] closePlot = plot(kirmizi, title = "Close Line", color = #009900, linewidth = 10, style = line, transp = 90) openPlot = plot(mavi, title = "Open Line", color = #CC0000, linewidth = 10, style = line, transp = 90) closePlotU = plot(trendState ? kirmizi : na, transp = 100, editable = false) openPlotU = plot(trendState ? mavi : na, transp = 100, editable = false) closePlotD = plot(trendState ? na : kirmizi, transp = 100, editable = false) openPlotD = plot(trendState ? na : mavi, transp = 100, editable = false) fill(openPlotU, closePlotU, title = "Up Trend Fill", color = #009900, transp = 1) fill(openPlotD, closePlotD, title = "Down Trend Fill", color = #CC0000, transp = 1) last_signal = 0 long_final = longCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == -1) short_final = shortCond and (nz(last_signal[1]) == 0 or nz(last_signal[1]) == 1) alertcondition(long_final, title="buy alarm", message="buy signal!!!") alertcondition(short_final, title="sell alarm", message="sell signal!!!") last_signal := long_final ? 1 : short_final ? -1 : last_signal[1] plotshape(long_final, style=shape.labelup, location=location.belowbar, color=green,size=size.tiny,title="buy label",text="BUY",textcolor=white) plotshape(short_final, style=shape.labeldown, location=location.abovebar, color=red,size=size.tiny,title="sell label",text="SELL",textcolor=white) 2. Darbis box //@version=4 study("Darvas Box Buy Sell", overlay=true) boxp = input(defval=5, title="Length", minval=1, maxval=500) LL = lowest(low, boxp) k1 = highest(high, boxp) k2 = highest(high, boxp - 1) k3 = highest(high, boxp - 2) NH = valuewhen(high > k1[1], high, 0) box1 = k3 < k2 TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) plot(TopBox, linewidth=3, color=#00FF00, title="TBbox") plot(BottomBox, linewidth=3, color=#FF0000, title="BBbox") Buy = crossover(close, TopBox) Sell = crossunder(close, BottomBox) alertcondition(Buy, title="Buy Signal", message="Buy") alertcondition(Sell, title="Sell Signal", message="Sell") plotshape(Buy, style=shape.labelup, location=location.belowbar, transp=0, color=#00FF00, size=size.tiny, title="Buy Signal", text="Buy", textcolor=color.black) plotshape(Sell, style=shape.labeldown, location=location.abovebar, transp=0, color=#FF0000, size=size.tiny, title="Sell Signal", text="Sell", textcolor=color.white)