MQL4 - automated forex trading   /  

Forum

Get values for specific number os bars

Back to topics list To post a new topic, please log in or register

avatar
60
batalhadematos 2008.10.31 09:59 

Hi there,

Perhaps some of you can help me developing a specific code I need.

I know that the routines are already included on mql language but my problem is that I do not know how to program it.


I am using a 30M timeframe and I need to get the values for a specific number os bars. The values I need are, higher, lower, open and close for a specific number of bars.


The idea is to decide if enter a position or not based on support, resistances and pivot point.


I need to enter long when the price reaches resistance 1, but none of the last 5 bars have crossed/touched the pivot line. Or enter short when the price reaches support 1 and none of the last five bars crossed/touched the pivot point.


That is, if the last five bars did not touched/crossed the pivot line and are above resistance 1, I BUY. The inverse happens with sell.


I already have the code for the PIVOT, R1, R2, R3, S1, S2 and S3 just don't know how to calculate the value for the last x bars.


Also, and if possible, I need to get the value for the first bars on the market open. Lets say, the 5 first bars.


Thank you very much


Regards

Paulo



article

Theoretical Basis of Building Cluster Indicators for FOREX

Cluster indicators are sets of indicators that divide currency pairs into separate currencies. Indicators allow to trace the relative currency fluctuation, determine the potential of formating new currency trends, receive trade signals and follow medium-term and long-term positons.


avatar
2462
phy 2008.10.31 10:40 

Hint:

iHighest() is used to find the bar index among a range of bars

iHigh() takes that index and finds tthe high price


avatar
60
batalhadematos 2008.10.31 11:14 
phy wrote >>

Hint:

iHighest() is used to find the bar index among a range of bars

iHigh() takes that index and finds tthe high price

Hi phy,


Thank you.

I have found on code library this two functions. My problem is that I do not to construct an array routine to find those values.

Can you please post a sample code on how to do it? That way I will try to adapt it to my needs after I understand your sample code...


Thank you once again


Paulo


avatar
2462
phy 2008.10.31 11:38 
No special array needed, it reads from price history.

avatar
60
batalhadematos 2008.10.31 12:09 
phy wrote >>
No special array needed, it reads from price history.

Hi phy,


What about if I need it to consider only from the first bar on the new open market? Imagine that I get a signal at 1AM GMT, if it counts the last 5 bars (on a 30M timeframe) it will also consider the last bars from the closed (yesterday) day trading...


I take this sample on the mql library but unfortunetly they do not tell me nothing... I am a newbie programming in mql.

- For iHighest:


double val;

// calculating the highest value on the 20 consequtive bars in the range

// from the 4th to the 23rd index inclusive on the current chart

val=High[iHighest(NULL,0,MODE_HIGH,20,4)];


When it refers to 20 consecutive bars in range, does it refers to 20 last bars? If so, is the actual bar included?


Besides being a newbie on mql programming, my mother language is Portuguese and as you may understand it is difficult for me to understand some of English expressions.


Thank you very much


Paulo



avatar
2462
phy 2008.10.31 12:25 

----Bars on chart or price history---------------------------------------------------------

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccc

val=High[iHighest(NULL,0,MODE_HIGH,20,4)];

iHighest() finds the index of the highest "b" bar ( among 20 bars) and High(iHighest()) finds the high price of that bar

starting with bar 4

the current bar is bar 0


avatar
60
batalhadematos 2008.10.31 12:43 
phy wrote >>

Bars on chart:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccc

val=High[iHighest(NULL,0,MODE_HIGH,20,4)];

finds the index of the highest "b" bar ( among 20 bars) and finds the high price of that bar

starting with bar 4

the current bar is bar 0

Dear phy


Your help is very helpfull. Thank you, thank you very much.

I have made some tests and I learn another way to find the highest/lowest price from a specific number of bars.

I also now that if I need to know if some of this bars have reached/touhced a specific value I can do it by testing the final valur for the "val" variable, like:

if (val >=x)...


What about if I need to get and pass the highest value of each bar counted? Not just the highest value for a number of bars, but the high price for a specific number of bars? For instance aaaaaaaaaaaaaaaaaaaaabbbccc... pass the high value of 3 bars starting from the third passed bar?


Also if possible, just consider from the first bar from the open market. That is, TODAY and not considering the yesterday bars?


I am very sorry to ask you all this codes,


Thank you very much once again


Regards


Paulo









avatar
2462
phy 2008.10.31 13:12 

aaaaaaaaaaaaaaaaaaaaabbbccc... pass the high value of 3 bars starting from the third passed bar?

High[3]... High[4]... High[5]

Also if possible, just consider from the first bar from the open market. That is, TODAY and not considering the yesterday bars?

iBarShift() takes a time value as input and returns a bar index to work with.

avatar
60
batalhadematos 2008.10.31 15:44 

Hi phy,


I will try with these new code provided.

I will let you know the results

Thank you once again


Regards


Paulo

Back to topics list  

To add comments, please log in or register