Voila la première demande, il y a peut être des érreures mais en gros voila la logique:
Code:
% = 50%
SI un ordre a un take profit ALORS:
- SI c'est un ordre OP_BUY ALORS:
- SI le Bid actuel est suppérieur à (TP - ouverture)/2 ALORS:
- on ferme % de la position
- SI c'est un ordre OP_SELL ALORS:
- SI le Ask actuel est suppérieur à (ouverture - TP)/2 ALORS:
- on ferme % de la position
Code:
extern int pourcent = 50;
pourcent = pourcent/100;
int start()
{
for (int i = OrdersTotal(); i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS);
int type = OrderType();
bool result = false;
if (OrderTakeProfit()!=0)
{
switch(type)
{
case OP_BUY: If ( Bid > (OrderTakeProfit() -OrderOpenPrice())/2 )
{
while (result == false)
{
RefreshRates();
result = OrderClose( OrderTicket(), OrderLots()/pourcent, MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
}
}
break;
case OP_SELL: If ( Ask < (OrderOpenPrice() - OrderTakeProfit())/2 )
{
while (result == false)
{
RefreshRates();
result = OrderClose( OrderTicket(), OrderLots()/pourcent, MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
}
}
break;
}
}
}
return(0);
}