Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Когда новая версия пройдёт проверку модератором, библиотека по ссылке будет доступна.
Иногда, ответить на вопрос USERa сложнее, чем просто промолчать: не понимаю, как можно придумывать причины на неспособность открыть ЛЮБОЙ архив???
Чего проще - выложил для Вас шаблон, через который можно пользоваться НЕ ТОЛЬКО функцией встречного закрытия, НО и другими функциями торговых операций из моей библиотеки, не заморачиваясь с её структурой.
ХОРОШО, когда у каждого из нас существует выбор. Но нужно понимать - есть структура на уровне функции, есть на уровне комплекса функций (библиотека), выполняющих единую задачу, а есть структура на уровне комплекса библиотек - это РАЗНЫЕ вещи.
В Вашем случае - ничем помочь не смогу.
Вот попроще (автор getch):
Спасибо! Немного поправил, чтобы не ругался МТ4 (код ниже).
Подскажите, что нужно прописать в коде, чтобы закрывались ордера на установленной паре только в случае одинаковых объемов открытых рыночных ордеров и только в сумме прибыльных (с учетом комиссии и свопов)?
void LockOFF( )
{
bool ret;
int BuyTicket, SellTicket;
BuyTicket = GetOrderTicket1(Symbol(), OP_BUY, MagicNumber);
SellTicket = GetOrderTicket1(Symbol(), OP_SELL, MagicNumber);
while ((BuyTicket != -1) && (SellTicket != -1))
{
ret=OrderCloseBy(BuyTicket, SellTicket);
BuyTicket = GetOrderTicket1(Symbol(), OP_BUY, MagicNumber);
SellTicket = GetOrderTicket1(Symbol(), OP_SELL, MagicNumber);
}
return;
}
bool ret2;
int GetOrderTicket1( string inSymbol, int Type, int mn=-1 )
{
int Pos, Total = OrdersTotal();
for (Pos = 0; Pos < Total; Pos++)
{
ret2=OrderSelect(Pos, SELECT_BY_POS);
if (OrderMagicNumber()==mn)
if (OrderSymbol() == inSymbol)
if (OrderType() == Type)
return(OrderTicket());
}