Hi all,
Would like to get from you help to deal with this issue;
When an order is open and the price is under of the order open price I want to open an opposite order.
In this particular case I'm try to use this code but without success. Could anyone give a help here?
Thanks in advance
Luis
Could you answer this question, it will help you a lot :
1. What is the return value of OrderSelect() - read the documentation of OrderSelect will help you answer this.
2. What error when you fail to send order ?
Hi all,
Would like to get from you help to deal with this issue;
When an order is open and the price is under of the order open price I want to open an opposite order.
In this particular case I'm try to use this code but without success. Could anyone give a help here?
What is the purpose of the variable called UsePoint ? if you can explain why you are using it you will probably understand what your issue is . . . also . . . where does the value of OpenPrice come from ?
Don't you want to know if your OrderSend() works or not ? and if it fails don't you want to know why ? don't you want to know what the relevant variables were when it failed ?
Read this: What are Function return values ? How do I use them ?
Hi RaptorUK;
Thank you for your prompt response;
UsePoint is to adjust for 5 decimal points so is Point*10
OpenPrice is OrderOpenPrice()
Thank you
Luis
Hi RaptorUK;
Thank you for your prompt response;
UsePoint is to adjust for 5 decimal points so is Point*10
Can you explain why you are using it in this situation ?
Hi RaptorUK,
You are right. I just need to use that for TakeProfit and Stoploss (I think...)
Hi RaptorUK,
You are right. I just need to use that for TakeProfit and Stoploss (I think...)
Hi RaptorUK,
I've take a look on the link you provided and put on the code the error routine and the error that just returned says 2012.11.06 06:40 market order ecn v1 EURUSDi,M5: Order Send failed, error # 4051.
Then on the code I've done some changes on OrderSelect and use Ticket, but things still not working. Also I done a search for the meaning and what I found is ERR_INVALID_FUNCTION_PARAMVALUE (4051) and unfortunately I don't know
how to get from here...
double OpenOppositeOrder() { int Op; // for(int Counter=0;Counter<=OrdersTotal()-1;Counter++) for(int Counter=OrdersTotal()-1;Counter>=0;Counter--) { //OrderSelect(Counter,SELECT_BY_POS,MODE_TRADES); OrderSelect(Ticket,SELECT_BY_TICKET); { if(OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber) { Op=OrderType(); if(Op==OP_BUY && NormalizeDouble(Bid,Digits)<OpenPrice) { Ticket = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,Digits),UseSlippage,0,0,"Sell Order",MagicNumber,0,Red); if(Ticket>0)AddLimitsSell(); } if( Ticket > 0 ) { Print("Order placed # ", Ticket); } else { Print("Order Send failed, error # ", GetLastError() ); } if(Op==OP_SELL && NormalizeDouble(Ask,Digits)>OpenPrice) { Ticket = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,Digits),UseSlippage,0,0,"Buy Order",MagicNumber,0,Green); if(Ticket>0)AddLimitsBuy(); } if( Ticket > 0 ) { Print("Order placed # ", Ticket); } else { Print("Order Send failed, error # ", GetLastError() ); } } } } }
Hi RaptorUK,
I've take a look on the link you provided and put on the code the error routine and the error that just returned says 2012.11.06 06:40 market order ecn v1 EURUSDi,M5: Order Send failed, error # 4051.
Then on the code I've done some changes on OrderSelect and use Ticket, but things still not working. Also I done a search for the meaning and what I found is ERR_INVALID_FUNCTION_PARAMVALUE (4051) and unfortunately I don't know
how to get from here...
You need to check the values you are sending to the OrderSend() function . . . are they the correct types ? for example, UseSlippage must be an int , it sounds like a bool . . . is LotSize a double ? is it in the correct range ? greater than Min Lot and less than Max Lot and a multiple of Lot Step ?
Hi RaptorUK,
Sorry to take your time, probably you start to get tired of me. So Slippage is an int and LotSize is a double....and things still bad....
I really still try hard to understand this but seems that my ignorance is taking advantage(...)
For times seems that could be some issue with the Tester and then I try it on Demo. And here I can't have an opposite order opening if price comes under (for Buy) the OrderOpenPrice.
Please, could you take a look in the code that is attached ?
I don't want soever that you code for me but just a little help.
thank you in advance for any help provided and fo your patience as well
Luis
Hi RaptorUK,
Sorry to take your time, probably you start to get tired of me. So Slippage is an int and LotSize is a double....and things still bad....
I really still try hard to understand this but seems that my ignorance is taking advantage(...)
For times seems that could be some issue with the Tester and then I try it on Demo. And here I can't have an opposite order opening if price comes under (for Buy) the OrderOpenPrice.
Please, could you take a look in the code that is attached ?
I don't want soever that you code for me but just a little help.
thank you in advance for any help provided and fo your patience as well
Why did you change correct code to incorrect code ?
You loop was looping through all the orders that in the Trades Pool (open and pending orders) . . . now this code makes no sense, where does ticket come from on the first pass in the loop ?
for(int Counter=OrdersTotal()-1; Counter>=0; Counter--) { //OrderSelect(Counter,SELECT_BY_POS,MODE_TRADES); OrderSelect( Ticket, SELECT_BY_TICKET);
Another question for you . . . . why is this Function type double when it doesn't return anything ?
- 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,
Would like to get from you help to deal with this issue;
When an order is open and the price is under of the order open price I want to open an opposite order.
In this particular case I'm try to use this code but without success. Could anyone give a help here?
Thanks in advance
Luis