Untitled
javascript
a month ago
2.4 kB
243
Indexable
Never
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ //@version=5 strategy('External Strategy Tester', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=100000, currency='USD', slippage=3, commission_type=strategy.commission.percent, commission_value=0.1, process_orders_on_close=true) // Inputs i_externalSource = input(close, title='External Source', group="Signal Detection") //Trinomial Signals i_useLongSignal = input(true, "", inline="LS", group="Signal Detection") i_longSignal = input(1, 'Long Signal', inline="LS", group="Signal Detection") i_useShortSignal = input(true, "", inline="SS", group="Signal Detection") i_shortSignal = input(-1, 'Short Signal',inline="SS", group="Signal Detection") i_useExitSignal = input(true, "", inline="ES", group="Signal Detection") i_exitSignal = input(0, 'Exit Signal',inline="ES", group="Signal Detection") // Date Filter i_useDateFilter = input(false, "Date Filter", group="Date Filter") i_startTime = input.time(defval=timestamp('01 Jan 2020 00:00 +0000'), title='Start Time', group="Date Filter") i_endTime = input.time(defval=timestamp('27 Nov 2020 00:00 +0000'), title='End Time', group="Date Filter") inDateRange = i_useDateFilter ? time >= i_startTime and time <= i_endTime : true // Strategy i_direction = input.string('all', title='Trade Direction', options=['all', 'long', 'short'], group="Strategy") strategy.risk.allow_entry_in(i_direction) i_reverse = input(false, title='Reverse Strategy', group="Strategy") // Useful if you want to see how the strategy might perform when using the oppsite logic to enter and exit trades stratLong = i_useLongSignal ? (i_externalSource == (i_reverse ? i_shortSignal : i_longSignal) and inDateRange) : na stratShort = i_useShortSignal ? (i_externalSource == (i_reverse ? i_longSignal : i_shortSignal) and inDateRange) : na stratExit = i_useExitSignal ? (i_externalSource == i_exitSignal and inDateRange) : na if stratLong strategy.entry('Buy', direction=strategy.long) if stratShort strategy.entry('Sell', direction=strategy.short) if stratExit strategy.close_all() plot(i_externalSource, style=plot.style_cross)