@@ -13,6 +13,7 @@ string op_type_06 = 'down pin bar'
13
13
string op_type_07 = 'any type of bar'
14
14
f_enum_type(_str)=>(_str==op_type_01?1:(_str==op_type_02?2:(_str==op_type_03?3:(_str==op_type_04?4:(_str==op_type_05?5:(_str==op_type_06?6:(_str==op_type_07?7:na)))))))
15
15
f_enum_type_by_idx(_i)=>(_i==1?op_type_01:(_i==2?op_type_02:(_i==3?op_type_03:(_i==4?op_type_04:(_i==5?op_type_05:(_i==6?op_type_06:(_i==7?op_type_07:op_type_07)))))))
16
+
16
17
float body_range = abs(close - open)
17
18
float hl_range = high - low
18
19
float upperwick = high - max(close, open)
@@ -35,8 +36,25 @@ f_isPinUp(_pos) => risinghigh[_pos] and body_range[_pos] < (hl_range[_po
35
36
f_isPinDown(_pos) => fallinglow[_pos] and body_range[_pos] < (hl_range[_pos] * 0.33) and (lowerwick[_pos] * 0.66) > upperwick[_pos]
36
37
f_isAny(_pos) => true
37
38
38
- f_enum_BarPattern(_i, _pos)=>(_i==1?f_isInsideBar(_pos):(_i==2?f_isOutsideBar(_pos):(_i==3?f_isUpBar(_pos):(_i==4?f_isDownBar(_pos):(_i==5?f_isPinUp(_pos):(_i==6?f_isPinDown(_pos):(_i==7?f_isAny(_pos):na)))))))
39
- f_ident_bar(_pos)=>f_isInsideBar(_pos)?1:(f_isOutsideBar(_pos)?2:(f_isUpBar(_pos)?3:(f_isDownBar(_pos)?4:(f_isPinUp(_pos)?5:(f_isPinDown(_pos)?6:(f_isAny(_pos)?7:7))))))
39
+ f_enum_BarPattern(_i, _pos)=>
40
+ _isInsideBar = f_isInsideBar(_pos)
41
+ _isOutsideBar = f_isOutsideBar(_pos)
42
+ _isUpBar = f_isUpBar(_pos)
43
+ _isDownBar = f_isDownBar(_pos)
44
+ _isPinUp = f_isPinUp(_pos)
45
+ _isPinDown = f_isPinDown(_pos)
46
+ _isAny = f_isAny(_pos)
47
+ (_i==1?_isInsideBar:(_i==2?_isOutsideBar:(_i==3?_isUpBar:(_i==4?_isDownBar:(_i==5?_isPinUp:(_i==6?_isPinDown:(_i==7?_isAny:na)))))))
48
+
49
+ f_ident_bar(_pos)=>
50
+ _isInsideBar = f_isInsideBar(_pos)
51
+ _isOutsideBar = f_isOutsideBar(_pos)
52
+ _isUpBar = f_isUpBar(_pos)
53
+ _isDownBar = f_isDownBar(_pos)
54
+ _isPinUp = f_isPinUp(_pos)
55
+ _isPinDown = f_isPinDown(_pos)
56
+ _isAny = f_isAny(_pos)
57
+ _isInsideBar?1:(_isOutsideBar?2:(_isUpBar?3:(_isDownBar?4:(_isPinUp?5:(_isPinDown?6:(_isAny?7:7))))))
40
58
41
59
bool automatic_last_n_bars = input(false)
42
60
int n_bars_in_pattern = input(defval=3, title='How many bars pattern:', type=input.integer, minval=1, maxval=10)
@@ -51,18 +69,28 @@ string bar07_type = input(defval=op_type_01, title='#7 in pattern:', type=input.
51
69
string bar08_type = input(defval=op_type_01, title='#8 in pattern:', type=input.string, options=[op_type_01, op_type_02, op_type_03, op_type_04, op_type_05, op_type_06, op_type_07])
52
70
string bar09_type = input(defval=op_type_01, title='#9 in pattern:', type=input.string, options=[op_type_01, op_type_02, op_type_03, op_type_04, op_type_05, op_type_06, op_type_07])
53
71
string bar10_type = input(defval=op_type_01, title='#10 in pattern:', type=input.string, options=[op_type_01, op_type_02, op_type_03, op_type_04, op_type_05, op_type_06, op_type_07])
54
-
72
+
73
+ automatic_last_n_bars_pre_eval_01 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-1)))
74
+ automatic_last_n_bars_pre_eval_02 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-2)))
75
+ automatic_last_n_bars_pre_eval_03 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-3)))
76
+ automatic_last_n_bars_pre_eval_04 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-4)))
77
+ automatic_last_n_bars_pre_eval_05 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-5)))
78
+ automatic_last_n_bars_pre_eval_06 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-6)))
79
+ automatic_last_n_bars_pre_eval_07 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-7)))
80
+ automatic_last_n_bars_pre_eval_08 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-8)))
81
+ automatic_last_n_bars_pre_eval_09 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-9)))
82
+ automatic_last_n_bars_pre_eval_10 = f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-10)))
55
83
if automatic_last_n_bars
56
- bar01_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-1)))
57
- bar02_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-2)))
58
- bar03_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-3)))
59
- bar04_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-4)))
60
- bar05_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-5)))
61
- bar06_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-6)))
62
- bar07_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-7)))
63
- bar08_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-8)))
64
- bar09_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-9)))
65
- bar10_type := f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-10)))
84
+ bar01_type := automatic_last_n_bars_pre_eval_01// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-1)))
85
+ bar02_type := automatic_last_n_bars_pre_eval_02// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-2)))
86
+ bar03_type := automatic_last_n_bars_pre_eval_03// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-3)))
87
+ bar04_type := automatic_last_n_bars_pre_eval_04// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-4)))
88
+ bar05_type := automatic_last_n_bars_pre_eval_05// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-5)))
89
+ bar06_type := automatic_last_n_bars_pre_eval_06// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-6)))
90
+ bar07_type := automatic_last_n_bars_pre_eval_07// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-7)))
91
+ bar08_type := automatic_last_n_bars_pre_eval_08// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-8)))
92
+ bar09_type := automatic_last_n_bars_pre_eval_09// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-9)))
93
+ bar10_type := automatic_last_n_bars_pre_eval_10// f_enum_type_by_idx(f_ident_bar(max(0, n_bars_in_pattern-10)))
66
94
67
95
f_get_nbar_type(_i)=>(_i==1?bar01_type:(_i==2?bar02_type:(_i==3?bar03_type:(_i==4?bar04_type:(_i==5?bar05_type:(_i==6?bar06_type:(_i==7?bar07_type:(_i==8?bar08_type:(_i==9?bar09_type:(_i==10?bar10_type:na))))))))))
68
96
f_check_nbar(_i, _pos)=>f_enum_BarPattern(f_enum_type(f_get_nbar_type(_i)), _pos)
0 commit comments