Last active
August 19, 2018 01:44
-
-
Save flare9x/ed00a799c5fe299393eedb225d37d982 to your computer and use it in GitHub Desktop.
n_bar hold
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Updated to Juli 0.7 - Fixed depreciation warnings | |
################################### | |
# n bar Hold - Stay in trade when repeat signals | |
################################### | |
# Dummy Data | |
signal = [0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] | |
function RO_n_bar(x::Array{Int64}; nb::Int64=3)::Array{Int64} | |
n_bar = fill(0,length(x)) | |
let i = 1, j = 1, n=0 # set n bar hold time | |
for i = 2:size(x,1) | |
if x[i] == 1 | |
n_bar[i] = 1 | |
j = 1 | |
while(j < nb) # Set bar hold time, | |
n = i + j # carry over index position | |
if n >= length(x) # Check if n is bigger than the length of signal, if true break | |
break | |
end | |
n_bar[n] = 1 | |
j = j + 1 | |
end | |
j=1 | |
n=1 | |
end | |
end | |
end | |
return n_bar | |
end | |
out = RO_n_bar(signal,nb=3) | |
################################### | |
# nbar hold - avoid repeat signals | |
################################### | |
signal = [0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] | |
function O_n_bar(x::Array{Int64}; nb::Int64=3)::Array{Int64} | |
n_bar = fill(0,length(x)) | |
let i = 1, j = 1, n = 0, condition_i = 0 # set n bar hold time | |
for i = 2:length(x) | |
if x[i] == 1 && i > condition_i | |
n_bar[i] = 1 | |
j = 1 | |
#print("i =", i) | |
while(j < nb) # Set bar hold time, | |
n = i + j # carry over index position | |
if n >= length(x) # Check if n is bigger than the length of signal, if true break | |
break | |
end | |
n_bar[n] = 1 | |
j = j + 1 | |
end | |
condition_i = j | |
end | |
end | |
return n_bar | |
end | |
end | |
out = O_n_bar(signal) | |
################################### | |
# N bar hold - ignore repeat signals - do not carry trade to next day or evening session | |
################################### | |
signal = [0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] | |
time_index = ["09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00"] | |
function DT_n_bar(x::Array{Int64}; nb::Int64=3)::Array{Int64} | |
n_bar = fill(0,length(x)) | |
let i = 1,j = 1,nb = 3, n=0, condition_i = 0 | |
for i = 2:length(x) | |
if x[i] == 1 && i > condition_i | |
n_bar[i] = 1 | |
j = 1 | |
while(j < nb) # Set bar hold time, | |
n = i + j # carry over index position | |
if n >= length(x) # Check if n is bigger than the length of signal, if true break | |
break | |
end | |
n_bar[n] = 1 | |
j = j + 1 | |
if time_index[n] == "15:00" | |
break | |
end | |
end | |
condition_i = j | |
end | |
end | |
end | |
return n_bar | |
end | |
test = DT_n_bar(signal) | |
################################### | |
# N bar hold - stay in trade on repeat signals - do not carry trade to next day or evening session | |
################################### | |
signal = [0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0] | |
time_index = ["09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00"] | |
function RDT_n_bar(x::Array{Int64}; nb::Int64=3)::Array{Int64} | |
n_bar = fill(0,length(x)) | |
let i = 1, j = 1,nb = 3, n=0 | |
for i = 2:length(x) | |
if x[i] == 1 | |
n_bar[i] = 1 | |
j = 1 | |
#print("i =", i) | |
while(j < nb) # Set bar hold time, | |
n = i + j # carry over index position | |
if n >= length(x) # Check if n is bigger than the length of signal, if true break | |
break | |
end | |
n_bar[n] = 1 | |
j = j + 1 | |
if time_index[n] == "15:00" | |
break | |
end | |
end | |
j=1 | |
n=1 | |
end | |
end | |
end | |
return n_bar | |
end | |
@time RDT_n_bar(signal) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment