Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Скрипт закрытия ордеров - скрипт для MetaTrader 4

Просмотров:
9171
Рейтинг:
(5)
Опубликован:
2010.02.26 09:00
Обновлен:
2014.04.21 14:54
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Описание:

Скрипт служит для ускорения закрытия сделок.

//+------------------------------------------------------------------+
#property copyright "Vladimir Khlistov"
#property link      "http://cmillion.narod.ru"
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
 
int   Magic  = 0; //если Magic  = 0 закрывать все

//+------------------------------------------------------------------+
int start()
{  
   bool error=true;
   int Ошибка;
   string txt="Cкрипт закрытия ордеров";
   if (Magic!=0)  txt=StringConcatenate(txt," с Magic=",Magic);
   Comment("");
   int ret=MessageBox("Закрыть все ордера (Да)   Закрыть только профитные (Нет)",
       txt, MB_YESNOCANCEL|MB_TOPMOST);
   if (ret==IDCANCEL) return;
   for (int j = 0; j < OrdersTotal(); j++)
   {
      if (OrderSelect(j, SELECT_BY_POS))
      {
         if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic || Magic == 0))
         {
            if (ret==IDNO && OrderProfit()<0) continue;
            if (OrderType()==OP_BUY ) 
            {
               error=OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
               if (error) Alert("Закрыт ордер N ",OrderTicket(),"  прибыль ",OrderProfit(),
                                  "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
            if (OrderType()==OP_SELL) 
            {
               error=OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
               if (error) Alert("Закрыт ордер N ",OrderTicket(),"  прибыль ",OrderProfit(),
                                  "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
            if (!error) 
            {
               Ошибка = GetLastError();
               if (Ошибка<2) continue;
               if (Ошибка==129) 
               {
                  j--;
                  Sleep(5000);
                  RefreshRates();
                  continue;
               }
               if (Ошибка==146) 
               {
                  int ret1=MessageBox("Подсистема торговли занята"," ", 
                      MB_RETRYCANCEL|MB_TOPMOST|MB_ICONWARNING);
                  if (ret1==IDCANCEL) return;
                  j--;
                  if (IsTradeContextBusy()) Sleep(2000);
                  continue;
               }
               Comment("Ошибка ",Ошибка," закрытия ордера N ",OrderTicket(),
                       "     ",TimeToStr(TimeCurrent(),TIME_MINUTES));
            }
         }
      }
   }
   return(0);
}
//+------------------------------------------------------------------+

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

Ingrit 7 Ingrit 7

Pivot + Marginal

TrendValue TrendValue

Гибкий трендовый индикатор. Добавите его к своей торговой стратегии, чтобы четко определить момент, когда тренд сменился.

A Tool: Peak Volume Counter A Tool: Peak Volume Counter

Отображает на графике цены скачки тиковых объемов

Grid Grid

Выставляет сетку отложенных ордеров.