See for example iExposure custom indicator. You can find it in the installation pack
Thanks. I'm trying to simplify the following code... my intention is to automatically detect the number of pairs with open orders and sort them out according to their open time...
Since I'm still not familiar with arrays can you give me a help?
//---Sort pairs by oldest open orders & open pairs count (20 max):
OpenPairs=0;
t1=TimeCurrent(); t2=TimeCurrent();t3=TimeCurrent();t4=TimeCurrent();t5=TimeCurrent();t6=TimeCurrent();t7=TimeCurrent();
t8=TimeCurrent();t9=TimeCurrent();t10=TimeCurrent();t11=TimeCurrent();t12=TimeCurrent();t13=TimeCurrent();t14=TimeCurrent();
t15=TimeCurrent();t16=TimeCurrent();t17=TimeCurrent();t18=TimeCurrent();t19=TimeCurrent();t20=TimeCurrent();
for(i = 0; i <OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if (OrderOpenTime()<t1)
{t1=OrderOpenTime();p1=OrderSymbol();OpenPairs=1;}
if (OrderOpenTime()<t2 && OrderSymbol()!=p1)
{t2=OrderOpenTime();p2=OrderSymbol();OpenPairs=2;}
if (OrderOpenTime()<t3 && OrderSymbol()!=p1 && OrderSymbol()!=p2)
{t3=OrderOpenTime();p3=OrderSymbol();OpenPairs=3;}
if (OrderOpenTime()<t4 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3)
{t4=OrderOpenTime();p4=OrderSymbol();OpenPairs=4;}
if (OrderOpenTime()<t5 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4)
{t5=OrderOpenTime();p5=OrderSymbol();OpenPairs=5;}
if (OrderOpenTime()<t6 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5)
{t6=OrderOpenTime();p6=OrderSymbol();OpenPairs=6;}
if (OrderOpenTime()<t7 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6)
{t7=OrderOpenTime();p7=OrderSymbol();OpenPairs=7;}
if (OrderOpenTime()<t8 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7)
{t8=OrderOpenTime();p8=OrderSymbol();OpenPairs=8;}
if (OrderOpenTime()<t9 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8)
{t9=OrderOpenTime();p9=OrderSymbol();OpenPairs=9;}
if (OrderOpenTime()<t10 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8&& OrderSymbol()!=p9)
{t10=OrderOpenTime();p10=OrderSymbol();OpenPairs=10;}
if (OrderOpenTime()<t11 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10)
{t11=OrderOpenTime();p11=OrderSymbol();OpenPairs=11;}
if (OrderOpenTime()<t12 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11)
{t12=OrderOpenTime();p12=OrderSymbol();OpenPairs=12;}
if (OrderOpenTime()<t13 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12)
{t13=OrderOpenTime();p13=OrderSymbol();OpenPairs=13;}
if (OrderOpenTime()<t14 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13)
{t14=OrderOpenTime();p14=OrderSymbol();OpenPairs=14;}
if (OrderOpenTime()<t15 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14)
{t15=OrderOpenTime();p15=OrderSymbol();OpenPairs=15;}
if (OrderOpenTime()<t16 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14&& OrderSymbol()!=p15)
{t16=OrderOpenTime();p16=OrderSymbol();OpenPairs=16;}
if (OrderOpenTime()<t17 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14&& OrderSymbol()!=p15&& OrderSymbol()!=p16)
{t17=OrderOpenTime();p17=OrderSymbol();OpenPairs=17;}
if (OrderOpenTime()<t18 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14&& OrderSymbol()!=p15&& OrderSymbol()!=p16&& OrderSymbol()!=p17)
{t18=OrderOpenTime();p18=OrderSymbol();OpenPairs=18;}
if (OrderOpenTime()<t19 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14&& OrderSymbol()!=p15&& OrderSymbol()!=p16&& OrderSymbol()!=p17
&& OrderSymbol()!=p18)
{t19=OrderOpenTime();p19=OrderSymbol();OpenPairs=19;}
if (OrderOpenTime()<t20 && OrderSymbol()!=p1 && OrderSymbol()!=p2 && OrderSymbol()!=p3 && OrderSymbol()!=p4 && OrderSymbol()!=p5
&& OrderSymbol()!=p6 && OrderSymbol()!=p7 && OrderSymbol()!=p8 && OrderSymbol()!=p9 && OrderSymbol()!=p10&& OrderSymbol()!=p11
&& OrderSymbol()!=p12&& OrderSymbol()!=p13&& OrderSymbol()!=p14&& OrderSymbol()!=p15&& OrderSymbol()!=p16&& OrderSymbol()!=p17
&& OrderSymbol()!=p18&& OrderSymbol()!=p19)
{t20=OrderOpenTime();p20=OrderSymbol();OpenPairs=20;}
// add more ... (there must be another way to avoid this)
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi all! I’m new in programming… and maybe more expericed members can give me a little help with this…
I’m trying to find out the best code to detect:
1- the number of pairs which have Open Orders at the moment, starting from OrdersTotal( )…”
2- And then for each of those pairs, the total of Sells, Buys, LongProfit and ShortProfit respectively.
usdjpy = pair1 (the pair with the oldest open order at 14:40 2008.04.04)
usdchf = pair2
gbpusd =pair3 (the most recent pair with open orders)
So, every time a new pair opens a new order the number of pairs would increase... and have a number by order of appearance.
Later on, I'll want to know the following variables for pair1 (for instance):
NumBuys= ? and respective LongProfit=?
NumSells=? and respective ShortProfit=?
how can I code this?
thanks anyway