Suttisak Boonla:
Hi all
I have question about how to coding in order to count OrderSymbol()
I open trade
buy USDJPY ,EURUSD ,AUDUSD
sell USDJPY ,AUDJPY ,USDCHF
I want EA to count only 5 pairs but my EA count 6 pair.
if that same pair just count 1.
Please kindly help I don't know what to do.
This my code.
count each pair.
int CountPair(string pair) { int count = 0; for(int cnt=0; cnt<OrdersTotal()-1; cnt++) { bool select = OrderSelect(cnt, SELECT_BY_POS); if(select && (OrderType() == OP_BUY || OrderType() == OP_SELL) && pair==OrderSymbol()) count++; } return(count); }
Mohamad Zulhairi Baba:
count each pair.
I think it return the same result anyway.. maybe count by magic number for OrderSymbol()?
Mohamad Zulhairi Baba: I think it return the same result anyway.. maybe count by magic number for OrderSymbol()? |
| Think again. There is no maybe.
|
Not compiled or tested, just quickly thrown together.
It may give you some ideas
int Count_Pair()
{
int total=OrdersTotal();
int numords=0;
string pair;
string symb[];
int as=0;
for(int cnt=0; cnt<total; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
// if(OrderMagicNumber() == MagicNumberBuy || OrderMagicNumber() == MagicNumberSell)
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
int count_add=1;
pair=OrderSymbol();
for(int x=0;x<as;x++)
if(pair==symb[x])
count_add=0;
if(count_add==1)
{
ArrayResize(symb,as+1);
symb[as]=pair;
as++;
numords+=count_add;
}
}
}
return(numords);
}
Keith Watford:
int Count_Pair()
{
int total=OrdersTotal();
int numords=0;
string pair;
string symb[];
int as=0;
for(int cnt=0; cnt<total; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
// if(OrderMagicNumber() == MagicNumberBuy || OrderMagicNumber() == MagicNumberSell)
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
int count_add=1;
pair=OrderSymbol();
for(int x=0;x<as;x++)
if(pair==symb[x])
count_add=0;
if(count_add==1)
{
ArrayResize(symb,as+1);
symb[as]=pair;
as++;
numords+=count_add;
}
}
}
return(numords);
}
Not compiled or tested, just quickly thrown together.
It may give you some ideas
int Count_Pair()
{
int total=OrdersTotal();
int numords=0;
string pair;
string symb[];
int as=0;
for(int cnt=0; cnt<total; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
// if(OrderMagicNumber() == MagicNumberBuy || OrderMagicNumber() == MagicNumberSell)
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
int count_add=1;
pair=OrderSymbol();
for(int x=0;x<as;x++)
if(pair==symb[x])
count_add=0;
if(count_add==1)
{
ArrayResize(symb,as+1);
symb[as]=pair;
as++;
numords+=count_add;
}
}
}
return(numords);
}
Thak you very much.
Here is a simplified solution.
#include <Arrays\ArrayString.mqh> int SymbolCount() { CArrayString symbols; for(int i=0;i<OrdersTotal();i++) if(OrderSelect(i,SELECT_BY_POS) && (OrderType() == OP_BUY || OrderType() == OP_SELL)) if(symbols.Search(OrderSymbol())<0) symbols.Add(OrderSymbol()); return symbols.Total(); }
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi all
I have question about how to coding in order to count OrderSymbol()
I open trade
buy USDJPY ,EURUSD ,AUDUSD
sell USDJPY ,AUDJPY ,USDCHF
I want EA to count only 5 pairs but my EA count 6 pair.
if that same pair just count 1.
Please kindly help I don't know what to do.
This my code.