Misbehave script or..

 
Hi Guys,

Something very disturbing has happen to me.
I run an EA script to handle various aspects of my trades.

In some cases, when I use a trade as a fence, there is a line in the script that says:

if (OrderTicket()==183784037) continue; //don't process this ticket


This trade had a constant SL set to one pip below it's open_price (SELL) that did not supposed to move according to the above EA line.


Well, it did OK until last Thursday when I came back to the computer and found that my fence collapsed and this trade was executed on a far below SL



How can this happen?

Can it be a fault of the company I trade through or can it be a fault of the MetaTrader?

James



 

I have experienced a spike where the price moved 100's of pips up and then back in a tick - I complained and got my money back. So in my experience it can happen.

 
Ickyrus:

I have experienced a spike where the price moved 100's of pips up and then back in a tick - I complained and got my money back. So in my experience it can happen.


Hi Ickyrus,

Hmmm, spike you say?

Well, let say there was a spike,
How did that spike effected the SL to move down 74.7 pips below the open_price?

Can a spike do that?

James

 

Were there other trades open after this trade was closed? If the margin level hits 100% the broker will close all open trades no matter what state they are in.

 

I shold add that the second option seems unlikly as the stop loss reached pink colour is showing in your accounts. Spikes do occasionally happen and depending on your broker a complaint should see you right.

 
Ickyrus:

Were there other trades open after this trade was closed? If the margin level hits 100% the broker will close all open trades no matter what state they are in.



Hi Ickyrus,

Yes there were three other BUY orders that this SELL command fenced.
These three opposite order left untouched, so it can't be a case of insufficient equity.

Farther more, if the trade would have been close by the broker, it won't be marked as a SL as it shows in the picture I've attached.

James
 

Show the code where you use the ordermodify so we might can help.

Without all we can do is guessing

 
Hi zzuegg,

The code is very long and complicated.
It doesn't really matter since the line:


if (OrderTicket()==183784037) continue; //don't process this ticket

should skip that particular ticket, so no matter what lays ahead - it won't be executed


James
Reason: