'Закрыть все'/'Открыть' инструменты - страница 2

 
glader:
Я торгую в режиме LIVE. Вы торгуете в реальном времени? Может ли это быть проблемой? Заранее спасибо за помощь...

Это был демо-счет Альпари.

Вы имеете в виду, что пытались использовать его на реальном счете?

Должно работать также.

 
newdigital:
Это был демо-счет Альпари.

Вы имеете в виду, что пытались использовать его с реальным счетом?

Должно работать также.

Да, я пытался использовать его с реальным счетом в реальном времени, но там было сообщение об ошибке...

Я совсем запутался, но все равно спасибо за помощь...

 
glader:
Я попробовал, но ERROR : 4109

Tools->Options->ExpertAdvisors-> V Enable ExpertAdvisors(...and Scripts)

 
ma6:
Tools->Options->ExpertAdvisors-> V Enable ExpertAdvisors(...and Scripts)

Большое спасибо... теперь все работает!!!

 

CloseOnTime EA из Kimiv.

Файлы:
 
ma6:
Tools->Options->ExpertAdvisors-> V Enable ExpertAdvisors(...and Scripts)

Я все еще получаю ту же ошибку. Что вы имеете в виду под"V"?

спасибо

 

У меня такая же проблема.

Ордер ...... не удалось закрыть .Error:4109

 

Закрыть все открытые ордера

У меня вопрос о том, как закрыть все открытые сделки. Сюда входят сделки, которые были открыты вручную.

Вот код:

if(BalanceEquityProtectionLevel > 0 && AccountEquity() <= AccountBalance()* BalanceEquityProtectionLevel)

{

AllowTrading = false;

Print("Min. Equity Level Reached - Trading Halted For ",Symbol());

// Alert("Min. Equity Level Reached - Trading Halted For ",Symbol());

for(cnt=OrdersTotal();cnt>=0;cnt--)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

mode=OrderType();

if (mode==OP_BUY) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Blue); }

if (mode==OP_SELL) { OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage,Red); }

// }

}

}

Проблема в том, что если я открыл несколько пар, то не всегда верно, что все сделки будут закрыты. Более того, случалось, что советник продолжал открывать еще одну сделку, несмотря на параметр allowtrading == false.

Я отлаживал эту штуку и заметил, что по какой-то причине этот блок кода выполнялся не для всех пар. Почему, я не знаю. Кто-нибудь знает ответ на этот вопрос?

Этот блок должен закрыть все открытые ордера и предотвратить дальнейшую торговлю. Может быть, я могу решить эту проблему, записав параметр false в файл или что-то еще? Проблема в этой ситуации возникает и с парами, у которых нет открытых ордеров.

Спасибо.

Деян

 

Вот мой код, который я написал давным-давно, он закроет все запущенные позиции.

#include

#include

int start()

{

double sA;

int cnt, totalOrders;

totalOrders = OrdersTotal();

if (totalOrders>0)

{

for (cnt=0;cnt<totalOrders;cnt++)

{

OrderSelect(0, SELECT_BY_POS);

if (OrderType() == OP_BUY) sA = MarketInfo(OrderSymbol(),MODE_BID);

else sA = MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),sA,3,CLR_NONE);

}

}

return(0);

}

 

Ваш код очень похож на мой. Результаты одинаковые. Я приложил картинку, чтобы некоторые вещи были более понятны.

Советник действительно закрывает все сделки по паре GBPUSD (рисунок). Как вы можете видеть, после этого открывается еще одна сделка. (1 означает, что allowtrade - true, 0 allowtrade - false).

Файлы:
image3.jpg  359 kb
Причина обращения: