I was backtesting "MACD sample EA" then adding an "order status indicator" which shows numbers of active open orders data on the visual chart.
But in spite of having active open orders from the EA, the order status Indicator is failed to show any open orders data on the chart.
So does the indicator orderselect() function works during backtest ?
If it works then why it doesn't show open orders data as it shows on live charts?
Here I rephrase,
I added "MACD Sample" EA on visual backtest. On that same chart, I added the order status indicator with "orderselect()" function. But in spite of having open orders on the visual chart, my orders status indicator doesn't show anything, like 0 active orders, whereas visual tester has open orders.
Indicators can/do not handle orders...
There is no such thing as indicator orderselect() function.
bool t=OrderSelect(0, SELECT_BY_POS);
printf("os(0)=%i Fail:%i T=%i", t, _LastError, OrderTicket() );
// 2017.05.29 07:52:42.198 testIndi EURUSD,H4: os(0)=1 Fail:0 T=142553347
Thank you whroeder for your input.
I created a testing indicator with your code. Then started "MACD Sample EA" for visual test adding with the test indicator on the chart.
at the journal tab, it shows such results
2017.05.30 10:47:48.280 2017.05.05 02:26:00 Testing Orders GBPJPY,M1: os(0)=0 Fail:4051 T=0
Invalid function parameter value.
I tried testing with different other EA and then adding my orders status indicator for display on the EA visual chart. But it didn't work.
It's not possible to backtest an order status based indicator, as it doesn't involve any live trade during backtest. That's why with an EA, I tried to backtest it.
Here is the sample code of the orders status indicator: (Which works perfectly on live chart)
for (int b = OrdersTotal()-1;b>=0;b--)
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) == true && OrderType() == OP_BUY)
type = "Buy";
if(OrderSelect(b,SELECT_BY_POS,MODE_TRADES) == true && OrderType() == OP_SELL)
type = "Sell";
string Name = IntegerToString(b)+"U";
int yd = 5+b;
ObjectCreate(Name, OBJ_LABEL, 0, 0, 0);
ObjectSet(Name, OBJPROP_CORNER, 0);
ObjectSet(Name, OBJPROP_XDISTANCE, 5);
Write the order select code into the EA.
A separate indicator will probably not work with the backtesting results.