OrderSelect(0,SELECT_BY_POS); OrderSelect(1,SELECT_BY_POS);
What are Function return values ? How do I use them ? - MQL4 forum
If you have no open positions the first fails. If you don't have 2 open positions the second fails. If you have more than 2 you are not modifying the new one.
OrderSelect(0,SELECT_BY_POS) is always available and an OP_SELL value, otherwise the hole expert would stop working.
OrderSelect(1,SELECT_BY_POS) is a hedge. It is activatet if OrdersTotal (by the way, the variable total is OrdersTotal) is 1 and sends the new order.
Since in this code part I posted above the second if-block is only activated when the OrderSend-code succeeded, there are only these two orders active and pos 0 is OP_SELL/ pos 1 OP_BUY.
Additionally, the program enters the line
Therefore, the selection-order has to be correct (I checked that via a print-message and the journal).
Hopefully I could provide you with the information needed.
I can only say to you it is Markus who has to learn what his code means
Go open manually 5 trades on a demo account and try to modify all your open trades automatically
with a working program so you modify them all with a stoploss of 100 pips
Show me a code how to do that....
@ deVries
The problem is not to know what my code does in general (this is only a small part of a 300lines ea), the problem is that OrderOpenPrice() does somehow not work in this case and I cannot figure out why that doesn't work.
If I replace OrderOpenPrice with a constant value everything does work, but since this is not in my interest I am trying to use this variable and in that case, I really do not know why it does not work and asked for help.
Especially because the OrderSelect()-order does work...
@ deVries
The problem is not to know what my code does in general (this is only a small part of a 300lines ea), the problem is that OrderOpenPrice() does somehow not work in this case and I cannot figure out why that doesn't work.
If I replace OrderOpenPrice with a constant value everything does work, but since this is not in my interest I am trying to use this variable and in that case, I really do not know why it does not work and asked for help.
Especially because the OrderSelect()-order does work...
The EA is set to send a sell-order in its int init(). Therefore, this order takes pos 0. However, if this position is closed and pos0 becomes anything else than an OP_SELL-position, the ea finishes its work.
And what happens if you place this 'EA' on 5 different pairs in same account ??
Than it is not going to work. It is not designed to completly trade for itself and since i don't do multiple trades at the same time I saved the time I would need to integrate a magic-number system.
I know that this doesn't suit the needs for a lot of traders, but it suits my trading-technique.
However, I can assure you that the OrderSelect-order is not the problem in this case. And this is also why I am unable to detect my failure..
Update:
I tested the following lines:
if (RiskHedge == true) { OrderSelect(0,SELECT_BY_POS); if (total == 1 && OrderType() == OP_SELL && aktiv_2 == true && Ask > (Preis+3*spread)) { OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Preis+spread,0,"RiskHedge",0,0,CLR_NONE); Print ("OrdersTotal(): ", OrdersTotal()); OrderSelect(1,SELECT_BY_POS); Print (OrderOpenPrice()); aktiv_RiskHedge = true; } }
The "prints" in the journal give me the right value for OrderOpenPrice in this case, so it has to be the second code-block..
Ok, I could solve the problem, I made an arithmetical error and put a sign in the wrong direction.. seems that I got blinded after all the time I starred at this.
Thanks for the time you invested to help me though!
Than it is not going to work. It is not designed to completly trade for itself and since i don't do multiple trades at the same time I saved the time I would need to integrate a magic-number system.
I know that this doesn't suit the needs for a lot of traders, but it suits my trading-technique.
However, I can assure you that the OrderSelect-order is not the problem in this case. And this is also why I am unable to detect my failure..
Update:
I tested the following lines:
The "prints" in the journal give me the right value for OrderOpenPrice in this case, so it has to be the second code-block..
Try this out on a ECN account
By the way is it timesaving not to integrate a magic-number system. ??
or is it you don't know how to do ??
I decided to upload my EA to the Code Base. If you are interested in what I am trying to do, feel free to read the description posted there.
Of course it will take its time to get the post published, but I will post a link here when its published.
But the lines I programmed here are disabled in the uploaded version so far.
Edit: It isn't as long as I don't need it, but I will change that in the future.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hey guys,
in the following code-block I created an order via OrderSend and tried to modify it.
As you can see in the notes the OrderOpenPrice()- value equals for some reason 0.
Obviously this is a problem; it should equal the real open-price, but I cannot figure out why it doesn't work. Maybe I've looked far too long at these lines to see it...
Therefore, I have to ask for help now, since I'm unable to find any useful solution. I'd be grateful for every hint I can get! Thank you in anticipation!