Пользуйтесь на здоровье
//Вычисляем количество открытых длинных (на покупку) и коротких (на продажу) ордеров int long_pos=0, short_pos =0; if (OrdersTotal()>0) { for(i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == Magic) { long_pos=1; } if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == Magic) { short_pos=1; } } } //----
//+------------------------------------------------------------------+ //| проверяет рыночный ордер на принадлежность согласно условиям | //+------------------------------------------------------------------+ bool IfOrder(string Sy="",int Typ=-1,int Magik=-1){ if(Sy=="0"||Sy==""){Sy=Symbol();} if(OrderSymbol()==Sy){ if(OrderType()==Typ||Typ==(-1)){ if(OrderMagicNumber()==Magik||Magik==(-1)){ return(true); } } } return(false); }
в начале файла пишем строку:
extern int Magic = 123321;
и ничего не будет ругаться...
int WhatOpen() // Функция проверки наличия открытых ордеров
{
int long_pos=0, short_pos =0, Magic, Order;
if (OrdersTotal()>0)
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == Magic)
{
Order=1;
}
if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == Magic)
{
Order=2;
}
}
} Alert(Order);
}
return;
Вобана что получилось, мне над было что возвращало:
Нет открытых-0;
Long - 1;
Short -2.
Спасибо большое
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не могу сообразить...
Вроде все не так то уж и сложно. Нужно мне функцию, в которой проверялось бы наличие открытых ордеров и тип открытого ордера:
По моему я тут понавертел :(
int WhatOpen()
{
int Order=0;
if (OrderType()==OP_BUY)
Order=1;
if (OrderType()==OP_SELL)
Order=2;
Alert (Order);
}
return(0);
Пытаюсь просто проверить работу функции. Чтоб выскакивало сообщение с возвращаемым параметром...Все время выскакивает "2" независимо от того какая открыта позиция о_О
Подскажите пж, как можно это осуществить, и, что я тут понаписал