![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
This is what I am using in an EA that uses MA line as a trailing stop.
I will not offer any explanations, I think you can work it out.
//this goes inside start
TrailingAlls(TrailStart, SMA1);
void TrailingAlls(int start, double currvalue)
{
int profit;
double stoptrade;
double stopcal;
// if(stop==0) return;
int trade;
for(trade=OrdersTotal()-1;trade>=0;trade--)
{
if(!OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
continue;
if(OrderSymbol()!=Symbol()||OrderMagicNumber()!=MagicNumber)
continue;
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
profit=NormalizeDouble((Bid-OrderOpenPrice())/Point,0);
if(profit<start)
continue;
stoptrade=OrderStopLoss();
// stopcal=Bid-(stop*Point);
stopcal=NormalizeDouble(currvalue, Digits);
if(stoptrade==0||(stoptrade!=0&&stopcal>stoptrade))
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Blue);
}//Long
if(OrderType()==OP_SELL)
{
profit=NormalizeDouble((OrderOpenPrice()-Ask)/Point,0);
if(profit<start)
continue;
stoptrade=OrderStopLoss();
// stopcal=Ask+(stop*Point);
stopcal=NormalizeDouble(currvalue, Digits);
if(stoptrade==0||(stoptrade!=0&&stopcal<stoptrade))
OrderModify(OrderTicket(),OrderOpenPrice(),stopcal,OrderTakeProfit(),0,Red);
}//Shrt
}
}//for
}
Maji:
Thanks, Would you please writer in MQ program, so we will have no problem to use it?
Thanks again.
Maji:
Thanks, Would you please writer in MQ program, so we will have no problem to use it?
Thanks again.Sorry,
I am not that conversant in MQL.
Maji