Доработка советника

MQL4 Asesores Expertos

Trabajo finalizado

Plazo de ejecución 1 día

Tarea técnica

Прошу выполнить доработку советника Ambush для mt4
1. Выполнить возможность установки в параметрах настройки любого фиксированного, в том числе минимального лота 0,01.
2. Выполнить возможность установки в параметрах настройки любого реального а не виртуального TP и SL при срабатывании отложенного ордера.
3. Выполнить в коде автоматическое удаление противоположного отложенника при срабатывании любого из двух ордеров.
Советник прилагается. Заранее благодарю.
//+----------------------------------------------------------------------------+
//| Засада.mq4 |
//| Zuzabush |
//| www.Zuzabush@yandex.ru |
//| |
//| |
//| |
//| |
//| |
//+----------------------------------------------------------------------------+
#property copyright «Zuzabush»
#property link «www.Zuzabush@yandex»
//------- Внешние параметры советника -----------------------------------------+
extern bool AllSymbols = False; // Управлять всеми стоповыми ордерами
extern int Otstup = 10; // Начальная дистанция
extern int TrailingStop = 10; // Фиксированный размер трала отл
extern int TrailingStep = 1; // Шаг трала отл
extern int PK = 15; // Коэф вирт профит
extern int SK = 1; // Коэф вирт стоп
extern bool UseSound = True; // Использовать звуковой сигнал
extern bool ShowComment = True; // Показывать комментарий
extern color clModifyBuy = Aqua; // Цвет значка модификации покупки
extern color clModifySell = Tomato; // Цвет значка модификации продажи
//------- Глобальные переменные советника -------------------------------------+
bool gbNoInit = False; // Флаг неудачной инициализации
string SoundSuccess = «ok.wav»; // Звук успеха
string SoundError = «timeout.wav»; // Звук ошибки
int NumberOfTry = 3; // Количество торговых попыток
double Take;
//------- Подключение внешних модулей -----------------------------------------+
#include <stdlib.mqh> // Стандартная библиотека
//+----------------------------------------------------------------------------+
//| |
//| ПРЕДОПРЕДЕЛЁННЫЕ ФУНКЦИИ |
//| |
//+----------------------------------------------------------------------------+
//| expert initialization function |
//+----------------------------------------------------------------------------+
void init() {
gbNoInit=False;
if (!IsTradeAllowed()) {
Comment(«Для нормальной работы советника необходимо\n»+
«Разрешить советнику торговать»);
gbNoInit=True; return;
}
if (!IsLibrariesAllowed()) {
Comment(«Для нормальной работы советника необходимо\n»+
«Разрешить импорт из внешних экспертов»);
gbNoInit=True; return;
}
if (!IsTesting()) {
if (IsExpertEnabled()) Comment(«Советник будет запущен следующим тиком»);
else Comment(«Отжата кнопка \»Разрешить запуск советников\"");
}
start();
}
//+----------------------------------------------------------------------------+
//| expert deinitialization function |
//+----------------------------------------------------------------------------+
void deinit() { if (!IsTesting()) Comment(""); }
//+----------------------------------------------------------------------------+
//| expert start function |
//+----------------------------------------------------------------------------+
void start() {
bool result;
int error;
int Lots;
int order;
int KO = AccountBalance()/100; 
Lots = KO;
if (OrdersTotal()<1||((OrdersTotal()<2)&&(OrderType()==OP_BUYSTOP))) //если, то открываем
order=OrderSend(Symbol(),OP_SELLSTOP,Lots*0.1,Bid-Otstup*Point,3,0,0,"",16384,0,Green);
if ((OrderType()==OP_SELLSTOP)&&(OrdersTotal()<2)) //если, то открываем
order=OrderSend(Symbol(),OP_BUYSTOP,Lots*0.1,Ask+Otstup*Point,3,0,0,"",16384,0,Green);
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
if (((AccountEquity()-AccountBalance())>KO*PK)||(AccountEquity()-AccountBalance())<-KO*SK )
{ if(OrderType()==OP_BUY) result= OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),MarketInfo(OrderSymbol(),MODE_DIGITS)),3,CLR_NONE);
if(OrderType()==OP_SELL) result= OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),MarketInfo(OrderSymbol(),MODE_DIGITS)),30,CLR_NONE);
if (OrderType()==OP_BUYLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_SELLSTOP)
OrderDelete(OrderTicket());
if(result!=TRUE) { error=GetLastError();
Print(«LastError = »,error, " ",Symbol()); }
else error=0; }
else Print( «Error when order select », GetLastError());
if (gbNoInit) {
Comment(«Не удалось инициализировать советник!»); return;
}
if (IsTesting()) {
if (ShowComment) {
Comment(IIFs(AllSymbols, «AllSymbols », "")
,«TrailingStop=», DoubleToStr(TrailingStop, 0), «п. „
,“TrailingStep=», DoubleToStr(TrailingStep, 0), «п. „
,IIFs(UseSound, “UseSound », "")
);
} else Comment("");
}
for (int i=0; i<OrdersTotal(); i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (AllSymbols || OrderSymbol()==Symbol()) {
TrailingOrders();
}
}
}
}
//+----------------------------------------------------------------------------+
//| Версия: 01.09.2005 |
//| Описание: Возвращает наименование торговой операции |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| op — идентификатор торговой операции |
//+----------------------------------------------------------------------------+
string GetNameOP(int op) {
switch (op) {
case OP_BUY: return(«Buy»);
case OP_SELL: return(«Sell»);
case OP_BUYLIMIT: return(«BuyLimit»);
case OP_SELLLIMIT: return(«SellLimit»);
case OP_BUYSTOP: return(«BuyStop»);
case OP_SELLSTOP: return(«SellStop»);
default: return(«Unknown Operation»);
}
}
//+----------------------------------------------------------------------------+
//| Версия: 18.07.2008 |
//| Описание: Возвращает одно из двух значений взависимости от условия. |
//+----------------------------------------------------------------------------+
color IIFc(bool condition, color ifTrue, color ifFalse) {
if (condition) return(ifTrue); else return(ifFalse);
}
//+----------------------------------------------------------------------------+
//| Версия: 01.02.2008 |
//| Описание: Возвращает одно из двух значений взависимости от условия. |
//+----------------------------------------------------------------------------+
string IIFs(bool condition, string ifTrue, string ifFalse) {
if (condition) return(ifTrue); else return(ifFalse);
}
//+----------------------------------------------------------------------------+
//| Версия: 28.11.2006 |
//| Описание: Модификация одного предварительно выбранного ордера. |
//+----------------------------------------------------------------------------+
void ModifyOrder(double pp=-1, double sl=0, double tp=0, datetime ex=0) {
bool fm;
color cl=IIFc(OrderType()==OP_BUY
|| OrderType()==OP_BUYLIMIT
|| OrderType()==OP_BUYSTOP, clModifyBuy, clModifySell);
double op, pa, pb, os, ot;
int dg=MarketInfo(OrderSymbol(), MODE_DIGITS), er, it;
if (pp<=0) pp=OrderOpenPrice();
if (sl<0 ) sl=OrderStopLoss();
if (tp<0 ) tp=OrderTakeProfit();
pp=NormalizeDouble(pp, dg);
sl=NormalizeDouble(sl, dg);
tp=NormalizeDouble(tp, dg);
op=NormalizeDouble(OrderOpenPrice(), dg);
os=NormalizeDouble(OrderStopLoss(), dg);
ot=NormalizeDouble(OrderTakeProfit(), dg);
if (pp!=op || sl!=os || tp!=ot) {
for (it=1; it<=NumberOfTry; it++) {
while (!IsTradeAllowed()) Sleep(5000);
RefreshRates();
fm=OrderModify(OrderTicket(), pp, sl, tp, ex, cl);
if (fm) {
if (UseSound) PlaySound(SoundSuccess); break;
} else {
er=GetLastError();
if (UseSound) PlaySound(SoundError);
pa=MarketInfo(OrderSymbol(), MODE_ASK);
pb=MarketInfo(OrderSymbol(), MODE_BID);
Print(«Error(»,er,") modifying order: ",ErrorDescription(er),", try ",it);
Print(«Ask=»,pa," Bid=",pb," sy=",OrderSymbol(),
" op="+GetNameOP(OrderType())," pp=",pp," sl=",sl," tp=",tp);
Sleep(1000*10);
}
}
}
}
//+----------------------------------------------------------------------------+
//| Сопровождение ордеров простым тралом |
//+----------------------------------------------------------------------------+
void TrailingOrders() {
double di, pa, pb, pp, sl, tp;
pp=MarketInfo(OrderSymbol(), MODE_POINT);
if (OrderType()==OP_BUYSTOP) {
pa=MarketInfo(OrderSymbol(), MODE_ASK);
if (OrderOpenPrice()-pa!=(TrailingStop+TrailingStep-1)*pp) {
di=OrderOpenPrice()-pa-TrailingStop*pp;
ModifyOrder(pa+TrailingStop*pp, sl, tp);
}
}
if (OrderType()==OP_SELLSTOP) {
pb=MarketInfo(OrderSymbol(), MODE_BID);
if (pb-OrderOpenPrice()!=(TrailingStop+TrailingStep-1)*pp) {
di=pb-OrderOpenPrice()-TrailingStop*pp;
ModifyOrder(pb-TrailingStop*pp, sl, tp);
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

Archivos adjuntos:

MQ4
Ambush.mq4
10.4 Kb
EX4
Ambush.ex4
15.9 Kb

Han respondido

1
Desarrollador 1
Evaluación
(2)
Proyectos
3
33%
Arbitraje
1
0% / 100%
Caducado
0
Libre
2
Desarrollador 2
Evaluación
(23)
Proyectos
31
71%
Arbitraje
0
Caducado
1
3%
Libre
3
Desarrollador 3
Evaluación
(66)
Proyectos
143
34%
Arbitraje
10
10% / 60%
Caducado
26
18%
Libre
4
Desarrollador 4
Evaluación
Proyectos
3
33%
Arbitraje
3
0% / 100%
Caducado
1
33%
Libre
5
Desarrollador 5
Evaluación
(241)
Proyectos
387
51%
Arbitraje
14
14% / 14%
Caducado
43
11%
Libre
6
Desarrollador 6
Evaluación
(76)
Proyectos
136
45%
Arbitraje
11
27% / 64%
Caducado
26
19%
Libre
7
Desarrollador 7
Evaluación
(127)
Proyectos
183
55%
Arbitraje
3
33% / 33%
Caducado
6
3%
Libre
8
Desarrollador 8
Evaluación
Proyectos
0
0%
Arbitraje
0
Caducado
0
Libre
Solicitudes similares
Нужно отвязать робота от счета демо и реал. Так что бы всё работало так же, что б всё функции сохранились. Напишите, пожалуйста цену и сроки. Не знаю что ещё нужно писать, спрашивайте)
Нужно добавить защиту в советник для МТ4. 1. проверка счета на котором он торгует в каком либо форекс дилере. Мне будут присылать номер счета я буду его вписывать в код чтоб другой не мог им пользоваться. 2. Защита по работе по времени. Нужно иметь возможность прописать дату в время в коде начала и окончания если за пределы ее вышел он будет писать что больше не торгует. 3. Защита от копирования данного советника
Нужен робот на MQL4, требования ниже. При отклике пожалуйста указывайте цену и срок. RSI RSI - Использовать close, high, low, max (open, close), min(open, close) в расчете с использованием сглаженной линии RSI Переменные: - Overbought Level - 60 по умолчанию, но нужно, чтобы он был регулируемым - Oversold Level - 40 по умолчанию, но нужно, чтобы он был переменной - RSI Smooth Length - количество свечей, по которым
Нужно доработать утилиту добавить новые функции, изменить интерфейс. Нужен человек имеющий опыт по связи терминала с Телеграм, по средствам Телеграм АПИ, нужно добавить 2 новые функции в утилиту. Подробнее в ТЗ, изменения нужно внести для мт4/5 версии
dify indicator MA_Cloud for mt4 and mt5, give source code with comments 1)Need to change alerts and arrows for cross price only true 2 MA without crossing (direction from small to big) 2)Fix the error when change to any timeframe for MA (disapeer) and for arrows (in history is very big on vertically out of see screenshot) 3)Add alerts for crossing of 2 MA (MA Small cross MA big) Arrows, Message, Sound - (True/False)
Изменить графический интерфейс утилиты, исправить расположение кнопок, изменить вид некоторых окон и добавить новые. Сохранить текущую адаптивность и работоспособность кнопок. Подробнее расскажу в ТЗ с наглядными скриншотами, что и где поменять. Правки нужно внести в МТ4 и МТ5 версии. Спасибо за ваши заявки, рассмотрю каждую
Ищу испольнителя для реализации соедующего советника. 1. Идея торговой системы : входы после импульса (стремительного движения цены) на откате после пересечения МА#1 and MA#2 с указанным в настройках периодом в направлении текущего тренда . 2. Тренд определяется по МА#3 с указанным в настройках периодом. Может быть отключенным в настройках. Тогда определяющим тренда будет МА#2. 3. Импульс. Указанное в настройках
Здравствуйте. Необходимо внедрить защиту советника на платформе MetaTrader 5 (MT5). На ПК устанавливается защищенная программа с ограниченным лимитом безопасных запусков. Например, такой лимит может быть установлен на один запуск. Это означает, что после первого запуска программы на ПК она интегрируется в систему управления Windows в статусе администратора, собирает необходимые данные для привязки советника и
Написать советник при помощи машинного обучение Нужен торговый советник с определенной стратегий ( нужно его оптимизировать и обучить что бы они имел возможность сама обучение при торговли в прошлом ) нужен профи кто подобное сделает ( интересует цена на данную услугу и время на выполнения )
Необходимо разработать робота для Metatrader 5 на основе стандартного индикатора объемов из MT5 Volumes который открывается в отдельном окне. ТЗ продублировано в прикрепленном файле. Разработать торгового робота для мт5 Робот должен работать на MT 5 на 4 ч. Используемый встроенный в MT 5 индикатор Volumes . Робот торгует каждый день, один раз в день. Настраиваемые параметры Максимальный объем ( MaxVolumes ) = Время

Información sobre el proyecto

Presupuesto
10 - 20 USD
Para el ejecutor
9 - 18 USD
Plazo límite de ejecución
de 2 a 4 día(s)