Orders Execution
0
Views
0
Downloads
0
Favorites
CloseAllPostionByMargin
//+------------------------------------------------------------------+
//| close-all-ordersByMargin.mq4 |
//| Copyright © 2005, Matias Romeo. |
//| Custom Metatrader Systems. |
//| History: |
//| Modify to close order by Margin Used | |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Matias Romeo."
#property link "mailto:matiasDOTromeoATgmail.com"
extern double MarginMultiplier = 0.7; // For the purpose of Multiplying MarginUsed to determine profit target
int start()
{
if(OrdersTotal() > 0 )
Comment("MarginUsed",(AccountMargin())," Multiplier",MarginMultiplier," Fraction",AccountProfit()/AccountMargin()," |||ProfitTarget: $",(AccountMargin())*MarginMultiplier," Less AccountProfit: ",AccountProfit()," = RemainingTarget: $",((AccountMargin())*MarginMultiplier)-AccountProfit());
if(OrdersTotal() > 0 && AccountProfit()>(AccountMargin())*MarginMultiplier)
int total = OrdersTotal();
for(int i=total-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
// if(OrdersTotal() > 0 && AccountProfit()>(AccountMargin())*MarginMultiplier)
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
break;
//Close opened short positions
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
break;
//Close pending orders
case OP_BUYLIMIT :
case OP_BUYSTOP :
case OP_SELLLIMIT :
case OP_SELLSTOP : result = OrderDelete( OrderTicket() );
}
if(result == false)
{
// Alert("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
// Sleep(3000);
}
}
return(0);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---