polyclef

frankentrend

51
Works well on BTCUSD with a Heikin Ashi chart.

Open-source Skript

Ganz im Spirit von TradingView hat der Autor dieses Skripts es als Open-Source veröffentlicht, damit Trader es besser verstehen und überprüfen können. Herzlichen Glückwunsch an den Autor! Sie können es kostenlos verwenden, aber die Wiederverwendung dieses Codes in einer Veröffentlichung unterliegt den Hausregeln. Sie können es als Favoriten auswählen, um es in einem Chart zu verwenden.

Haftungsausschluss

Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.

Möchten Sie dieses Skript auf einem Chart verwenden?
//@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)