pls help, the EA im working on opens and close trade every tick
1st, it opens order fulfilling the conditions, but 1-2 ticks, it closes trade. using on m15, having the same signals, it will again open a trade and closes again 1-2 ticks.
please help.
here is the closing code:
if(iOpen(NULL,0,0) < t3clean10 && CalcTotalOrders()>0)Close_Buy_Trade();
if(iOpen(NULL,0,0) > t3clean10 && CalcTotalOrders()>0)Close_Sell_Trade();
//+------------------------------------------------------------------+
int CalcTotalOrders()
{
int TotalOrders=0;
for (int pos=0; pos<OrdersTotal(); pos++) {
if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())TotalOrders++;
}
}
return (TotalOrders);
}
//+------------------------------------------------------------------+
void Close_Sell_Trade()
{
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()){
if (OrderType()==OP_SELL){
bool sell_close=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
}
}
}
}
}
//+------------------------------------------------------------------+
void Close_Buy_Trade()
{
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()){
if (OrderType()==OP_BUY){
bool buy_close=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
}
}
}
}
}
//+-----------------------------------------------------------------+
1st, it opens order fulfilling the conditions, but 1-2 ticks, it closes trade. using on m15, having the same signals, it will again open a trade and closes again 1-2 ticks.
please help.
here is the closing code:
if(iOpen(NULL,0,0) < t3clean10 && CalcTotalOrders()>0)Close_Buy_Trade();
if(iOpen(NULL,0,0) > t3clean10 && CalcTotalOrders()>0)Close_Sell_Trade();
//+------------------------------------------------------------------+
int CalcTotalOrders()
{
int TotalOrders=0;
for (int pos=0; pos<OrdersTotal(); pos++) {
if (OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())TotalOrders++;
}
}
return (TotalOrders);
}
//+------------------------------------------------------------------+
void Close_Sell_Trade()
{
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()){
if (OrderType()==OP_SELL){
bool sell_close=OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Red);
}
}
}
}
}
//+------------------------------------------------------------------+
void Close_Buy_Trade()
{
for (int i=0; i<OrdersTotal(); i++){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderMagicNumber()==Magic&&OrderSymbol()==Symbol()){
if (OrderType()==OP_BUY){
bool buy_close=OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Red);
}
}
}
}
}
//+-----------------------------------------------------------------+