-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodule_stop_loss.pine
29 lines (21 loc) · 1.41 KB
/
module_stop_loss.pine
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// settings
stopEnabled = input(title="Strategy: Stopp Loss?", type=input.bool, defval=false)
stopLossPercentage = input(title="Strategy: SL % drawback", type=input.integer, defval=80) / 100
takeProfitEnabled = input(title="Strategy: Take Profit?", type=input.bool, defval=false)
takeProfitLossPercentage = input(title="Strategy: TP %", type=input.integer, defval=140) / 100
activelyShort = input(title="Strategy: actively Short?", type=input.bool, defval=false)
stopEnabledShort = input(title="Strategy: Stopp Loss Shorts?", type=input.bool, defval=false)
stopLossPercentageShort = input(title="Strategy: SL short % rise", type=input.integer, defval=120) / 100
takeProfitStopEnabledShort = input(title="Strategy: Take Profit Shorts?", type=input.bool, defval=false)
takeProfitStopLossPercentageShort = input(title="Strategy: TP short %", type=input.integer, defval=60) / 100
// take profits
takeProfit = takeProfitEnabled ? float(src * takeProfitStopEnabledShort) : na
takeProfitShort = takeProfitStopEnabledShort ? float(src * takeProfitStopLossPercentageShort) : na
// stops
drawbackStop = stopEnabled ? float(src * stopLossPercentage) : na
shortStop = stopEnabledShort ? float(src * stopLossPercentageShort) : na
// order
if longCondition
strategy.exit("Stop Loss","long", stop=drawbackStop, limit=takeProfit)
if (shortCondition and activelyShort)
strategy.exit("Cover Short","short", stop=shortStop, limit=takeProfitShort)