Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
- // © NKactive
- //@version=5
- strategy("NK Trend Trigger Factor", overlay=false, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, slippage=1)
- import EliCobra/CobraMetrics/4 as cobra
- //// PLOT DATA
- disp_ind = input.string ("None" , title = "Display Curve" , tooltip = "Choose which data you would like to display", options=["Strategy", "Equity", "Open Profit", "Gross Profit", "Net Profit", "None"], group = "🐍 𝓒𝓸𝓫𝓻𝓪 𝓜𝓮𝓽𝓻𝓲𝓬𝓼 🐍")
- pos_table = input.string("Middle Left", "Table Position", options = ["Top Left", "Middle Left", "Bottom Left", "Top Right", "Middle Right", "Bottom Right", "Top Center", "Bottom Center"], group = "🐍 𝓒𝓸𝓫𝓻𝓪 𝓜𝓮𝓽𝓻𝓲𝓬𝓼 🐍")
- type_table = input.string("None", "Table Type", options = ["Full", "Simple", "None"], group = "🐍 𝓒𝓸𝓫𝓻𝓪 𝓜𝓮𝓽𝓻𝓲𝓬𝓼 🐍")
- plot(cobra.curve(disp_ind))
- cobra.cobraTable(type_table, pos_table)
- //
- // ****************************************************************************************************************************************************************
- //
- length=input(15)
- bt = input( 100, title="Buy Trigger")
- st = input( -100, title="Sell Trigger")
- markCrossovers = input.bool(false, title="Mark Cross Overs")
- prev(s,i) =>
- y=math.abs(math.round(i))
- s[y]
- calc_ttf( periods ) =>
- bp = ta.highest( high, periods ) - prev( ta.lowest( low, periods ), - periods )
- sp = prev( ta.highest( high, periods ), - periods ) - ta.lowest( low, periods )
- 100 * (bp - sp) / ( 0.5*( bp + sp) )
- ttf = calc_ttf( length )
- // Plot gray chart boundaries bt and bs
- plot(0, color=color.gray)
- btl=plot(bt, color=color.gray, linewidth = 3)
- stl=plot(st, color=color.gray, linewidth = 3)
- long_f = ta.cross( ttf, st ) and ta.rising(ttf, 1)
- short_f = ta.cross(ttf, bt ) and ta.falling(ttf, 1)
- bs = (ttf > bt) ? bt : ttf
- us = (ttf < st) ? st : ttf
- bl=plot(bs, color=color.white)
- ul=plot(us, color=color.white)
- tl=plot(ttf, title="TTF", color=markCrossovers ? (long_f ? color.green : short_f ? color.red : color.blue) : color.maroon, linewidth=2)
- fill(bl, tl, color.new(color.green, 75))
- fill(ul, tl, color.new(color.red, 75))
- // ****************************************************************************************************************************************************************
- // ****************************************************************************************************************************************************************
- // Call combine signals and execute buy/sell positions within timeframe
- //.****************************************************************************************************************************************************************
- // Date Range To Include
- startDate = timestamp("2018-01-01T00:00")
- endDate = time
- // Check if the current timestamp is within the restricted range
- inRestrictedRange = time >= startDate and time <= endDate
- //
- // Buy Signals on overbought and oversold
- //
- if inRestrictedRange and long_f // ADD OTHER BUY SIGNAL BOOLS
- strategy.entry("My Long Entry Id", strategy.long, 100)
- if inRestrictedRange and short_f // ADD OTHER BUY SIGNAL BOOLS
- strategy.entry("My Short Entry Id", strategy.short, 100)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement