Hang tight while we fetch the video data and transcripts. This only takes a moment.
Connecting to YouTube player…
Fetching transcript data…
We’ll display the transcript, summary, and all view options as soon as everything loads.
Next steps
Loading transcript tools…
Bollinger-RSI EA with Trend Filters || 1600% Return (backtest) || Multi-Currency || Full Code | No Shenanigans | YouTubeToText
YouTube Transcript: Bollinger-RSI EA with Trend Filters || 1600% Return (backtest) || Multi-Currency || Full Code
Skip watching entire videos - get the full transcript, search for keywords, and copy with one click.
Share:
Video Transcript
Video Summary
Summary
Core Theme
This content details the development and backtesting of a price reversal trading strategy using Bollinger Bands and the Relative Strength Index (RSI), designed for experienced traders and adaptable for both higher timeframe reversals and lower timeframe scalping with trend-filtering.
sharing today full code of a Ballinger
ban and RSI based price reversal
strategy starting with ,000 we end with
a net profit of around
15,600 balance draw down of about 10%
81% win on short trades and 71% win on
Long trades so a total of 77% win rate
overall 18 consecutive wins amounting to €
€
4,400 compared to three consecutive
losses amounting to around 500 Equity
draw down of 30% this is a price
reversal strategy so it's only for
experienced traders who know how to
manage risk and protect Capital so with
no further shenanigan let's
start the strategy on the higher time
frame is very simple when the price
comes down and touches this four
standard deviation of Bullinger band and
the RSI is below 80% we take a Buy trade
when the price touches the higher end or
the higher Bullinger band at four
standard deviation and the RSI is above
80 that's when we take a trade and then
we Trail the stop loss on three standard
deviation or whatever the user defines
it to be and the good part about
trailing it with the Bullinger ban is
that when the prices are not moving that
fast you have the TP coming closer to
the price and if the prices are quite
volatile and they're moving really fast
this band either the four standard
deviation or the three standard
deviation is going to open up and your
TP is going to go depending on how
volatile the market is and this is where
having a dynamic TP actually helps us
because when the prices go in our
Direction and the prices are moving
quite fast your TP is also moving along
but when the prices become stagnant the
TP comes back until the time that it is
hit the second part of the strategy can
be if you're applying it as a scalping
strategy so for example if you want to
only go for 5 minute chart and let's say
we go for GB USD and for the sake of
showing you the test we're only going to say
say
gbpusd and there now you have a few
filters so for example you can select
the filter of huku to be true and this
is where even though you're taking the
trade in the opposite direction of where
the price is moving but on a higher time
frame like one day you're still trading
with the trend and this is where we see
on 5 minutes chart here we're taking the
trade because it has hit the upper
Bullinger band at four standard
deviation so we're going to sell which
is going against the direction of the
market but on a daily chart because the
10 cons send line was below the KY Jun s
line it meant that on higher time frame
the direction of the trend is still down
and this is where we can then use this
as a scalping robot on either 5 minutes
chart 10 minutes chart 15 minutes chart
and qualify the trading Direction by
using a higher time time frame chart
applying either the moving average
filter which is whether the fast moving
average is above or below the slow
moving average or within aimoku filter
you can have many different
possibilities of having when the price
on a higher time frame is above the
cloud or is above tenen line is above
kijun line is tenen above kij junen the
one that we use in the example or 10
cons and kij junen are both above Cloud
and 10 consent is above kij junen and
this way you're using the daily chart or
a higher time frame chart to qualify
which direction the trend is at least on
a higher time frame before you go to the
lower time frame and here even though
you are trading opposite to the trend
but at the time frame you're still
taking the trades in the direction of
the general Trend so this is what the
strategy is either for scalping where
you are qualifying it with filters or on
a higher time frame just a strategy for
the price reversal in which case you
might not want to apply the filters
because then you're going to end up with
very few
trades let's get to meta Trader and we
have our Ballinger RSI reversal strategy
here we're going to run the test on 1
hour chart I'll start the test from 1st
of April 2020 not because it's the
Fool's Day but mainly because the first
quarter of 2020 was completely nuts
because of all of the covid shenanigans
which were happening in the market so we
leave that behind and start from a time
which was a little bit more stable we're
going to run with every TI based on real
tick with starting with ,000 now when it
comes to input this is a multi-currency
ea so you will have the possibility of
having multiple currencies separated by
comma we're going to be applying a
Binger ban and we're going to be taking
trades on four standard deviation now
there are two options for the user one
is to select as lot per 1,000 capital or
fix lot s I'm going to run this test
with lot per 1K Capital so if when our
Capital grows our lot size also grows
and I'm going to go for 0.2 as the lot
size per 1,000 Capital that's a start
what we see is that the year builds up
slowly and has long periods of nothing
happening and then there are periods of
draw down for example when in August
2022 the UK economy tanged and we're
using three pairs of GBP in our test the
good part is that these big events like
Russia invading Ukraine or the UK energy
SL inflation crisis in 2022 they have a
strong signals for weeks before the
prices time and this is where experience
comes in when trading reversal
strategies to either tweak or turn off
those currency pairs before the prices
start to go bananas overall we started
with ,000 we ended with
15,600 we had a balance draw down of
about 10% we had 80% win rate on short
trade 70% on Long trades which overall
was 77% total profit trades now we had
18 consecutive wins with ,400 three
consecutive losses with about €500 but
31% okay the back test results are very
good but then we also saw that the
equity draw down was a little bit on the
higher side one of the ways to reduce
that is by selecting here for example
currency pairs which are not that
volatile having more currency pairs
which are nonvolatile than volatile so
removing GBP for example and increasing
a bit more of these nonvolatile
currencies the second way you can reduce
the equity draw down is by coming down
here and setting the TP a little bit
closer so so two Binger standard
deviation instead of three so the trades
are closed quicker but one of the
easiest way to do that is to reduce this
value so we just go 0.1 for 1,00 Capital
instead of going 0.2 and let's see what
[Music]
are so now all obviously because we
reduced the lot size per capital so our
profit value also comes down a little
bit but then we also have relative draw
down that came down and also the equity
draw down that came down we have the
consecutive wins which are still 18 but
they do not amount to that amount of
value and also on the consecutive loss
it is down from 500 to only 62 and it's
all about balancing the risk for the
reward so the lower risk the lower the
reward would
be now this year is not for you if you
believe that you will become a
millionaire overnight
if you believe that the EA should make
money every day every week every month
even every quarter if you believe that
the EA are supposed to only make money
that they cannot lose money if you're
greedy and want to see big profits in
the shortest possible time and do not
understand risk management comes first
if you have not spent any time in
trading and cannot manually monitor
stuff from time to time and make
subjective decisions and you rely
totally on the EA to do everything for
you if you're not patient and cannot
handle tough periods if you do not
understand the concept of
diversification and cannot understand
how currency payers are correlated if
you do not understand how big News
global events geopolitical events can
change the Dynamics of the market and
how to fine-tune your EA to counter
those events and if you only want to
apply an EA and expect it to make you
financially independent instead of
understanding how to develop a portfolio
of years so when some lose money the
others can make up for
it we start in the same way by going to
the ID and here within the YouTube
folder I'm creating a new expert advisor
let's call it Binger RSI
reversal and here we have the opening
template I'll clean it up so we're left
with only three functions the onit
functions which is the initialization
function so all the codes written here
are going to be run whenever the EA is
initialized so whenever you attach it or
start running the back test that's when
all the CES here are going to be done
only once then you have the de
initialization so when you remove the
Year from the chart or when the back
test stops before it stops it's going to
run the CES rting here and then the onti
function which is a generic function
that comes in mql which is on every take
this function is going to be run so when
there is a price change and a new price
stick arrives into the mql all the codes
written here in between these two curly
brackets are going to be
run we're of course going to be doing
some trading operations and mql makes
that very easy by giving us the possib
ability to reference to this file in the
include folder here the trade and trade.
mq which comes with mql and it already
has a lot of pre-written CES that we can
use to make the trading operations
calling them easier so I'm going to use
three classes the C trade class which is
going to be used to open positions
modify positions close positions and I'm
assigning this class to a variable by
the name of trade the second one is C
positioning info and this class is used
to get information on the open position
so if there's a position open and you
want to know what it take profit value
is or what it magic number is this class
is what you can use I'm assigning this
class to a variable and I'm calling that
variable position info and the third
class is c order info which like the
position info class is used to get
information on the orders which are
currently sitting on the broker so for
example if you have put a stop order or
a limit order then you can get all the
information about those orders by using
this class c order info and I'm
assigning this class to a variable order
info I don't think that we're going to
use the c order info class here but I
I'm just just a habit of me to include
all three then of course this EA is
going to be based on Binger bands and
RSI so we need to create a reference to
the indicators and trend. mq class which
you can find here in indicators and
these are Trend based indicators so they
are here in the trend. mq file
so from there I'm going to use this
class of CI bands and I'm assigning it
to two variables the first one is Binger
that we're going to use to open traits
and then the second one I'm creating as
TP bow which we're going to use to to
assign TP values take profit values and
then for the RSI I'm going to reference
to the file here indicators in
oscillators because RSI is an oscillator
so we are now referencing to oscillator
and from there we using this indicator
class CI
RSI and I'm assigning it to the RSI
variable then let's create some
variables so the first group of
variables that I'm going to create is EA
specific variables for example what the
magic number for the EA is going to be
so I'm creating a ulong type of variable
uong is basically numbers but very big
numbers and I'm assigning it an initial
value but the user can change it because
it's an input variable all these three
are input variables so user has the
possibility to change them whatever you
write after the forward slashes appears
into the input tab when you're actually
running the EA and for this I'm going to say
say
currencies for the EA and then the time
frame because we want the user to
specify what time frame they're going to
run this on because for example when
they're here they might want to change
from a 1 hour chart to 15 minute chart
to look at something and we don't want
the EA in the background to get confused
so if the E already has a specified time
period which let's say say in our case
we say period H1 so 1 hour chart then no
matter what time frame is selected here
the EA in the background is always going
to be running on the 1 hour chart
because that's what the user has
specified let's compile it and then if I
go to metat Trader I will see here in
the YouTube our EA the Binger RSI and if
I drag it to the strategy tester and go
to the inputs now I can see that the
first three variables that we have just created
created
are here with the default values as we
have put here then the next group I'm
going to create are trade settings so
everything that the user has to specify
for the the Pinger pands and RSI inputs
so that when we test our trade opening
criteria these are the values that these
indicators are going to be run on so I'm
starting with Ballinger ban moving
average period normally it is 20 for
Binger band but for the sake of the year
I'm starting with 200 that's what I use
personally then what's the standard
deviation for the Binger band to open
the trades as we've already seen in the
strategy so I'm starting with
four then what's the RSI upper and lower
level because that's a second criteria
for the strategy so when the price hits
the upper band we want the RSI to be
above 80 and when the price hits the
lower Ballinger band we want the RSI to
be below 20 and then for the RSI what
period I mean we're using the default
but if the user wants to change it then
they at least have the flexibility to
change it if I compile it and we go back
then now here we see that all of these
variables have also appeared Here and
Now user has the ability to change these
then the third set of input groups that
we're going to create for the user to
specify are once the trade has opened
what happens next the first one is when
we open the trade what type of lot size
does the user want does he want a fixed
one or does he want a lot size that
increases as the capital increases now
we're going to create two so I'm going
to go back to the top and here we're
going to create an enum we create an
enum whenever we want the user to select
from a drop down so we create an enum
and we call it lot type and then there
are two values that he can select from
so the first one is lot per 1K Capital
which we're assigning the value of zero
and then the fixed lot size which we
assigning the value of one and because
we have now created this enum we can
assign this enum as input lot type and
then assign it to a variable by the name
of lot type and our default position is
going to be zero which is the lot size
per one K Capital then if he selects the
lot type zero then he needs to specify
here what lot size does he want for
every thousand of capital and if he
selects here one which is fixed Lots
then he needs to just specify what is
the fixed lot and then regardless of the
capital value we always use that then
for the TP as we have already seen in
the strategy the TP is also at the upper
or lower Binger band but that Ballinger
band can be different so you could open
the trade at Ballinger band standard
deviation 4 but set the TP at standard
deviation to so we're giving that
flexibility to the user to specify
whether he wants the same or he wants to
have different and then once the trade
has been opened for a currency then we
also not want to open another trade for
how many bars now what can happen is the
EA is going to open too many trades on
the same candle because the price is
above the Ballinger band so on every
ticket it's going to open up a trade so
we want a gap so the price needs to come
back or you know spend some time in the
market before it comes back and touches
again the upper or low Binger band and
the RSI value then only we take the
second trade now this is not a great
strategy what we're saying is that every
time this condition happens that the
upper or lower Binger band is touched by
the price and the RSI is above and below
80 and 20 we wanton the trade so it is
opening a trade because those criterias
are met again so we're not creating a
grid we're just disregarding whether
there is already an open position and
every time that condition is true for
our trade to be open we're opening the
trade so we're going to use this
variable bar since to say how many bars
since the last time a trade has been
open does the EO open a trade again at
least how many bars and then you could
make it an input for the user to select
but it's so generic so what's the
applied price for the Ballinger band and
normally I mean high low or medium price
I mean I normally prefer median price if
you want to make it an input variable
for the user you can also put it as
input and then it's going to be an input
variable I would like to leave it as a
non input so we just apply the median
prices so these are the variables that
we're going to need so if I compile now
and we go back to metatrader what we can
see here is that the trade management
options are also here and this one
because we created as an enum now the
user has the ability to select between
fixed lot size or Lots per 1K capital
and then he has to specify that if it's
fixed how many lots and if it is per cap
per 1,000 capital and let's say two that
every 1,000 Capital it needs to be two
and it's rounded so it's not going to be
exactly $2,000 before the 0.2 comes into the
the
picture then we go to the initialization
section and here we start with using our
trade variable from the
top and setting the magic number for the
year assign ing the input magic number
that we have collected from the user
here then the second thing I'm going to
do is I do not like to see these grids
on the chart they just look ugly to my
eyes so I'm going to say set the the
chart grid as false by using the chart
set integer function which comes with
mql that's for the
initialization we don't need any codes
for the de initialization and then we go
on to the onti
function on the later part of the coding
we're going to modify this EA to become
a multi-currency ea so you can specify
many currencies here separated by comma
and then the EA is able to run it so
even though you attach the EA to only
one chart the EA actually runs on the
number of currencies that are provided
here so we're going to change it to
multi currency later but I will first
create the EA as a single currency and
then make the modification required to
make it a multicurrency that way we can
keep it neat and that way it's easier to
follow but one thing that I'm going to
do is at the beginning I'm just going to
say that there is a variable and it's a
string variable so it can store text and
I'm going to call it
symbol and the value of the symbol is
going to be whatever is the symbol on
the chart this to make it so we don't
have to use the symbol every time but
we're going to use this symbol variable
but it will mean at least for the single
currency chart that it is equal to
whatever chart it has been applied on
then we don't want to run this EA on
every tick because it's going to be too
much so we only want to run it on every
new candle and this is where we're going
to create a separate function and we're
creating a bull function a bull function
Returns the value of either true or
false so we're going to call it is new
bar so we can call it and we can check
whether it is a new bar and the way to
do that if you have followed the videos
before and I have a separate video in my
channel as well which goes into details
but it's basically starting with the
previous time equals zero then we check
the current time and if the current time
is different from the previous time that
means there is a new candle and if there
is a new candle then we return the value
true but before we return the value true
we set the previous time to current time
so that the next time the year comes
back here on the same candle then the
previous time is equal to the current
time so the year returns false and only
when a new candle arrives and the year
comes here then of course the current
time is going to be different because
it's going to be a new bar and we the
time of the newest bar and it's going to
be different from the previous time so
it will return true but before returning
true it will again set the previous time
to current times so it's only going to
return a true when there's a new candle
now more details in the video on the
channel if you want to go check it out
so now that we have that function we can
use that function here and we say that
if it is not a new bar this is a not
sign so if it is not a new bar then
return and return means exit the
function don't do anything else don't
run the codes below and in this way we
basically are creating two sections the
section above every code written here is
going to be run on every tick and all
the codes written after this statement
are only going to be run on a new candle
and this is where majority of our codes
are going to be run now I'm leaving a
little bit of a space here because later
on we're going to change this function
modify it for multicurrency so I want to
leave a little bit of a space here in
between so I'm starting a little bit
below and the first thing I do is this
variable that we created here and
assigned the CI bands I initialize it by
saying Bullinger is the new CIB bands
and then we can create the Binger by
saying use the symbol so whatever is the
chart value use the time frame is
specified by the
user use the Bullinger ma
period for the moving average input the
standard deviation assigned by the user
here and the applied price which comes from
from
here so create that and in the same way
we create the RSI by using the RSI
variable that we created at the top here
assigning it the indicator class of
RSI we say that RSI variable is new CSI
and then RSI do create with the symbol
value the time frame value the RSI
period value that the user has provided
here and the applied price which
basically means the median price once we
have created these two then we need to
refresh both of them so we say RSI
refresh with a flag value of minus one
don't ask me why it is minus one it's
just minus one if somebody knows why it
is minus one I would love to know so
leave a comment I mean I would be very
happy to increase my knowledge and
finally put this mystery behind me but
this is minus one and then the same way
we refresh the Binger value and
providing it a flag of minus one then we
create a few variables within the onti
function because we're only going to use
it within the onti function so I don't
want to create it at a global variable
the first one is a double and double can
store decimals and we are asking for ask
price and the bid price by using the
symbol in for double function that comes
with mql sending the information of the
symbol and asking for the ask price and
the bid price and then I want the
closing price of the last candle so I'm
calling it close X1 and we use the
function I close
providing it the value of the symbol and
the time frame and that we want the
value for the last bar so the current
bar is zero and then the last bar is one
and the bar before is two and so on and
so forth once we have that then we say
if the closing price of the last candle
is below the Binger band
lower and this because we created the
new Ballinger here so once you type
Ballinger and hit dot it's going to open
up all of the values or all of the
options available and from here we
select lower because we are interested
in getting the value of the lower band
for a buy and then which candle do we
want it for we want it for the last
candle so I provide the value of one and
we say that the bars now so now whatever
is the bar
number is greater than whenever was the
last time the bar was St
fed plus the bar Sims and this is where
we're going to need these two
variables so I'm going to create them
here now here we're going to calculate
the bars now and for now I'm going to
put this as a common because this is
what we're going to need for when we
convert this into a multicurrency
ea and for now I'm just going to go up
I'm going to create an integer variable
here as bars last traded and I'm going
to start it as zero so creating it as a
global variable for now so as long as
100 candles have passed since the last
time we place a trade which is what we
checking here as bars now by getting the
the number of bars currently on the
chart by sending the symbol info for the time
time
frame so we get that value so we can
check it and then the last condition we
have is that the RSI Main and this again
like the Binger once you hit once you
put RSI and hit dot it opens up all of
the options that are available to you
and we're interested in getting the
value of the main line of RSI so we
saying Main and we want it for the last
candle you can get it for the current
candle you can get it for the last
candle as well is lower than 20 then and
this is what we're saying by opening the
bracket then create a variable TP as a
double variable and we assigned the
value of the upper Ballinger band
because we're going to go for a Buy
trade so in that case we're saying that
the Ballinger upper band of the second
Ballinger band based on whatever value
the user has provided here so the user
has the ability to select a different
standard deviation for the TP than for
taking the trades so we use that and
assign that value to the DP and then we
send the buy order by using the trade
variable by saying trade and when you
hit dot it will open up all of the
values we want to buy and when we say
buy and then you hit
the bracket open it asks for the volume
it asks for the symbol it asks for what
price what stop- loss what TP and if
there is any common that you want to put
so we're going to send it the Lots we're
going to send it the value of the
current symbol we want the Buy on the
current price we don't want to send any
stop loss we send the TP as here and we
don't send any common and then we set
the value of the bars last traded by
assigning it the whatever is the current
value of the bars and by the way I
forgot here should a zero as well and
that is the bars now and this way when
the year comes back again and if even if
this condition is true and this
condition is true the bars now is not
going to be greater than the bars last
rated until the time that the 100 bars
have passed and then we close the
function and then we do the same thing
for the cell so we say if the close of
the last candle is higher than the upper
band and the bars now is greater than
the last traded bars and 100 bars since
and the RSI is greater than 80 and then
if all of these values are true we set
the TP to the lower Binger band of the
second Binger band and then we sell by
sending the lot size the symbol the
current price no stop loss and the TP
value that we have created here and no
common and then again we set the last
traded bar to the current bar and then
we close the function now one thing that
we haven't defined here is the Lots so
we come up back up here and the first
thing we check is what's the account
balance and we get that by using the
function available in mql as account
info double and asking for the account
balance and then we create a variable
and we let's call it lots that's the one
that we're going to use here as a double
so you can store decimal in it we start
with a default value of 0.01 so in case
if something goes wrong in the formula
we at least have
0.01 and then we switch the lot type and
switch basically means go through all of
the various options so here in the lot
type which was this lot type variable
which is the enum we created here and it
had two different values zero for the
lot per 1K capital and one for fixed lot
so here we say that switch through it so
run through all the cases and if the
case is zero if zero is selected then
Lots is going to be equal to whatever is
the lot size per 1,000 that the user has
defined multiply by account balance
divided by 1,000 to get the value of the
lot size and then normalize it by
reducing it down to two decimals and
providing the value of two which is the
number of decimals that we wanted to and
then if the case was Zero then and if
you get this value then just break so
exit this do not run this but if case
was not zero and then if it's case one
then the user wants a fixed slot type
then in that case Lots is going to be
equal to whatever lot size the user has
defined here as fixed lot size so this
is how we Define the lot size and this
is the Lots variable that we're going to
be using here so this concludes for The
single currency our on KCK function so
if I compile I'm getting an error that
the bar lustrated is in yeah bars it
should be bars lustrated that is the
variable that we defined up here and if
I compile again I'm getting an error
that I Bar's wrong parameters count oh
yeah we don't need this because iar
Returns the value of the current candle
anyways so we don't need to provide the
value of the candle
number and here it should also be bars
lustrated and if I compile again we
still have
here the [Music]
[Music]
wrong and then sign this match yeah
so now we don't have because it was
looking at bars now was a u long while
the bars last
traded and the bars since were integers
so there was a mismatch and if we change
it down to integer as well so now we
have the correct so now we compile and
we don't have any error now one change
that I'm going to make for now is we're
going to set the TP back to
Binger low and Binger higher because we
have only initialized the Binger we
haven't initialized the TP bll anywhere
so far so I cannot use that so for now
I'm going to go for Binger upper and Binger
Binger
lower and if I compile it now I don't
have any error so we can run the test to
working so let's see very quickly I
think we have a sell order and we should
have a TP here so the TP has been set on
the Binger low and the price
and the cell was open
here when we touched the higher
Bullinger ban and the rsf was above 80
now let's look for a buy
order here I think the RSI was not below
80 so here the RSI was below 80 the RSI
was below 20 and this is why the TP has
been set here and the trade has been
open here on the higher Binger band and
the lower ler band so whatever codes we
have written so far they're working and
now of course we want to Trail the DP so
we have to write a function for the trailing
trailing
stoploss so I'm writing a function Trail
stoploss and we're going to send to it
the value of the symbol because
eventually when it's going to be
multicurrency we're going to have to
send the value of whatever symbol to the
trailing stop so only that is going to
be impacted and here we start by now
using the TP bow because we're going to
trail on whatever is the second Binger
band value that the user has selected so
we assign a new CIB band to it and this
time we create the TP Bow by providing
it the symbol value that's going to come
here on the time frame the same
Bullinger ma period but this time as TP
B is standard deviation so this is the
variable on which the trade is going to
be open and this is the variable on
which the TP is going to be
trailed and then we refresh it and then
we Loop through a four and we go how
many positions are open currently minus
one assign that value to I because I
goes from zero all the way to whatever
and positions total go from 1 2 3 4 5 so
if there are four positions open then
it's going to be I equals to 0 1 2 and 3
for four positions and as long as I is
greater than or equal to zero and every
time reduce the value of the I by one so
if there are four position open then it
start at three then go two then go one
and then go zero
then for whatever is the index on that
iteration select the position and this
is where we're using the variable that
we created above as position info select
that position by index I get its ticket
number and get its
TP as position. info. takeprofit and
position. info. ticket and then look
through what type of TP It Is by
switching and then we're switching
through the position
type and we're saying at if it's a case
by position type is by then the TP is
going to be the upper band and if it is
the position type is cell then the TP is
going to be the lower band and in each
case if you find it to be the case this
then after doing this break don't do
this and if you don't find this then go
to this line but in that case break here
as well and then if whatever position we
have selected here if the symbol value
of that is equal to our symbol what we
sending here and the magic number is our
magic number that we have created at the
top in the global variables then we know
that this is our position of this year
and on the same currency that we
currently have it on the chart and in
that case we want to modify the position
by sending it the ticket number that we
have collected here not changing the
stop- loss and changing the new value of
the TP of the second Binger band here is
the entire function in one screen so if
you want to follow the steps and code it
correctly because there are quite a lot
of open parentheses and closing
right now that we have created this
function we need to call this function
so from here on the ontick below the is
new bar so whenever we start on a new
candle the first thing I'm going to do
is I'm going to Trail the stoploss by
sending it the value of the symbol which
in case of a single currency is the
symbol that it is attached on the chart
compiling again no error so let's run
see and now when the position opens it's
going to open the TP at the bottom but
then as this closer EA which is the
three standard deviation it was trailing
on that and it closed the value here
same let's look for the buy it will open
on the four standard deviation and it
will Trail the TP on the third is
now and here is the buy order and as you
can see now the trailing stop is going
or is trailing the now the trailing TP
is trailing on the third on the three
three standard deviation Binger band so
the code is working as we intended
foring single
currency and now we need to convert it
into a multi-currency setup and this is
why we left the space here I'm going to
convert everything down
here as a separate function and I'm
going to call this function as run
symbols function and we're going to send
to it the symbol value now because I've
created this here so now this opening
bracket that I've created here is
getting closed here so on thick function
now has unbalanced parenthesis there is
an opening parenthesis but there is no
closing parenthesis so I'm going to put
a parenthesis here and I'm going to
compile it just to see that there are no
errors so now on every new bar we're
going to need to send the currency of
the currency down to the own symbol so
that everything all of the codes here
and then the trailing stop can be run
for whatever is the currency selected at
that point in time I'm going to need
three different variables for that and
I'm going to create these three
variables here at the bottom the first
variable that I'm going to create is
currencies which is going to be an array
and array is a variable that can store
more than one value because that's where
we're going to assign the values of
these currencies and it's going to be
more than
one then the second thing is that we're
going to use the bars traded so when was
the last time that we took a trade on
that symbol is going to be different as
an example if you have two currencies
gbpusd and USD JPY and if you have
taking a trade on gbpusd then you need
to store the last traded bars for
gbpusd separately from USD JPY so there
we're going to create another array
variable and this array is going to have
two Dimensions the currency and then
corresponding to that currency the value
of the bar when the last trade had been
taken against that currency so I'm
creating an array variable but it's
going to have two Dimensions the First
Dimension is going to be a dynamic one
and the second dimension is going to be
a constant one and then we need to
separate the currencies by some sort of
a separator and here we're using the
comma so I'm setting the separator
equals comma with these three variables
we come back down to the initialization
function and the first thing we do is we
get the separator code because mql does
not understand a comma it has a code for
it 0246 or whatever the code is I don't
remember what the code is but it is a
number so we're going to store that
number and this is why we are creating
an integer variable as separator code
and we're getting the character for that
symbol by passing on the comma value
that we had restored here and asking for
the character to be returned back and
that's going to be stored here then the
second thing we're going to do we're
going to split the string of the
variable current which we created here
and it has all of the values separated
by comma so we're going to split it by
using the separator code of comma and
store those separated values into the
array that we created here as current
currencies so instead of now as one
string it's going to be put into this
currency variable as GBP as USD JPY as
the first variable then the second
variable as
gbpusd now this string split function it
Returns the value of how many values was
this function able to split and in our
case it's going to be two and we want to
store that value of two because there
are two currencies here it could be
three if you have three currencies but
in our is two so we want to store the
value of that two into this variable K
because we're going to use that to
resize the array because one of this
variable here one of this parameter here
was a dynamic array and we need to make
it a static array as well before we can
store values into it but at this point
in time we did not know how many
currencies there are going to be so we
couldn't make it static but now when we
initialize the year we know that there
are two currencies that the user has put
so now we can make it a static by saying
that we need to resize the array of bars
traded and make the dynamic portion of
it and fix it to the value of K which
was returned by the string split
function so make it two so now we have a
static array of
two so it will have two values on X
Dimension and it will have two values on
Y and you will see it very soon and
then we Loop through whatever is the
value of the K so there are two
currencies to we Loop through i = k
minus 1 again because of the fact that I
goes from zero so if there are two
values then we want to go Zer and 1 and
as long as I is bigger than zero or
equal to zero every time reducing it by
one so start at the value of K minus one
so start at 1 2 - one do this Loop and
then come back and then make the I
equals to zero and then do this Loop and
in that Loop we set the values so for
whatever is the index the first one the
xaxis we say put the value of I and then
on the Zero meaning like okay because
the array will have two values the
currency and then the numbers of bars
traded so for now we say that the first
values so zero value set it to the
currencies from this currencies array
whatever is the index now and then set
the second value as for now just change
just store the value of i in it and just
to see what what we have written here if
it is doing what we what it was supposed
to do let's put an array print of the
bar traded and let's
hit the play
button and here in the
journal on the initialization now we can
see that the array has been set as on
this side on the this say the zero is
USD JPY our first currency and one is
gpusd our second currency and then on
the Y
AIS on the Zero position is our currency
and on the position number one is for
now we're restoring the value of
whatever the index was at that point in
time so zero and one but later on we're
going to store the value of the bars
traded here so this way we can then
store the value of the last bar traded
against USD JPY into this space and
gbpusd into this space so every time
that we're checking that the number of
bars now is greater than the numbers of
the bars last traded we can check it for
that particular
currency so this is working so now we
can come back to the ontick function and
here we had the symbol equals to symbol
and because we're going to change it for
multicurrency so we're going to delete
this so it's only if there's a new bar
then do this and if it's not a new bar
return meaning exit and below this we're
going to write or we're going to do a
loop through the array size of the
currency so how many currencies are
there two so we're going to set the
value of I to 2 minus 1 so equals to 1
because I goes from Zer and one so there
are two values and then as long as
bigger than zero or equal to Z by
reducing it every time so it's going to
run one iteration and then zero
iteration run through the symbols of of
using whatever is the currency's
position I which in our case was gbpusd
and then when it will run zero then in
our case it was
usdjpy so now what we're doing is we're
running the symbol from here by sending
the value of the symbol by selecting it
through the loop so on every time there
is a new Candle on the first sck the
year is going to come here because it's
a new candle is going to come here it's
going to run through this array then
it's going to send the first currency to
this run symbol function which is going
to then act as ontick function and run
all of the codes as if it's a single
currency setup exactly the same way as
we had written before then it's going to
come back here run through the loop
again select the second currency then
send it to the Run symbol again as a
symbol and then the Run symbol is going
to run it all the way again as if it was
a single currency EA so this is how we
first create the EA as a single currency
and then change it into a mul multiple
currency by using the sending the symbol
method and writing all of the codes as
if we're going to send a symbol to the
function later on now one more change
that we're going to have to make is that
we last time said bars lustrated equals
to I bar symbol but if we store it into
a static variable of one value only then
later on we're not going to be able to
say which currency was it stored against
so we need two more functions
the first one is set the bar traded
where we're going to be setting that
variable array two Dimension that we
have created the value of the bar we're
going to send it the symbol so whatever
is the current symbol that is we're
running through the iteration we're
going to send it the symbol and then
what we're going to do is we're going to
go through the AR SI currencies again so
run through all of the
currencies and then let's get the target
symbol AS whatever is the Whenever there
is the first iteration the second
iteration third iteration
get the value of the bars traded I for
the zero index so get the currency
because we stored the currencies and on
zero and then on one we stored the value
of the bars get the value of that
currency put it into Target symbol then
get the bars now so whatever is the bars
for the symbol which we're going to the
frame and then if the target symbol
equals to symbol so when it's running
through that Loop of currencies and when
it finds our currency then set the value
of the first value so not the zero value
but the first value as integer to a
string bars now this so whatever bars is
on that symbol get that value and then
set it to against that currency into the
first place on the second
dimension and I'm changing it from
integer to string because we created the
variable here as a string so I need to
change it into a string but when we will
get the value we'll convert it back from
a string into an integer so this is how
we will set the bars and then when we
will need the bars we're going to do
exactly the same thing this time we're
creating a function of get the bars and
let's make it integer otherwise we're
going to have a mismatch so get the Bars
by sending it the
with bars last traed as zero and then
again Loop through the currencies
array get the get the symbol of whatever
is the index currently so when you're
looping through get the value of the
currency put it into a variable called
target symbol and if the target symbol
is equal to the symbol that we are
sending so when you're looping through
the currencies as soon as you find our
currency get the value of the last bar
traded as a string to integer whatever
has been stored here on i1 so on that
position one Whatever has been said get
it put it here and then return this and
because we're going to be sending an
integer so we need to change it from
string to integer because we stored the
value here as a string and now when
we're returning it back we want it as an
integer so I'm changing it from a string
to integer and I'm returning it back
don't worry we're going to Loop through
it and you're going to see how it all
works so now that we have these two two
functions I can go back up here and now
come back here and I delete this and
replace it with set bars traded and
sending it the symbol value so whenever
we take the trade we call the function
of set bar send it the symbol value so
that it can look for that symbol what is
the current bar number and then set it
into that two-dimensional array against
that currency and same
here we set bars traded when we're
taking a cell and then for this check
where we're checking the last bars
traded we also now have to modify it for
the multicurrency setup and this is
where those two hashes that I've put I'm
going to remove this and now and let's
call it integer as well so we don't have a
mismatch that the last bars traded in
that case get the last bar traded by
sending the
symbol to this function that we have
said so that we sended the symbol and it
gets the value of whatever is stored in
the second dimension against that
currency this is how we set the bars and
then later on get the Bars by using
looping through those currencies array
now if I compile it now I get the
Declaration of this hides the global
variable because we set a global
variable up here for The single currency
which we don't need now so I'm going to
delete it and then if I compile I'm
getting the error that bars last traded
is UN declared so this variable is
Undeclared so I declared it as bar last
Tred so let's change it to bars last
Tred and if I compile then I don't have
any error but there are two warnings
look I mean it's a warning but I don't
think it's going to create any problems
for us I don't know where is the long if
somebody can see where the long is let
me know in the comment section because
we are creating it as integer we
creating it as integer here as well and
I am converting it from string to
integer so I don't really see any problem
problem
anyways so let's run the test and see if
it works the first thing I'm going to
see is that yes I have the two Dimension
as USD and JPY as one and zero and these
are the values which we are going to
change now we have both the charts
opening up gpp USD and USD JPY so let's
trade and here we have the first trade
so now there must be a set of the bars
for U GBP USD so now I'm going to come
back here and put a
stop at bars now because I want to see
for the symbol what is the bar if I
resume here I see now that the symbol
value is gpp
USD and if I look at the bars traded for
that it has a value of
75,6 7 and let's go one step forward so
that we can get the value of the bars
now for gpp USD and the current value of
the bars is
75769 so this was where the trade was
taken so roughly around the 100 candles
probably and this is what I see here is
roughly around 100 Candles now I don't
know if USD JPY has not had a trade yet
so let's remove
this and then we play the and then we
press the play until we get a USD
JPY trade as well
or here it was a trade so I can pause it
now because there was a trade on usdjpy
as well and now if I come back here and
I'm going to put the break here again
and if I resume now then I'm seeing for
the gbpusd the last traded bar was
7567 and if I press the play the next
time it comes back as a USD JPY and
there is a different value
75499 so the code is working okay and
now we have
and now we have both of the currencies
working so for the USD JPY the trade is
being open on the four Dev four standard
deviation Ballinger and the TP is being
trailed on the third on the on the third
on the three standard deviation and for
gbpusd as well the trade open on four
and the trailing stop loss is working on
the three standard deviation so the
multicurrency codes are working fine now
now you can go back
here and in the input tab you can add
more currencies if you want so for
example if you added Euro
JPY and let's do a very quick test
again and now we have three currencies
open here gpp USD Euro JPY and USD JPY
in which case gpp USD again we have
already checked so let's check the Euro
JPY as
now and here we have a trade where the
trade opened up on the four standard
deviation and the TP is coming on the
three standard deviation now if it works
for one currency it's going to work for multiple
multiple
currencies so you can put as many values
that you want now when you're back
testing it will require that youa all of
the history of all of those currencies
and then run all of the so it might
become a little bit too much so when
you're doing a back test maybe it's a
good idea to do 10 currencies at one and
then another 10 and then another eight
or whichever way you want if your
computer is really good with a lot of
capacity and RAM then you might be able
to get away with all 28 currencies at
once now the last thing that remains is
to apply the filters and in this case I
normally like to apply ma filter or Hoku
filter we go back to meta editor and we
go back up to the top where we created
at this now we need
also the
ichimoku and the moving average
indicator custom class and those come
into Trend because these are Trend based
indicators so I'm creating a class for
ichimoku and for moving average
assigning the class of ichimoku to the
variable ichimoku and for the moving
average I'm creating two variables the
fast moving average and the slow moving
fast and moving average
slow then I come back down here into the
variable section and up top we're going
to create another enum because we're
going to need an enum for that drop down
where we give our user the ability to
select whether he wants the price above
Cloud to be the buy filter price above
tenen price above kijun price above sen
consen price above sen consen B 10
consen to be above kijun 10 consent to
be above keyen and both of them to be
above the cloud 10 consent to be above
the cloud and keyen to be above the
8 so we create that
enum and then down below here we create
one input group for the moving average
filter so where the user can say whether
or not it's true by default it's false
then in case if he turns it on then what
is the time frame for the moving average
what would be the value for the slow
moving average what would be the value
for the fast moving average what would
be the mode of the moving average and
what would be the applied price of the
moving average and then for ichimoku
filter again the same thing we ask the
user whether or not it's on and then if
it is on then he needs to select from
that IC type which we have created here
the enum of which type of filter he
wants to apply whether he wants the
price to be above the cloud below the
cloud 10 consent to be above keunen and
etc etc
what's the time frame and then the value
which is the default value of 926 and 52
but if the user wants to change it he
can then we come down to the on to the
Run symbol function and after the
trailing of the
stop-loss and assigning the Bullinger band
values then we create these variables
the fast moving average and the slow
moving average as double and just assign
it the value of zero for now and then
Senus span a sen span B value ten consen
value and the kyonen value because these
are the four values that we're going to
need for the filter and assigned the
value of zero for now then we say that
if the ma filter is on and you can write
this like this but if you just leave it
like if M filter on then the default way
of mql checking it if it's checking for
a True Value so if the M filter on value
is true so the user has selected it in
fast moving average variables that we
created above by assigning them the
value of whatever is the symbol the time
frame the slow moving average period and
the fast moving average period the the
mode which is Ema and the applied price
and then we refresh it both of them the
slow and the
fast and then we assign the value of the
fast moving average and the slow moving
average to these variables above here by
getting the main value from the if you
write moving average fast and then hit
Dot and then hit dot it opens up all of
the all it opens up all of the options
for you so we are interested in getting
the main line for the last candle and
then the same for the
slow moving average variable that we
created and then again we're asking for
the main line so this is how we will get
the values which we can then later on
pass on to the filters and then we do
the same thing for ichimoku so we say if
the ichimoku filter is on then start the
ichimoku or by assigning to the variable
that we created above in the variable
section as a new indicator class
ichimoku and then we create that
ichimoku by providing it the ichimoku
time frame the tenen sen anden value
and then refreshing it and then getting
the value of sen a sen B tenen and kijun
lines by again going ichimoku and if you
hit dot then all of the options open up
and you can see here that this option is
available here s span a Senus span B so
we want Senus span a and you can get it
for the last candle or the current
candle let's get it for the last
candle and we get these values so once
we have these values then we can go down
to the bottom and here we create
functions for moving average we're
calling it The Price versus moving
average filter you can call it whatever
and we're going to send it and we're
going to send to it the value of the
fast moving average that we have just
calculated and the slow moving average
and then we're going to just check if
the fast moving average is above slow
moving average then we return above and
then if the fast moving average is below
slow moving average then we return below
and in case there's something wrong with
the calculation return the of error and
we are creating this function as a
string function because we're going to
return the value of above or below which
is text then we create another Str
string function because it's because we
want it to return the value of above or
below as a string so we're creating it
as a string and we're going to send to
it the value of the symbol the senpan a
San B 10 and kijun line and inside we're
going to get the ask value and I'm going
to close the parenthesis because here is
the open parenthesis so we need a
closing parenthesis here we're going to
get the ask value by using the symbol info double for that symbol that we
info double for that symbol that we sending here and this is why we didn't
sending here and this is why we didn't have to send it here because we just
have to send it here because we just sent the moving average values and then
sent the moving average values and then we could check but here we need to get
we could check but here we need to get the ask values so we need to have the so
the ask values so we need to have the so we need the symbol value as well so
we need the symbol value as well so we're going to send the symbol value so
we're going to send the symbol value so we check with the symbol value for the
we check with the symbol value for the ask and then if the filter type is zero
ask and then if the filter type is zero which is the price is above the cloud
which is the price is above the cloud then we check that if the ask is both
then we check that if the ask is both above Senus Senus span a and Senus span
above Senus Senus span a and Senus span B then it's above the cloud so in that
B then it's above the cloud so in that case above and if it's below the Senus
case above and if it's below the Senus span a and Senus span B then it's below
span a and Senus span B then it's below the cloud so then return blow the same
the cloud so then return blow the same way we can check the next four filters
way we can check the next four filters which is if ask is greater than 10
which is if ask is greater than 10 consent then return above in case the
consent then return above in case the user has selected the filter type as one
user has selected the filter type as one which is the 10 is above the cloud or if
which is the 10 is above the cloud or if kij junen is above the cloud or
kij junen is above the cloud or if ask is above only the Senus pan a or
if ask is above only the Senus pan a or if ask is only above or if the price is
if ask is only above or if the price is only above the Senus pan B so return
only above the Senus pan B so return above and return below if it's below
above and return below if it's below then the next filter type is if 10
then the next filter type is if 10 consent is above the kij junen line so
consent is above the kij junen line so we check if 10 consent is above kijun
we check if 10 consent is above kijun then return above 10 below k s then
then return above 10 below k s then return below and this way we do it for
return below and this way we do it for the rest so for condition number six so
the rest so for condition number six so for selection number six which was
for selection number six which was here that tenen is above kijun and
here that tenen is above kijun and they're both above the
cloud we check for can we check for selection option six that if tenen is
selection option six that if tenen is above kensen kensen is above Senus span
above kensen kensen is above Senus span a and kijun is above senpan B Because if
a and kijun is above senpan B Because if kijun is above the cloud and tenen is
kijun is above the cloud and tenen is above kijun it is also above the cloud
above kijun it is also above the cloud to return above otherwise below then for
to return above otherwise below then for selection s seven if 10 span is above
selection s seven if 10 span is above the cloud if kij junen is above the
the cloud if kij junen is above the cloud and if none of them is true then
cloud and if none of them is true then just return the value of incloud I mean
just return the value of incloud I mean you could return error you could return
you could return error you could return anything but it's in Cloud I'm returning
anything but it's in Cloud I'm returning because here the ask price or the price
because here the ask price or the price could be not above the cloud and not
could be not above the cloud and not below the cloud but can also be in the
below the cloud but can also be in the cloud tenen versus kijun it's either
cloud tenen versus kijun it's either going to be above or below I mean the
going to be above or below I mean the chances of it actually having exactly
chances of it actually having exactly the same values are really Slim and then
the same values are really Slim and then we come back up here where we were
we come back up here where we were sending the orders and here once the
sending the orders and here once the conditions are met we can very quickly
conditions are met we can very quickly check that if the M filter is
check that if the M filter is on because we're going for a buy so if
on because we're going for a buy so if the M filter is on and the return of the
the M filter is on and the return of the price versus moving average is not equal
price versus moving average is not equal to above so it's eror or it's below then
to above so it's eror or it's below then in that case we know the condition is
in that case we know the condition is not math for the filter so in that case
not math for the filter so in that case return meaning exit the entire function
return meaning exit the entire function don't do anything else and then if
don't do anything else and then if ichimoku filter is
ichimoku filter is on then we need to check with the price
on then we need to check with the price versus ichimoku what value is returned
versus ichimoku what value is returned versus whatever has been selected by
versus whatever has been selected by sending it the values that we need to
sending it the values that we need to send to that function which is symbol
send to that function which is symbol send span send span B10 conning keinen
send span send span B10 conning keinen that we assign
that we assign here and then if the value is not above
here and then if the value is not above so it's it comes back either as below or
so it's it comes back either as below or as in Cloud then we're not interested in
as in Cloud then we're not interested in buy and in that case return don't do
buy and in that case return don't do anything else don't send the order so
anything else don't send the order so even though these conditions are true
even though these conditions are true but if the filter is on and the filter
but if the filter is on and the filter condition is not met then also we return
condition is not met then also we return we don't open the trade and then the
we don't open the trade and then the same thing we're going to do
same thing we're going to do here that after these sell conditions
here that after these sell conditions have been met we're very quickly going
have been met we're very quickly going to check if the M filter is on and the
to check if the M filter is on and the value returned by the price versus
value returned by the price versus moving average filter is not equal to
moving average filter is not equal to below because we want below then in that
below because we want below then in that case return
case return and then in case of ichimoku filter on
and then in case of ichimoku filter on again exactly like above here we're
again exactly like above here we're going to check whether the value return
going to check whether the value return is below and if it's not below then
is below and if it's not below then we're just going to exit the function
we're just going to exit the function we're not going to set the cell order
we're not going to set the cell order even though these conditions are met so
even though these conditions are met so this is how we create these filters and
this is how we create these filters and this completes our e if I compile it now
this completes our e if I compile it now I don't have any errors at all and we
I don't have any errors at all and we have already checked that the the EA was
have already checked that the the EA was working correctly before we applied
working correctly before we applied these filter filters now these filters
these filter filters now these filters I've applied in both of the es that I
I've applied in both of the es that I released before so I'm pretty confident
released before so I'm pretty confident that these are also going to work but in
that these are also going to work but in case if they don't work then I'm going
case if they don't work then I'm going to update in the comment section below
to update in the comment section below if there is any if there is any error
if there is any if there is any error but for the sake of time if I run the
but for the sake of time if I run the entire test it's going to take very long
entire test it's going to take very long to check every condition
to check every condition because because ichimoku conditions are
because because ichimoku conditions are way too many to check so this concludes
way too many to check so this concludes our coding now back again because it's a
our coding now back again because it's a reversal strategy so with the filters on
reversal strategy so with the filters on on higher time frames you're not going
on higher time frames you're not going to get many trades these filters are
to get many trades these filters are going to be useful when you're running
going to be useful when you're running lower time frames like 5 minutes 10
lower time frames like 5 minutes 10 minutes 15 minutes chart because
minutes 15 minutes chart because checking against the daily chart for the
checking against the daily chart for the filter at least you know the direction
filter at least you know the direction of the trend on a higher time frame and
of the trend on a higher time frame and this way even though you are going
this way even though you are going against the trend on a lower time frame
against the trend on a lower time frame on a higher time frame you're still
on a higher time frame you're still continuing the trade with the trend I
continuing the trade with the trend I will very quickly run just one test so
will very quickly run just one test so here in the input tab now you see all of
here in the input tab now you see all of the filters applied as well so let's go
the filters applied as well so let's go make this ichimoku true and we are
make this ichimoku true and we are interested when tenen is above kijun
interested when tenen is above kijun which again is my favorite and this is
which again is my favorite and this is why I'm selecting this and then we go
why I'm selecting this and then we go back to the settings so we have gpp USD
back to the settings so we have gpp USD on 5 minutes chart and here we also have
on 5 minutes chart and here we also have 5 minutes time frame and we are going
5 minutes time frame and we are going the 10 consent above Kon and the
the 10 consent above Kon and the ichimoku filter on a daily chart as well
ichimoku filter on a daily chart as well so I'll quickly run that but I will
so I'll quickly run that but I will remove the other currency so we're only
remove the other currency so we're only going to run it on gpp
going to run it on gpp USD so here we are on
USD so here we are on gbpusd I'll speed up the test a little
gbpusd I'll speed up the test a little bit because I'm interested in so here is
bit because I'm interested in so here is our Buy on the four standard deviation
our Buy on the four standard deviation Binger
Binger lower for now the the TP is going to be
lower for now the the TP is going to be set on the four standard deviation
set on the four standard deviation because remember in the function itself
because remember in the function itself we started with
we started with buinger as a TP but then later in the
buinger as a TP but then later in the trail stop loss we're going to switch it
trail stop loss we're going to switch it from this to that and if I look at the
from this to that and if I look at the gbpusd the 10 consent line is above the
gbpusd the 10 consent line is above the kij junen line and this is why this
kij junen line and this is why this trade was
trade was enabled so if I run
it now let's look for yeah so here is the sell because 10 cons was below the
the sell because 10 cons was below the kijun here 10 consen is still below
kijun here 10 consen is still below keunen so we're opening sell
keunen so we're opening sell trades 10 consen is below kij junen so
trades 10 consen is below kij junen so we're again opening up sell trades
we're again opening up sell trades and now it's still it's
and now it's still it's below I'm going to wait for it to come
below I'm going to wait for it to come up yeah so now it is above the 10 conent
up yeah so now it is above the 10 conent line so now we are opening up buy trades
line so now we are opening up buy trades so the the values are
so the the values are working so I'm going to stop the
working so I'm going to stop the test so on a lower time frame like 5
test so on a lower time frame like 5 minutes and 15 minutes my advice would
minutes and 15 minutes my advice would be to use the filters either the moving
be to use the filters either the moving average filter or the ichimoku filter so
average filter or the ichimoku filter so that at least on a higher time frame you
that at least on a higher time frame you are trading with the trend while on a
are trading with the trend while on a lower time frame you might be going
lower time frame you might be going against the trend if you apply the year
against the trend if you apply the year to 1 hour or 4 Hour chart then the
to 1 hour or 4 Hour chart then the chances are unless you set the filter on
chances are unless you set the filter on weekly the chances are you're not going
weekly the chances are you're not going to get too many trades if you go with a
to get too many trades if you go with a combination of 1 hour chart with 4 Hour
combination of 1 hour chart with 4 Hour you might end up with no trades at all
you might end up with no trades at all so this is it guys I strongly suggest
so this is it guys I strongly suggest for you guys to follow the video and
for you guys to follow the video and coded yourself because like I said
coded yourself because like I said before Nea is like a machine gun unless
before Nea is like a machine gun unless you know how it works you might end up
you know how it works you might end up actually hurting yourself do know what
actually hurting yourself do know what the codes are and how they work but if
the codes are and how they work but if you do decide to download it from the
you do decide to download it from the store for a small donation at least even
store for a small donation at least even then follow the coding understand the
then follow the coding understand the coding so you can apply it in the best
coding so you can apply it in the best possible way now I have another dozen
possible way now I have another dozen years that I will be releasing exactly
years that I will be releasing exactly in the same way but it takes like 10
in the same way but it takes like 10 days to capture the video structure it
days to capture the video structure it make it so it's going to be a slow
make it so it's going to be a slow process what I would emphasize once
process what I would emphasize once again as a closing remark is
again as a closing remark is it's a portfolio of years at a certain
it's a portfolio of years at a certain point in time some will work some will
point in time some will work some will not work but as long as more are working
not work but as long as more are working more are making money than the ones
more are making money than the ones losing the money probably the rule of
losing the money probably the rule of averages will will balance it out test
averages will will balance it out test the years thoroughly stay safe and trade
the years thoroughly stay safe and trade safe
Click on any text or timestamp to jump to that moment in the video
Share:
Most transcripts ready in under 5 seconds
One-Click Copy125+ LanguagesSearch ContentJump to Timestamps
Paste YouTube URL
Enter any YouTube video link to get the full transcript
Transcript Extraction Form
Most transcripts ready in under 5 seconds
Get Our Chrome Extension
Get transcripts instantly without leaving YouTube. Install our Chrome extension for one-click access to any video's transcript directly on the watch page.