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

sell 20-40tp l 25 griglia l 10 ordini.mq4

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

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

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

О программе

Данный продукт представляет собой скрипт для платформы MetaTrader 4, предназначенный для размещения нескольких ордеров типа продажи (Sell, Sell Stop, Sell Limit) на рынке. Тип ордера определяется автоматически в зависимости от позиции курсора пользователя на графике при запуске скрипта.

Скрипт позволяет сформировать серию ордеров с заданным расстоянием между ними, используя параметры объёма, стоп-лосса, тейк-профита и количества позиций. Встроена обработка типичных торговых ошибок с повторной попыткой отправки ордера и корректировкой параметров при конфликтах с требованиями брокера.

При работе скрипт отображает информационную метку на графике и воспроизводит звуковой сигнал по завершении размещения ордеров. Все торговые операции выполняются через стандартный торговый API MetaTrader 4.

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

НастройкаОписание
Lots Объём лота — Объём лота для каждого размещаемого ордера.
StopLoss Стоп-лосс — Уровень стоп-лосса, задаваемый в пунктах относительно цены ордера.
TakeProfit Тейк-профит — Уровень тейк-профита, задаваемый в пунктах относительно цены ордера.
PipsDistance Расстояние в пунктах — Расстояние в пунктах между последовательными ордерами в сформированной серии.
NTickets Количество ордеров — Количество ордеров, размещаемых последовательно с заданным расстоянием между ними.
Time Expiration (TimeLenght) Время истечения — Время истечения срока действия ордера, задаваемое в виде таймфрейма (доступны значения в часах и минутах).
Comment (Comm) Комментарий — Текстовый комментарий, присваиваемый каждому размещаемому ордеру для идентификации в истории торгов.
Loading Text (Text) Текст заголовка — Текст заголовка, отображаемого на графике в процессе размещения ордеров.
Color Цвет — Цвет информационной метки, отображаемой на графике в процессе размещения ордеров.
Получить полный код

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

#property version   "1.00"
#property strict

#define MAGICMA  1337

int CheckError=0;
bool CanSendOrder=true;
int CurrencyDigits=0;
double DropPoint;
int Slippage=10;

int Type;  // Market Buy
int Type2;  // Market Stop

extern double Lots=0.01;
extern double StopLoss=20;
extern double TakeProfit=40;

extern double PipsDistance=2.5;
extern int NTickets=10;

extern datetime TimeLenght=PERIOD_D1;           //Time Expiration

extern string Comm="Sell Market / Sell Drop";   //Comment
extern string Text="Placing Orders";            //Loading Text
extern color Color=clrNONE;

double _Freeze=0;

void OnStart()
  {
      // код доступен только после оплаты
   }

void SendOrder(int _Type,double _Lots,double _Price,double _Distance,double _StopLoss,double _TakeProfit,string _Comment,datetime _Time,color _Color=clrNONE)
  {
   double _PriceNorm=0;
   double _StopLossNorm=0;
   double _TakeProfitNorm=0;

   int _error=0;

   for(int i=0; i<10 && CanSendOrder; i++)
     {

      _PriceNorm=NormalizeDouble(_Price -(((_Distance+_Freeze)*10)*Point),CurrencyDigits);
      _StopLossNorm=NormalizeDouble(_PriceNorm+((_StopLoss*10)*Point),CurrencyDigits);
      _TakeProfitNorm=NormalizeDouble(_PriceNorm -((_TakeProfit*10)*Point),CurrencyDigits);

      if(_Type==OP_SELLLIMIT)
        {
         _PriceNorm=NormalizeDouble(_Price+(((_Distance+_Freeze)*10)*Point),CurrencyDigits);
         _StopLossNorm=NormalizeDouble(_PriceNorm+((_StopLoss*10)*Point),CurrencyDigits);
         _TakeProfitNorm=NormalizeDouble(_PriceNorm -((_TakeProfit*10)*Point),CurrencyDigits);
        }

      _error=OrderSend(Symbol(),
                       _Type,
                       _Lots,
                       _PriceNorm,
                       Slippage,
                       _StopLossNorm,
                       _TakeProfitNorm,
                       _Comment,
                       MAGICMA,
                       _Time,
                       _Color);

      if(_error==-1)
        {

         int _FixError=GetLastError();

         if(_FixError==130)
           {

               _Freeze+=2;
           }

         Sleep(100);
        }
      else
         break;
     }

   if(_error==-1)
     {
      CanSendOrder=false;

      string _ErrorComment;
      int _LastErrorFound=GetLastError();

      switch(_LastErrorFound)
        {
         case 1:
            _ErrorComment="ERR_NO_RESULT";
            break;
         case 2:
            _ErrorComment="ERR_COMMON_ERROR";
            break;
         case 3:
            _ErrorComment="ERR_INVALID_TRADE_PARAMETERS";
            break;
         case 4:
            _ErrorComment="ERR_

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

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

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

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

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

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

Стоимость полного кода
481,60₽ ≈ $5.89