I suggest you to begin to fix your indentation, what a mess, how can you follow what this code is doing ?
void Trailing_Stop(string symbol,int magic) { double vPoint,vSlippage; if(Digits==3 || Digits==5) {vPoint=Point*10; vSlippage=Slippage*10; } else {vPoint=Point; vSlippage=Slippage;} RefreshRates(); for(int i=OrdersTotal()-1; i>=0; i--) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES) || OrderSymbol()!=symbol || OrderMagicNumber()!=magic) continue; if(OrderType()==OP_BUY) { if(OrderStopLoss()<OrderOpenPrice()) { //-- Breakeven if(Bid>=OrderOpenPrice()+vPoint*BreakEvenStart) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+vPoint*BreakEven,OrderTakeProfit(),0,Green); return; } } else { //-- Trailing stop if(Bid-TrailingStop>=OrderStopLoss()) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss()+vPoint*TrailingStep,OrderTakeProfit(),0,Green); return; } } } if(OrderType()=OP_SELL) { if(OrderStopLoss()>OrderOpenPrice()) { //-- Breakeven if(Ask<=OrderOpenPrice()-BreakEvenStart) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-vPoint*BreakEven,OrderTakeProfit(),0,Green); return; } } else { //-- Trailing stop if(Ask+TrailingStop<=OrderStopLoss()) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss()-vPoint*TrailingStep,OrderTakeProfit(),0,Green); return; } } } } }What are the values of TrailingStop/TrailingStep ? Why don't you check the returned value of OrderModify() ? Is your ordermodify for trailing stop executed with an error or not executed at all ?
extern double TrailingStop =7; if(Bid-TrailingStop>=OrderStopLoss())
Bid - 7 is almost certainly a negative number
I suggest you to begin to fix your indentation, what a mess, how can you follow what this code is doing ?
What are the values of TrailingStop/TrailingStep ? Why don't you check the returned value of OrderModify() ? Is your ordermodify for trailing stop executed with an error or not executed at all ?I could follow the Code as I denoted comments beside lines.
Anyway, you probably missed the Values of TrailingStop/TrailingStep at the Top of my posted code.
So far not getting any 'Error' in the Journal Tab while testing in Strategy Tester. So the Trailing part isn't Executing. :(
EDIT:
*There is a mistake in defining New_SL.
It should be: New_SL=OrderStopLoss()+vPoint*TrailingStep;
I could follow the Code as I denoted comments beside lines.
Anyway, you probably missed the Values of TrailingStop/TrailingStep at the Top of my posted code.
So far not getting any 'Error' in the Journal Tab while testing in Strategy Tester. So the Trailing part isn't Executing. :(
Did you miss my post?
Bid - 7 is almost certainly a negative number
But at certain point it has to be Positive.
Like if the price moves 20 pips, then it'd easily be a positive number.
if(OrderStopLoss()<OrderOpenPrice()) { if(Bid>=OrderOpenPrice()+vPoint*BreakEvenStart) { Set BE; } } else //if(OrderStopLoss()>OrderOpenPrice()) [The Stop Loss is at BE now] { if(Bid-TrailingStop>=OrderStopLoss()) // Bid=BE(OrderStopLoss)+TrailingStop { Set Trailing Stop; } }
For example a Buy trade was opened at 1.3550.
Now the Bid is 1.3556, so
OrderOpenPrice()+BreakEvenStart=1.3550+0.0005=1.3555
So, 1.3556>1.3555
BE price=OrderOpenPrice()+BreakEven=1.3551
New Bid is 1.3557, so
Bid-TrailingStop=1.3557-0.0007=1.3550 which is not > OrderStopLoss() [1.3551]
Then now the Bid is 1.3565
Bid-TrailingStop=1.3565-0.0007=1.3558 which is > OrderStopLoss() [1.3551]
So the New Stop Loss has to be:
OrderStopLoss()+TrailingStep= 1.3551+0.0002=1.3553
But this is not Happening.
Probably I have made a fatal mistake somewhere.
I could follow the Code as I denoted comments beside lines.
Anyway, you probably missed the Values of TrailingStop/TrailingStep at the Top of my posted code.
So far not getting any 'Error' in the Journal Tab while testing in Strategy Tester. So the Trailing part isn't Executing. :(
EDIT:
*There is a mistake in defining New_SL.
It should be: New_SL=OrderStopLoss()+vPoint*TrailingStep;
It's not about you following the code, it's about the others.
I don't miss the values, I invite you to check them. Your trailing code is never executed, read the replies again.
It's not about you following the code, it's about the others.
I don't miss the values, I invite you to check them. Your trailing code is never executed, read the replies again.
So is my calculation wrong?
Have I set the Logic wrong?
Please indicate where the fault is? I'm unable to understand.
But at certain point it has to be Positive.
Like if the price moves 20 pips, then it'd easily be a positive number.
For example a Buy trade was opened at 1.3550.
Now the Bid is 1.3556, so
OrderOpenPrice()+BreakEvenStart=1.3550+0.0005=1.3555
So, 1.3556>1.3555
BE price=OrderOpenPrice()+BreakEven=1.3551
New Bid is 1.3557, so
Bid-TrailingStop=1.3557-0.0007=1.3550 which is not > OrderStopLoss() [1.3551]
Then now the Bid is 1.3565
Bid-TrailingStop=1.3565-0.0007=1.3558 which is > OrderStopLoss() [1.3551]
So the New Stop Loss has to be:
OrderStopLoss()+TrailingStep= 1.3551+0.0002=1.3553
But this is not Happening.
Probably I have made a fatal mistake somewhere.
It is not
Bid-TrailingStop=1.3557-0.0007=1.3550 which is not > OrderStopLoss() [1.3551]
It's
Bid-TrailingStop=1.3557-7
which will be a negative number
So is my calculation wrong?
Have I set the Logic wrong?
Please indicate where the fault is? I'm unable to understand.
Use more Print(" ......") inside your code to check what your code is doing
I have been trying to make a 'Trailing Stop' function with Break Even.
The Break Even part is working but the Trailing Stop part isn't working.
Not understanding where I am making the 'Mistakes'?
Regards
where does it fails ???
So where do you look for errors ????
Then you had found with using Print() what GumRai is pointing out
By the way if you have problems with your code and you want free help then use the Forum
that is the section you have to use asking your questions about issues you have on your code
if i or others help you on forum with a issue then don't start private messages
I have not the time to help you personal for free checking all your codes your write me at personal messages
if you want personal private lessons from me or maybe someone else then it's for me going with using section Jobs ofcours then getting paid
and in a way it's easier to communicate at a time we agree
It is not
Bid-TrailingStop=1.3557-0.0007=1.3550 which is not > OrderStopLoss() [1.3551]
It's
Bid-TrailingStop=1.3557-7
which will be a negative number
This is it.
Thanks. I got it now. Actually I was translating the '7' as the value of 'TrailingStop'. The Fault was I hadn't converted the TrailingStop into decimal places.
It's working now. :)

- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I have been trying to make a 'Trailing Stop' function with Break Even.
The Break Even part is working but the Trailing Stop part isn't working.
Not understanding where I am making the 'Mistakes'?
Regards