polyclef

frankentrend

51
Works well on BTCUSD with a Heikin Ashi chart.

Açık kaynak kodlu komut dosyası

Gerçek TradingView ruhuyla, bu betiğin yazarı, yatırımcının anlayabilmesi ve doğrulayabilmesi için onu açık kaynak olarak yayınladı. Yazarın eline sağlık! Bunu ücretsiz olarak kullanabilirsiniz, ancak bu kodun bir yayında yeniden kullanımı Kullanım Koşulları ile yönetilir. Bir grafikte kullanmak için favorilere ekleyebilirsiniz.

Feragatname

Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.

Bu komut dosyasını bir grafikte kullanmak ister misiniz?
//@version=2
//Strategy: jwilkinscb (@jwilkins on twitter)
//Includes parts of indicators from: 
//  Rajandran R (www.marketcalls.in)
//  LazyBear
//  ChrisMoody              
strategy("frankentrend", overlay = false, 
                         default_qty_type=strategy.fixed, 
                         default_qty_value=10,
                         currency="USD",
                         pyramiding=2,
                         calc_on_order_fills=true,
                         calc_on_every_tick=true)
                       
coin_limit = input(50, minval=1)
fastLength = input(1, minval=1)
slowLength = input(4,minval=1)
signalLength=input(6,minval=1)
hline(0, color=purple, linestyle=dashed)
fastMA = ema(close, fastLength)
slowMA = ema(close, slowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
pos = iff(signal < macd , 1, iff(signal > macd, -1, nz(pos[1], 0))) 
barcolor(pos == -1 ? red: pos == 1 ? green : blue)
//------------

Factor=input(1, minval=1,maxval = 100)
Pd=input(13, minval=1,maxval = 100)

Up=hl2-(Factor*atr(Pd)) 
Dn=hl2+(Factor*atr(Pd))

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

trend_xup = barssince(cross(close, Tsl) and close>Tsl)
trend_xdown = barssince(cross(close, Tsl) and close<Tsl)

//------------
// lazy bear wies wave volume indicator
lbwwv_trendDetectionLength=1
lbwwv_mov = close>close[1] ? 1 : close<close[1] ? -1 : 0

lbwwv_trend = (lbwwv_mov != 0) and (lbwwv_mov != lbwwv_mov[1]) ? lbwwv_mov : nz(lbwwv_trend[1])
lbwwv_isTrending = rising(close, lbwwv_trendDetectionLength) or falling(close, lbwwv_trendDetectionLength) //abs(close-close[1]) >= dif
lbwwv_wave=(lbwwv_trend != nz(lbwwv_wave[1])) and lbwwv_isTrending ? lbwwv_trend : nz(lbwwv_wave[1])
lbwwv_vol=lbwwv_wave==lbwwv_wave[1] ? (nz(lbwwv_vol[1])+volume) : volume
lbwwv_up=lbwwv_wave == 1 ? lbwwv_vol : 0  
lbwwv_dn=lbwwv_wave == 1 ? 0 : lbwwv_wave == -1 ? -lbwwv_vol : lbwwv_vol
lbwwv_buy = (cross(lbwwv_up, lbwwv_dn) == 1 and (lbwwv_up > lbwwv_dn))
lbwwv_sell = (cross(lbwwv_up, lbwwv_dn) == 1 )

//-----------
pnf_id = pointfigure(tickerid, "close", "Traditional", 0.5, 3)
pnf_close_0 = security(pnf_id, period, close)
pnf_close_1 = security(pnf_id, period, close[1])
pnf_trend = pnf_close_0 > pnf_close_1 ? 1 : -1
//-------------
// Vix Fix (ChrisMoody)
vf_pd = input(22, title="LookBack Period Standard Deviation High")
vf_bbl = input(20, title="Bolinger Band Length")
vf_mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
vf_lb = input(50  , title="Look Back Period Percentile High")
vf_ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
vf_pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
vf_hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?")
vf_sd = input(false, title="Show Standard Deviation Line?")

vf_wvf = ((highest(close, vf_pd)-low)/(highest(close, vf_pd)))*100

vf_sDev = vf_mult * stdev(vf_wvf, vf_bbl)
vf_midLine = sma(vf_wvf, vf_bbl)
vf_lowerBand = vf_midLine - vf_sDev
vf_upperBand = vf_midLine + vf_sDev

vf_rangeHigh = (highest(vf_wvf, vf_lb)) * vf_ph
vf_rangeLow = (lowest(vf_wvf, vf_lb)) * vf_pl


vf_buy = vf_wvf >= vf_upperBand or vf_wvf >= vf_rangeHigh ? true : false


//-------------

linecolor = Trend == 1 ? green : red

open_delta = strategy.openprofit[1] - strategy.openprofit
opd_pc = (open_delta/strategy.openprofit[1]) * 100
under_limit = strategy.position_size < coin_limit

if (trend_xup == trend_xdown and close > Tsl )
    trend_xdown = trend_xdown + 1


recent_avg = vwma(ohlc4, 7)

// Trade logic
enter_long = (trend_xup < trend_xdown and under_limit == true and vf_buy == true)
//exit_all = (vf_buy == false and (((high < high[1]) and (((high[1]-high)) > 0.25) and (low < low[1])) or close+0.25 < low[1]))  // $934 
//exit_all = (vf_buy == false and (((high < high[1]) and (low < low[1])) or close < low[1]))  // ** Best $1351
exit_all = (vf_buy == false and (((high < high[1]) and (low < low[1])) or close < low[1]))  // ** Best

strategy.order("trend", strategy.long, 10, when=enter_long == true)
strategy.order("macd", strategy.long, 5, when=trend_xup < trend_xdown and cross(macd, signal) and macd > signal and vf_buy == true and close < (recent_avg-1))

strategy.close_all(when=(exit_all == true)) 
strategy.close_all(when=strategy.openprofit < -50)
strategy.close_all(when=pnf_trend < 0)