[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 1096

 
kolyango:
А как сделать, чтобы в этом коде перед покупкой проверить есть у нас уже ордера на покупку или нет. Если рыночных ордеров на покупку нет, то только тогда выполнить покупку?

Я сегодня в игрушках выложил советника. Там все это есть.
 
Vinin:

Я сегодня в игрушках выложил советника. Там все это есть.

В каких-таких игрушках?
 
kolyango:

В каких-таких игрушках?

https://www.mql5.com/ru/forum/108553/page28
 

А в каком именно? Название его...
 
kolyango:

А в каком именно? Название его...

Там только один мой советник. Хотя судя по всему не поможет
 
Vinin:

Там только один мой советник. Хотя судя по всему не поможет

))))))
 

А как сделать, чтобы в этом коде перед покупкой проверить есть у нас уже ордера на покупку или нет. Если рыночных ордеров на покупку нет, то только тогда выполнить покупку?

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке

OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------

 
kolyango:

А как сделать, чтобы в этом коде перед покупкой проверить есть у нас уже ордера на покупку или нет. Если рыночных ордеров на покупку нет, то только тогда выполнить покупку?

extern double LOT = 0.01;
//--------------------------------------------------------------------------------------------
int start()
{
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке

OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//--------------------------------------------------------------------------------------------


int OrderBuy=0;
for(int cnt=0;cnt<OrdersTotal();cnt++){
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
if(OrderMagicNumber()==Magic){
if(OrderSymbol()==Symbol()){
if(OrderType()==OP_BUY) OrderBuy++;
} } } }

if(OrderBuy==0) Открыть позицию.

 
DhP:

int OrderBuy=0;
for(int cnt=0;cnt<OrdersTotal();cnt++){
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
if(OrderMagicNumber()==Magic){
if(OrderSymbol()==Symbol()){
if(OrderType()==OP_BUY) OrderBuy++;
} } } }

if(OrderBuy==0) Открыть позицию.


int i;
extern double LOT = 0.01;

//--------------------------------------------------------------------------------------------
int start()
{
//-----
for (i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),3,White);
Alert (GetLastError()); // Выводит сообщение об ошибке
int OrderBuy=0;
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic)
{
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY) OrderBuy++;
}
}
}
}
if(OrderBuy==0) // Открыть позицию
{
OrderSend(Symbol(),OP_BUY,LOT,Ask,1,Bid-400*Point,Bid+400*Point,0,Green);
Alert (GetLastError()); // Выводит сообщение об ошибке
return(0);
}
}
}
//-----
}
//--------------------------------------------------------------------------------------------


'Magic' - variable not defined C:\Program Files (x86)\Alpari ÌÒ4\experts\111.mq4 (25, 36)

Чем определить Magic ? int Magic? А присваивать, наверно, ничего не надо, да?

 
Спасибо, DhP !!! То что нужно !!! Всё работает!!!
Причина обращения: