Помогите разобраться

 

Всем добрый вечер!

Если не сложно, помогите разобраться. У меня советник при поступлении одного сигнала открывает сделку, и пока эту сделку не закроет - новую не открывает.

А мне нужно, чтоб он после открытия сделки, мог открывать еще сделки, если поступает соответствующий сигнал.

Заранее спасибо.

 
KLMNC:

какой совет вам нужен?

кусок кода вставить или в учебник послать?

 

if(CalculateCurrentOrders(Symbol())==0)

вот здесь думайте.

 
sergeev:

какой совет вам нужен?

кусок кода вставить или в учебник послать?



Кусок кода вставить :)
 
sergeev:

if(CalculateCurrentOrders(Symbol())==0)

вот здесь думайте.



Думаю, но что-то не очень получается...
 
Или жмите на F1 в МетаЭдиторе, поставив курсор на название функции.
 
yuripk:
Английсого не знаете, чтобы перевести название функции, то Гугл или аналогичные сайты в помощь, или в словарь смотрите.


Перевод я знаю.

Но, к сожалению, Вы, наверное, невнимательно ознакомились с моим вопросом. Поэтому, я так понимаю, и не смогли дать вразумительный ответ.

 
KLMNC:

Всем добрый вечер!

Если не сложно, помогите разобраться. У меня советник при поступлении одного сигнала открывает сделку, и пока эту сделку не закроет - новую не открывает.

А мне нужно, чтоб он после открытия сделки, мог открывать еще сделки, если поступает соответствующий сигнал.

Заранее спасибо.


Вряд ли Вам нужен какой-то дополнительный кусок кода.

Разберитесь в простом вопросе, почему не открывает, если есть сигнал.

Найдите то место в своем коде, которое запрещает открытие новой позиции.

 
DhP:


Вряд ли Вам нужен какой-то дополнительный кусок кода.

Разберитесь в простом вопросе, почему не открывает, если есть сигнал.

Найдите то место в своем коде, которое запрещает открытие новой позиции.

Вот эта часть кода, я так понимаю. Но незнаю как ее верно изменить... Если несложно, подскажите что и как нужно изменить.

int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;

for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}

if(buys>0) return(buys);
else return(-sells);
}
 
KLMNC:
Вот эта часть кода, я так понимаю. Но незнаю как ее верно изменить... Если несложно, подскажите что и как нужно изменить.

int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0;

for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
{
if(OrderType()==OP_BUY) buys++;
if(OrderType()==OP_SELL) sells++;
}
}

if(buys>0) return(buys);
else return(-sells);
}
Если не знаете, зачем Вам эта функция, - удалите....)
 
DhP:
Если не знаете, зачем Вам эта функция, - удалите....)


Если удалить:), то тогда он открывает сделки пачками.
Причина обращения: