Auftrag beendet
Ausführungszeit 5 Tage
Spezifikation
Доработать эксперт для метатрейдера 4
extern double StopLoss =200; // SL для открываемого ордера extern double TakeProfit =39; // ТР для открываемого ордера extern int Period_MA_1=11; // Период МА 1 extern int Period_MA_2=31; // Период МА 2 extern double Rastvor =28.0; // Расстояние между МА extern double Lots =0.1; // Жестко заданное колич. лотов extern double Prots =0.07; // Процент свободных средств bool Work=true; // Эксперт будет работать. string Symb; // Название финанс. инструмента //--------------------------------------------------------------- 2 -- int start() { int Total, // Количество ордеров в окне Tip=-1, // Тип выбран. ордера (B=0,S=1) Ticket; // Номер ордера double MA_1_t, // Значен. МА_1 текущее MA_2_t, // Значен. МА_2 текущее Lot, // Колич. лотов в выбран.ордере Lts, // Колич. лотов в открыв.ордере Min_Lot, // Минимальное количество лотов Step, // Шаг изменения размера лота Free, // Текущие свободные средства One_Lot, // Стоимость одного лота Price, // Цена выбранного ордера SL, // SL выбранного ордера TP; // TP выбранного ордера bool Ans =false, // Ответ сервера после закрытия Cls_B=false, // Критерий для закрытия Buy Cls_S=false, // Критерий для закрытия Sell Opn_B=false, // Критерий для открытия Buy Opn_S=false; // Критерий для открытия Sell //--------------------------------------------------------------- 3 -- // Предварит.обработка if(Bars < Period_MA_2) // Недостаточно баров { Alert("Недостаточно баров в окне. Эксперт не работает."); return; // Выход из start() } if(Work==false) // Критическая ошибка { Alert("Критическая ошибка. Эксперт не работает."); return; // Выход из start() } //--------------------------------------------------------------- 4 -- // Учёт ордеров Symb=Symbol(); // Название фин.инстр. Total=0; // Количество ордеров for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер { if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий { // Анализ ордеров: if (OrderSymbol()!=Symb)continue; // Не наш фин. инструм if (OrderType()>1) // Попался отложенный { Alert("Обнаружен отложенный ордер. Эксперт не работает."); return; // Выход из start() } Total++; // Счётчик рыночн. орд if (Total>1) // Не более одного орд { Alert("Несколько рыночных ордеров. Эксперт не работает."); return; // Выход из start() } Ticket=OrderTicket(); // Номер выбранн. орд. Tip =OrderType(); // Тип выбранного орд. Price =OrderOpenPrice(); // Цена выбранн. орд. SL =OrderStopLoss(); // SL выбранного орд. TP =OrderTakeProfit(); // TP выбранного орд. Lot =OrderLots(); // Количество лотов } } //--------------------------------------------------------------- 5 -- // Торговые критерии MA_1_t=iMA(NULL,0,Period_MA_1,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_1 MA_2_t=iMA(NULL,0,Period_MA_2,0,MODE_LWMA,PRICE_TYPICAL,0); // МА_2 if (MA_1_t > MA_2_t + Rastvor*Point) // Если разница между { // ..МА 1 и 2 большая Opn_B=true; // Критерий откр. Buy Cls_S=true; // Критерий закр. Sell } if (MA_1_t < MA_2_t - Rastvor*Point) // Если разница между { // ..МА 1 и 2 большая Opn_S=true; // Критерий откр. Sell Cls_B=true; // Критерий закр. Buy } //--------------------------------------------------------------- 6 -- // Закрытие ордеров while(true) // Цикл закрытия орд. { if (Tip==0 && Cls_B==true) // Открыт ордер Buy.. { //и есть критерий закр Alert("Попытка закрыть Buy ",Ticket,". Ожидание ответа.."); RefreshRates(); // Обновление данных Ans=OrderClose(Ticket,Lot,Bid,2); // Закрытие Buy if (Ans==true) // Получилось :) { Alert ("Закрыт ордер Buy ",Ticket); break; // Выход из цикла закр } if (Fun_Error(GetLastError())==1) // Обработка ошибок continue; // Повторная попытка return; // Выход из start() } if (Tip==1 && Cls_S==true) // Открыт ордер Sell.. { // и есть критерий закр Alert("Попытка закрыть Sell ",Ticket,". Ожидание ответа.."); RefreshRates(); // Обновление данных Ans=OrderClose(Ticket,Lot,Ask,2); // Закрытие Sell if (Ans==true) // Получилось :) { Alert ("Закрыт ордер Sell ",Ticket); break; // Выход из цикла закр } if (Fun_Error(GetLastError())==1) // Обработка ошибок continue; // Повторная попытка return; // Выход из start() } break; // Выход из while } //--------------------------------------------------------------- 7 -- // Стоимость ордеров RefreshRates(); // Обновление данных Min_Lot=MarketInfo(Symb,MODE_MINLOT); // Миним. колич. лотов Free =AccountFreeMargin(); // Свободн средства One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// Стоимость 1 лота Step =MarketInfo(Symb,MODE_LOTSTEP); // Шаг изменен размера if (Lots > 0) // Если заданы лоты,то Lts =Lots; // с ними и работаем else // % свободных средств Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// Для открытия if(Lts < Min_Lot) Lts=Min_Lot; // Не меньше минимальн if (Lts*One_Lot > Free) // Лот дороже свободн. { Alert(" Не хватает денег на ", Lts," лотов"); return; // Выход из start() } //--------------------------------------------------------------- 8 -- // Открытие ордеров while(true) // Цикл закрытия орд. { if (Total==0 && Opn_B==true) // Открытых орд. нет + { // критерий откр. Buy RefreshRates(); // Обновление данных SL=Bid - New_Stop(StopLoss)*Point; // Вычисление SL откр. TP=Bid + New_Stop(TakeProfit)*Point; // Вычисление TP откр. Alert("Попытка открыть Buy. Ожидание ответа.."); Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,SL,TP);//Открытие Buy if (Ticket > 0) // Получилось :) { Alert ("Открыт ордер Buy ",Ticket); return; // Выход из start() } if (Fun_Error(GetLastError())==1) // Обработка ошибок continue; // Повторная попытка return; // Выход из start() } if (Total==0 && Opn_S==true) // Открытых орд. нет + { // критерий откр. Sell RefreshRates(); // Обновление данных SL=Ask + New_Stop(StopLoss)*Point; // Вычисление SL откр. TP=Ask - New_Stop(TakeProfit)*Point; // Вычисление TP откр. Alert("Попытка открыть Sell. Ожидание ответа.."); Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,SL,TP);//Открытие Sel if (Ticket > 0) // Получилось :) { Alert ("Открыт ордер Sell ",Ticket); return; // Выход из start() } if (Fun_Error(GetLastError())==1) // Обработка ошибок continue; // Повторная попытка return; // Выход из start() } break; // Выход из while } //--------------------------------------------------------------- 9 -- return; // Выход из start() } //-------------------------------------------------------------- 10 -- int Fun_Error(int Error) // Ф-ия обработ ошибок { switch(Error) { // Преодолимые ошибки case 4: Alert("Торговый сервер занят. Пробуем ещё раз.."); Sleep(3000); // Простое решение return(1); // Выход из функции case 135:Alert("Цена изменилась. Пробуем ещё раз.."); RefreshRates(); // Обновим данные return(1); // Выход из функции case 136:Alert("Нет цен. Ждём новый тик.."); while(RefreshRates()==false) // До нового тика Sleep(1); // Задержка в цикле return(1); // Выход из функции case 137:Alert("Брокер занят. Пробуем ещё раз.."); Sleep(3000); // Простое решение return(1); // Выход из функции case 146:Alert("Подсистема торговли занята. Пробуем ещё.."); Sleep(500); // Простое решение return(1); // Выход из функции // Критические ошибки case 2: Alert("Общая ошибка."); return(0); // Выход из функции case 5: Alert("Старая версия терминала."); Work=false; // Больше не работать return(0); // Выход из функции case 64: Alert("Счет заблокирован."); Work=false; // Больше не работать return(0); // Выход из функции case 133:Alert("Торговля запрещена."); return(0); // Выход из функции case 134:Alert("Недостаточно денег для совершения операции."); return(0); // Выход из функции default: Alert("Возникла ошибка ",Error); // Другие варианты return(0); // Выход из функции } } //-------------------------------------------------------------- 11 -- int New_Stop(int Parametr) // Проверка стоп-прик. { int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Миним. дистанция if (Parametr < Min_Dist) // Если меньше допуст. { Parametr=Min_Dist; // Установим допуст. Alert("Увеличена дистанция стоп-приказа."); } return(Parametr); // Возврат значения } //-------------------------------------------------------------- 12 -- в этот эксперт вставить некоторые детали: алгоритм такой: покупает начальное количество лотов, если срабатывает стоп лосс ,покупает другое количество лотов,срабатывает стоп лосс ,эксперт покупает другое количество лотов и так далее,до 15-го порядка.Если срабатывает тэйк профит-начинает сначала-покупает начальное количество лотов. количество лотов можно менять на любом этапе(порядке). Заранее спасибо.
Bewerbungen
1
Bewertung
Projekte
572
36%
Schlichtung
64
20%
/
58%
Frist nicht eingehalten
147
26%
Frei
2
Bewertung
Projekte
38
47%
Schlichtung
6
33%
/
50%
Frist nicht eingehalten
10
26%
Frei
3
Bewertung
Projekte
825
73%
Schlichtung
15
53%
/
13%
Frist nicht eingehalten
193
23%
Arbeitet
4
Bewertung
Projekte
28
14%
Schlichtung
4
0%
/
50%
Frist nicht eingehalten
7
25%
Frei
5
Bewertung
Projekte
254
53%
Schlichtung
16
50%
/
38%
Frist nicht eingehalten
83
33%
Frei
Ähnliche Aufträge
Рассматриваю любые устойчивые системы с высоким KPI, от супер агрессивных с доходностью 50%-100% в месяц ( слив не чаще чем раз 12 месяцев ) , до супер консервативных с доходностью 15%-20% в год при просадке не более 2%-4% и наличием SL или Stop Out / С возможностью доработка под ТЗ или покупка готового решения
Нужен советник который можно установить на МТ5, функции которые требуются; 1) отключать возможность торговать если трейдер допустил просадку в -2% от депозита (уровень просадки админ может менять) 2) отключать возможность торговать если трейдер сделал тейк на более чем 10% от депозита (уровень тейка админ может менять) функция торговли автоматически отключается на 24 часа, также админ может включать функцию. Доп.инфу
#### Описание задачи: Необходимо разработать торгового бота на языке программирования MQL4 для работы в терминале MetaTrader 4. Бот должен использовать уровни, нанесенные на график с помощью объектов типа `trendline` и `rectangle`, и работать согласно заданным правилам. #### Правила работы бота: 1. **Определение уровней**: - Объекты `trendline` и `rectangle` имеют строку в поле `Имя`, содержащую команду для бота
Доработка советника MT5
30+ USD
Есть советник MT 5 для Мосбиржи с простой стратегией основанной на двух скользящих средних: на нижней МА покупка, на верхней МА продажа. Нужно исправить две вещи: 1. Сейчас на покупку выставляются лимитные ордера, а продажа набранной позиции осуществляется тейк-профитом. Нужно изменить советник, так, чтобы закрывалась позиция также лимитным ордером, а не тейк-профитом. Здесь нужно учесть что закрытие может быть
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3 по ценам договоримся отдельно
Нужен эксперт который будет проверять есть ли интернет соединение, есть ли связь с брокером, есть ли обновления котировок если нет то реконнект аккаунта через интервал времини. терминалов можеть быть дестяки открыто в каждом терминале свой реконнект MQL5 expert цена вопросы? конверт mql5 на mql5 смотреть файл
Mt4 скачать файл из интернета.
30+ USD
Нужен советник который может скачать файл с любым расширением (png, jpg, exe и т.д.) по заданной ссылке и сохранить в указанную папку. Без использования сторонних библиотек, только WinAPI. Файл советника нужен с открытым исходным кодом
Куплю Вашего прибыльного советника дорого
500 - 3000 USD
Куплю Вашего прибыльного советника дорого Должна быть возможность протестировать его на истории и реальные статистические показатели РЕАЛЬНОГО счета Желательно не мартингейл, после тестирования и предоставления статистики счета предложу свою цену
Создать советник на броккере дерив мт5
30 - 50 USD
Тех задания 1. Открывает сделки по сигналу индикатора. Перед открытием смотреть на фильтр и если фильтр тоже в этом направлении то открывает сделку если фильтр показывает тренд в противоположенную сторону то не открывает сделку. 2. Можно было выбирать торговлю но БООМ или КРАШ. 3. Стоплос 2 типа по пипсам и по кирпичикам. (при закрытие по кирпичикам если фильтр меняет тренд то задаем N кирпичиков после смени тренда
Разработка системы автоследования
30 - 200 USD
Необходимо разработать ПО для торговли на финансовых рынках с возможностью подключения к различным брокерам и управлением торговыми операциями по нашим сигналам. Сигналы поступают в табличку формата .csv, которая находится на удаленном сервере. Видим это примерно так: в нашу таблицу поступает сигнал negative (на продажу) или positive (на покупку) актива. Клиент получает этот сигнал и заданным количеством лотов
Projektdetails
Budget
100- USD
Ausführungsfristen
von 1 bis 5 Tag(e)