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

MQL4 Esperti

Lavoro terminato

Tempo di esecuzione 1 giorno

Specifiche

Прошу выполнить доработку советника 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);
}
}
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

File:

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

Con risposta

1
Sviluppatore 1
Valutazioni
(2)
Progetti
3
33%
Arbitraggio
1
0% / 100%
In ritardo
0
Gratuito
2
Sviluppatore 2
Valutazioni
(23)
Progetti
31
71%
Arbitraggio
0
In ritardo
1
3%
Gratuito
3
Sviluppatore 3
Valutazioni
(66)
Progetti
143
34%
Arbitraggio
10
10% / 60%
In ritardo
26
18%
Gratuito
4
Sviluppatore 4
Valutazioni
Progetti
3
33%
Arbitraggio
3
0% / 100%
In ritardo
1
33%
Gratuito
5
Sviluppatore 5
Valutazioni
(241)
Progetti
387
51%
Arbitraggio
14
14% / 14%
In ritardo
43
11%
Gratuito
6
Sviluppatore 6
Valutazioni
(76)
Progetti
136
45%
Arbitraggio
11
27% / 64%
In ritardo
26
19%
Gratuito
7
Sviluppatore 7
Valutazioni
(127)
Progetti
183
55%
Arbitraggio
3
33% / 33%
In ritardo
6
3%
Gratuito
8
Sviluppatore 8
Valutazioni
Progetti
0
0%
Arbitraggio
0
In ritardo
0
Gratuito
Ordini simili
Нужно отвязать робота от счета демо и реал. Так что бы всё работало так же, что б всё функции сохранились. Напишите, пожалуйста цену и сроки. Не знаю что ещё нужно писать, спрашивайте)
Нужно добавить защиту в советник для МТ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 ) = Время

Informazioni sul progetto

Budget
10 - 20 USD
Per lo sviluppatore
9 - 18 USD
Scadenze
da 2 a 4 giorno(i)