← К каталогу
Исходный код · ID 4547

#_buy_sell_x_ orders_script_v1.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Это скрипт для MetaTrader 4, предназначенный для быстрого открытия серии рыночных ордеров одного направления. При запуске пользователь выбирает направление (покупка или продажа), после чего скрипт последовательно отправляет до семи ордеров с заданными объёмами. Перед отправкой выполняется проверка разрешения автоматической торговли и допустимости торговли в терминале, а также проверка соответствия объёмов минимальному лоту брокера.

Скрипт имеет настраиваемые параметры: направление сделки, допустимое проскальзывание, магический номер, уровни стоп-лосс и тейк-профит, а также семь отдельных значений лота. Ордера выставляются по текущей рыночной цене с одинаковыми уровнями защиты для всех позиций серии.

После отправки ордеров скрипт воспроизводит звуковой сигнал и выводит в журнал результат последней операции. При ошибке отправки в журнал записывается код ошибки. Скрипт не содержит логики сопровождения позиций и завершает работу после однократного выполнения.

Настройки программы

НастройкаОписание
buy_sell Выбор направления сделки: покупка (Buy) или продажа (Sell). Определяет тип и цену отправляемых ордеров.
Slippage Максимально допустимое отклонение цены исполнения от запрошенной при отправке ордера, в пунктах.
magicz Магический номер, присваиваемый отправляемым ордерам для их идентификации.
StopLoss Размер защитного стоп-лосса в пунктах. При значении 0 стоп-лосс не устанавливается.
TakeProfit Размер тейк-профита в пунктах. При значении 0 тейк-профит не устанавливается.
Lots_1 Объём первого ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_2 Объём второго ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_3 Объём третьего ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_4 Объём четвёртого ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_5 Объём пятого ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_6 Объём шестого ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Lots_7 Объём седьмого ордера серии. Значение должно быть не меньше минимального лота брокера, иначе скрипт прервёт работу с предупреждением.
Получить полный код

Поиск по коду файла

#property version   "1.00"
#property strict

#property show_confirm
#property show_inputs

enum bs
{
  a = 0, // Buy
  b = 1, // Sell
};  

input bs buy_sell = a; // Selecton: Buy or Sell
input int Slippage  = 3; // Slippage
input int magicz = 12; // magic number
input int StopLoss = 0;
input int TakeProfit = 0;

input double Lots_1 = 0.01; // Order 1
input double Lots_2 = 0.02; // Order 2
input double Lots_3 = 0.03; // Order 3
input double Lots_4 = 0.04; // Order 4
input double Lots_5 = 0.00; // Order 5
input double Lots_6 = 0.00; // Order 6
input double Lots_7 = 0.00; // Order 7

int OT, ticket;
double OP;

double SLx, TPx;

void OnStart()
{
      // код доступен только после оплаты
   }
  if(!IsExpertEnabled())
  {
    MessageBox("You need to enable AutoTrading! "+" Check your Settings!");
    return;
  }

  if(!IsTradeAllowed())
  {
    MessageBox("You need to Allow Live Trading! "+" Check your Settings!"+"\n"+
                    "Common tab -> Live Trading -> Allow live trading");
    return;
  }

  if(buy_sell == a)
  {
    OT = 0;
    OP = Ask;
  }
  if(buy_sell == b)
  {
    OT = 1;
    OP = Bid;
  }     

  double ML = MarketInfo(NULL,MODE_MINLOT);     

  if((Lots_1>0 && Lots_1<ML) || (Lots_2>0 && Lots_2<ML) || (Lots_3>0 && Lots_3<ML) || (Lots_4>0 && Lots_4<ML) || (Lots_5>0 && Lots_5<ML) || (Lots_6>0 && Lots_6<ML) || (Lots_7>0 && Lots_7<ML))

  {
    PlaySound("Alert.wav");
    MessageBox("Order lot/s value less than broker minimum " + DoubleToStr(ML,2) + " lots"); return;
  }     

  if(buy_sell == a && StopLoss > 0)          // Buy -> SL > 0
  {
     SLx = Ask - Sto

Показано первые 50% кода (символов: 2375)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
237,50₽ ≈ $2.90