Доработка скрипта

 

Уважаемые господа. Мне требуется скрипт для быстрого закрытия всех позиций.

Сейчас я использую скрипт MyCloseAll.mq4, входящий в поставку MT4 (прилагаю).

Но он работает только с одной парой и часто останавливается (может быть из-за requote, а может по другим причинам мне неизвестным).

Можете ли вы создать скрипт, который:

- закрывает все позиции buy и sell для всех валютных пар;
- удаляет все buy limit и sell limit.
- удаление происходит, начиная с самых убыточных позиций и заканчивая самыми прибыльными (или наименее убыточными);
- срабатывает надежно - не прерываясь ни в коем случае.

Оплату гарантирую.

Жду ваши предложения на email: a.likhachev@gmail.com

PS

Извините, если в этом разделе не принято размещать заказы на разработку, но другого подходящего раздела на форуме я не нашел

Файлы:
 

Вам денег девать некуда? наверняка таких скриптов накидано по сети уже кучи и даже больше... Поищите хотя бы на этом форуме

вот с ветки чуть выше (помоему оттуда) но того форумянина точно ( прописан в авторах). Закрывает все позиции в нужное время. Ну а ежели вам и правда денег девать некуда и лень поюзать гуглю, то желающих будет много :)) где один инструмент поставьте тру/фолс в зависимости от нужд. Не юзал но в качетсве не сомневаюсь =) Если лень прокомпелировать-в подвале готовый =))))))

/+------------------------------------------------------------------+
//|                                                  CloseOnTime.mq4 |
//|                                           Ким Игорь В. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//| Советник в нужное время закрывает все позиции.                   |
//+------------------------------------------------------------------+
#property copyright "Ким Игорь В. aka KimIV"
#property link      "http://www.kimiv.ru"

//---- input parameters
extern int   CloseHour     = 7;      // Время закрытия, часы
extern int   CloseMinute   = 0;      // Время закрытия, минуты
extern bool  UseCurrSymbol = False;  // Использовать только один инструмент
extern bool  UseOneAccount = False;  // Использовать только один счёт
extern int   NumberAccount = 11111;  // Номер торгового счёта
extern int   Slippage      = 3;      // Проскальзывание цены
extern color clCloseBuy    = Blue;   // Цвет закрытия покупки
extern color clCloseSell   = Red;    // Цвет закрытия продажи

void start() {
  double pBid, pAsk;

  if (UseOneAccount && AccountNumber()!=NumberAccount) {
    Comment("Работа на счёте: "+AccountNumber()+" ЗАПРЕЩЕНА!");
    return;
  } else Comment("");

  if (Hour()==CloseHour && Minute()>=CloseMinute) {
    for (int i=OrdersTotal()-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
        if (!UseCurrSymbol || OrderSymbol()==Symbol()) {
          if (OrderType()==OP_BUY) {
            pBid=MarketInfo(OrderSymbol(), MODE_BID);
            OrderClose(OrderTicket(), OrderLots(), pBid, Slippage, clCloseBuy);
          }
          if (OrderType()==OP_SELL) {
            pAsk=MarketInfo(OrderSymbol(), MODE_ASK);
            OrderClose(OrderTicket(), OrderLots(), pAsk, Slippage, clCloseSell);
          }
        }
      }
    }
  }
}
//+------------------------------------------------------------------+
Файлы:
 
Goodwill писал (а) >>

Уважаемые господа. Мне требуется скрипт для быстрого закрытия всех позиций.

.....

--------------------------------------------------------------------------------------------------------

Мил человек, в закромах форума действительно хватает подобных скриптов и советников, есть неплохой вариант скрипта от Mandor-a, совсем скромный по размеру.

//+------------------------------------------------------------------+
//|                                              Закр все ордера.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "mandorr@gmail.com"
#include <WinUser32.mqh>
void start()
{
   string title="Скрипт";
   string msg="Закрыть все ордера BUY и SELL?    ";
   if (MessageBox(msg,title,MB_YESNO|MB_ICONQUESTION)!=IDYES) return;
   int slippage=2;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
      if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage);
      if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage);
   }
}
// End