Подправить функцию выборочной модификации ордеров (МТ4)

MQL4 Эксперты

Техническое задание

Здравствуйте. Привожу часть кода советника по модификации (усреднении тейка профита) ордеров отдельно для buy, так и sell ордеров.

 Что нужно сделать:

1. Оптимизировать код, убрать лишние, не нужные расчеты.

2. Сделать так, чтобы последний открытый рыночный ордер не модифицировался в общую серию ордеров как для buy, так и для sell ордеров. 

3. Продумать работу функции модификации без последнего рыночного ордера, только для рыночных ордеров, так как в советнике могут быть отложенные ордера.

Укажите сроки выполнения и цену. 

С уважением, Шамиль. 

extern int t=10;

///////////////////////////////////////////////////////
      int kolOK=0;
//   int i=0;
   int kol1=0;
   int kol2=0;
   double lots1=0;
   double lots2=0;
   double sum0=0;
   double sum=0;
  // double sum1=0;
   /////////////////////////////////////////////////////////////////////
   int Total = OrdersTotal();
   for(int i=Total-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderType()==OP_BUY)
      {
       lots1=lots1+OrderLots();
       sum0=sum0+OrderLots()*OrderOpenPrice();
      // sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ; 
       kol1=kol1+1;
      }
      if (OrderType()==OP_SELL)
      {
       lots2=lots2+OrderLots();
       sum=sum+OrderLots()*OrderOpenPrice();
      // sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( )  ;
       kol2=kol2+1;
      }
   }
   ////////////////////////////////////////////////////////////////////////////
   double zeroprice1=0;
   double zeroprice2=0;
   if (lots1!=0) zeroprice1=sum0/lots1;
   if (lots2!=0) zeroprice2=sum/lots2;
   zeroprice1 = (MathRound(zeroprice1*MathPow(10,Digits)))/MathPow(10,Digits);
   zeroprice2 = (MathRound(zeroprice2*MathPow(10,Digits)))/MathPow(10,Digits);

 int res1 = 0;
 int res2 = 0;

 double zeroprice10 = NormalizeDouble(zeroprice1 + t*Point, Digits);
 double zeroprice20 = NormalizeDouble(zeroprice2 - t*Point, Digits);
 if (zeroprice10 !=0 || zeroprice20 !=0) {
   int Total2 = OrdersTotal();
   for(int in=Total2-1; in>=0; in--)
   {
      if (!OrderSelect(in,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()!=Symbol()) continue;     

           if (OrderType()==OP_BUY) {if (zeroprice10 == NormalizeDouble(OrderTakeProfit(), Digits)) res1=res1+1; else { if (OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),zeroprice10,0,CLR_NONE)) res1 = res1+1;} }

           if (OrderType()==OP_SELL){if (zeroprice20 == NormalizeDouble(OrderTakeProfit(), Digits)) res2=res2+1; else { if (OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),zeroprice20,0,CLR_NONE)) res2 = res2+1;} } 
       }   
   }

 

Откликнулись

1
Разработчик 1
Оценка
(351)
Проекты
679
56%
Арбитраж
33
15% / 39%
Просрочено
63
9%
Свободен
2
Разработчик 2
Оценка
(54)
Проекты
164
43%
Арбитраж
43
47% / 16%
Просрочено
58
35%
Свободен
3
Разработчик 3
Оценка
(169)
Проекты
460
41%
Арбитраж
39
18% / 31%
Просрочено
193
42%
Свободен
4
Разработчик 4
Оценка
(40)
Проекты
106
52%
Арбитраж
17
12% / 65%
Просрочено
25
24%
Свободен
5
Разработчик 5
Оценка
(561)
Проекты
928
48%
Арбитраж
301
59% / 25%
Просрочено
123
13%
Загружен
Похожие заказы
протестировать на тестере за последние 5 лет по золоту все возможные вписываемые параметры чтобы получилось максимальная прибыль минимальная просадка и за минимальное время стратегия —— в одновременно робот открывает и продает одинаковое заданное вручную количество лотов или же заданное вручную количество процентов от депозита чтобы робот считал сколько лотов давать ордеру каждый раз пересчитывая в зависимости от
Имеется в наличии исходный код для арбитражного бота под криптовалюту и полное описание как он функционирует. Необходимо произвести некоторую модификацию данного кода для полноценной работы. То есть исправить в коде некоторые проблемные моменты
протестировать на тестере за последние 5 лет по золоту все возможные вписываемые параметры чтобы получилось максимальная прибыль минимальная просадка и за минимальное время стратегия —— в одновременно робот открывает и продает одинаковое заданное вручную количество лотов или же заданное вручную количество процентов от депозита чтобы робот считал сколько лотов давать ордеру каждый раз пересчитывая в зависимости от
Мне нужен робот, работающий на МТ4, требования такие: 1) суточная просадка не должна быть меньше 1-2%! 2) дневная минимальная прибыль? 3) открытые ежедневно позиции должны быть закрыты в тот же день! 4) инструменты, используемые для открытия сделки, должны быть XAU/USD, GBP/USD, EURO/USD и т. д
Есть код советника (mql4 - будет предоставлен в личных сообщениях совместно с подробным ТЗ). Нужно добавить в него следующие изменения: 1. Добавить четкие комментарии во все ордера советника (типа Sell 01, Sell 02 ... Sell 30 или Buy 01 и т.п.) В текущем советнике комментарии одинаковые и регулируются переменной. 2. Добавить в советника время торговли по времени (интервал времени указывается в настройках). 3
Добрый день! В прошлом году писал Тех.Задание на создание робота (сеточник без мартингейл). Нашел программиста- продукт создали, работает корректно (согласно ТЗ). В апреле этого года возникла идея изменить принцип фиксации прибыли с сеточной (когда все ордера закрываются одновременно по совокупной прибыли) на индивидуальные тэйк-профиты для каждого ордера. Плюс добавить опцию (вкл./выкл) чтобы робот отслеживал
Создать робота который будет открывать сделку исходя из сформированной свечи (размером от.....) на таймфрейме 1м-h1. С возможностью задать в настройках тейк и стоп.Как только свеча закрылась робот должен сразу открыть сделку в том же направлении что и свеча закрылась на заданное количество пунктов.Робот одновременно должен сканировать от 20 валютных пар на таймфрейме(от м1 до h1). И чтоб в нём была кнопка торговли в
Существует тестер который я уже приобрел, он работает только на мт 4. А мне нужно чтоб он работал на мт 5. В приоритете сохранить все функции. Вот ссылка на тестер. https://msfx-tester.ru/
Есть текущий сеточный советник я хочу его модифицировать либо же создать с нуля новый сеточный мультивалютный советник. Мультивалютность нужна для уменьшения просадки и с целью частичного хеджирования. Нужен человек кто делал что-то подобное и имеет опыт написания мультивалютных советников
Усовершенствовать предоставленный советник для минимизации просадки и зависших ордеров, методом частичного хеджирования Советник должен по итогу быть работоспособным, проходит проверку на валидацию без ошибок. Обеспечение корректной работы советника на платформе MT5 . Минимизация нагрузки на систему для обеспечения быстрого тестирования в тестере стратегий

Информация о проекте

Бюджет
10 - 15 USD
Исполнителю
9 - 13.5 USD
Сроки выполнения
от 1 дн.