Перейти к содержанию

Доработка советников: общая тема


Рекомендуемые сообщения

Доработка советников: общая тема Опубликовано

Щас снесут...

А зачем сносить? здесь коммерция запрещена, а не поиск услуги, так что всё нормально.

Dob2k я понимаю, что программировать не все могут, но поиском в интернете нужно уметь пользоваться... Вот нашёл для Вас советник.

ft_cci.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 2,5k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Версия с правками. Я немного свернул код, чтобы не перебирались ордера попусту и чтобы проверка красной/синей зоны делалась в одном месте. Прогнал в тесте с настройками по умолчанию. Ожидаемо лье

Перейти

Нате 1_2_3 _Fraktal.mq4

Перейти

Система маятника, или попрыгунчика, или фиг ее знает как ее еще назвать не намного младше сетки мартингейла. Мы в далеком 2017 писали по ней сов с индикатором на вход: https://tlap.com/forum/labo

Перейти
Доработка советников: общая тема Опубликовано

Господа товарищи, помогите , не пойму в чем дело. В тестере сова ставит безубыток, а на демо нет. :((

LOPATA_1.1.rar

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

В тестере сова ставит безубыток, а на демо нет.


А у Вас он в тестере запустился?!
Все индикаторы считаются каждый тик. И графические элементы тоже...
Код
Спойлер

//+------------------------------------------------------------------+
bool ModifyOrder (int aticket, double aprice, double astoploss,double atakeprofit, datetime expiration,color arrow_color = clrRed){if (IsStopped())
{Print("Ошибка, остановлен: IsStopped() == true");return(false);}int TryCount = 20;int cnt = 0;while(!IsTradeAllowed() && cnt cnt++;}if (!IsTradeAllowed()){Print("Ошибка: Операция недопустима - IsTradeAllowed()==false");return(false);}if (OrderSelect(aticket, SELECT_BY_TICKET,MODE_TRADES))
{string symbol = OrderSymbol();int digits = int(MarketInfo(symbol, MODE_DIGITS));if (digits > 0){aprice = NormalizeDouble(aprice,digits);astoploss = NormalizeDouble(astoploss,digits);
atakeprofit = NormalizeDouble(atakeprofit,digits);}}int err = GetLastError();err = 0;bool exit_loop = false;bool result = false;while (!exit_loop){
if (IsTradeAllowed()){result = OrderModify(aticket, aprice, astoploss, atakeprofit, expiration, arrow_color);err = GetLastError();}else cnt++;if (result == true)
exit_loop = true;switch (err){case ERR_NO_ERROR:exit_loop = true;break;case ERR_NO_RESULT:exit_loop = true;break;case ERR_SERVER_BUSY:case ERR_NO_CONNECTION:
case ERR_INVALID_PRICE:case ERR_OFF_QUOTES:case ERR_BROKER_BUSY:case ERR_TRADE_CONTEXT_BUSY:case ERR_TRADE_TIMEOUT:cnt++;break;case ERR_PRICE_CHANGED:
case ERR_REQUOTE:RefreshRates();continue;default:exit_loop = true;break;}if (cnt > TryCount)exit_loop = true;if (!exit_loop){Print("Ошибка, попыток: (" + IntegerToString(cnt) + "/" + IntegerToString(TryCount));
Sleep(500);RefreshRates();}if (exit_loop){if ((err != ERR_NO_ERROR) && (err != ERR_NO_RESULT))Print("Ошибка: " + IntegerToString(err));}}
if ((result == true) || (err == ERR_NO_ERROR)){Print("Успешная модификация");if(OrderSelect(aticket, SELECT_BY_TICKET, MODE_TRADES)){OrderPrint();
return(true);}else{return(false);}}if (err == ERR_NO_RESULT){return(true);}Print("Ошибка модификации после " + IntegerToString(cnt) + " попыток");
Print("Ошибка модификации: " + IntegerToString(aticket) + " " + _Symbol + "@" + DoubleToString(aprice) + " tp@" + DoubleToString(atakeprofit) + " sl@" + DoubleToString(astoploss));
Print("Ошибка : " + IntegerToString(err));return(false);}

в таком виде не читается...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Все работает кромме бу.
А эту ф-ю я просто ужал в строчку.


Добавлено: 18-09-2018 16:57:22

Все индикаторы считаются каждый тик.


Покажи пожалуйста кусок кода...

Функция_качественной_модификации_ордеров.txt

Изменено пользователем Серега7317
Ссылка на сообщение
Поделиться на другие сайты

  • 3 weeks later...
Доработка советников: общая тема Опубликовано

Есть советник для ручной торговли, больше похож на тестировние стратегий. Но не хватает функционала. Если можно, добавте умножитель лота следующей сделки и общий профит, при котором закрываются все открытые ордера. Хочу протестировать ряд индикаторов по такой схеме. Поступает сигнал открываю ордер. Каждый следующий ордер с умножением. Закрываются ордера в указанном профите. Можно писы или денежный показатель. Советник прилагаю. И по возможности установите инфопанель для мониторинга торговли. Инфопанель так же прилагаю.

HandTester.mq4
stat_informer2.mq4

Изменено пользователем DirektoLTD
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Приветствую, уважаемые программисты форума!

Есть просьба одна к тем, кто разбирается и пишет коды советников. Просьба такова: нужен блок кода, который бы можно было встроить в советник, и который закрывает ордера, открытые этим советником, по достижении этими ордерами определенного "процента прибыли на мин.лот 0.01". Желательно процент прибыли рассчитывать от баланса, а не от эквити. И значение вводимой переменной ProfitMinLot сделать не до целых, а до десятых долей процента.

Пример: открылся сов лотом 0.01 по какой-либо паре, счет с балансом 100USD, настройка ProfitMinLot стоит 5%, прибыль достигла 5USD - кроем ордер. На ордер 0.02 профит нужен 10USD соответственно.
Возможно, это уже есть в каких-либо совах с открытым кодом, но я пока таковых не нашёл.

Сам в написании кода не силён. Только модифицировал совы "переносом" блоков кода с добавлением недостающих переменных из одной совы в другую.

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Есть просьба одна к тем, кто разбирается и пишет коды советников. Просьба такова: нужен блок кода, который бы можно было встроить в советник, и который закрывает ордера, открытые этим советником, по достижении этими ордерами определенного "процента прибыли на мин.лот 0.01". Желательно процент прибыли рассчитывать от баланса, а не от эквити. И значение вводимой переменной ProfitMinLot сделать не до целых, а до десятых долей процента.




Здравствуйте!
1. считаете прибыль от баланса (AccountBalance()*(1+(Ваш процент*0.01)))- AccountBalance() ....к примеру так
2. сравниваете OrderProfit с прибылью от баланса, если больше, то закрываете
Я понимаю, что это может не помочь, но мне нужен Ваш код, чтоб туда вшить функцию, видеть как у вас сопровождаются сделки....логику открытия ордеров можете скрыть. А если нет секретов, то код в студию или мне в личку
зы. Все_бесплатно))))))
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Здравствуйте.Можете дописать в советнике,что бы была возможность выставить время в которое нужно выставлять отложенные ордера



Выставляет отложки по времени (доработка) по логике советника (как было)

Добавлено: 11-10-2018 20:00:01

Добрый день! Есть советник, задумка для дальнейшего прогона интересна, но почему- то даже не смотря на то, что увеличенные мартингейлом лоты, закрывающиеся по ТП не закрывают минуса предыдущих сделок. Почему-то меняется сам ТП новых сделок. Помогите кто может исправить эту проблему,заранее благодарю .



Думаю, Вам надо прислать ваши настройки советника (сеты), потому что по стандартным настройкам сов работает без сбоев, тем более он прост как....
В определенное время открывает сделку на пробое ценового канала (по закрытию свечи) и выставляет sl=tp. Сделка закрывается по времени или по sl/tp. На следующий день объем сделки увеличивается на коэффициент))

DayHL_Orders.mq4
DayHL_Orders.ex4

Изменено пользователем loveЦ
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Мне необходимо добавить магик код в советник Profiter_105_mt4 Его там нет и советник начинает работать с любым ордером вручную открытым, т.е. магиком 0
Хорошо бы было работать только с одним единственным ордером по мейджик коду. Со вторым ордеров будет работать второй экземпляр советника.

Profiter_105_mt4.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Мне необходимо добавить магик код в советник Profiter_105_mt4 Его там нет и советник начинает работать с любым ордером вручную открытым, т.е. магиком 0
Хорошо бы было работать только с одним единственным ордером по мейджик коду. Со вторым ордеров будет работать второй экземпляр советника.



Для того чтобы "колдовать" над советником нужен его исходник с расширением файла mq4. В твоем случае нужен файл Profiter_105_mt4.mq4, если он существует, то, пожалуйста, в студию b-)
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

К сожалению такого файла нет. Советник имеет закрытый код и терминал не конвертирует его в файл MQL4 Так может написать подобный советник для частичного закрытия ордера и переноса в безубыток, но только чтобы в настройках имелось поле: магик

Изменено пользователем seric245
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

К сожалению такого файла нет. Советник имеет закрытый код и терминал не конвертирует его в файл MQL4 Так может написать подобный советник для частичного закрытия ордера и переноса в безубыток, но только чтобы в настройках имелось поле: магик



Попробуйте

2018-10-15_17-09-55.jpg
Profiter_105_mt4.ex4

Изменено пользователем loveЦ
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано


Приветствую, уважаемые программисты форума!

Есть просьба одна к тем, кто разбирается и пишет коды советников. Просьба такова: нужен блок кода, который бы можно было встроить в советник, и который закрывает ордера, открытые этим советником, по достижении этими ордерами определенного "процента прибыли на мин.лот 0.01". Желательно процент прибыли рассчитывать от баланса, а не от эквити. И значение вводимой переменной ProfitMinLot сделать не до целых, а до десятых долей процента.

Пример: открылся сов лотом 0.01 по какой-либо паре, счет с балансом 100USD, настройка ProfitMinLot стоит 5%, прибыль достигла 5USD - кроем ордер. На ордер 0.02 профит нужен 10USD соответственно.
Возможно, это уже есть в каких-либо совах с открытым кодом, но я пока таковых не нашёл.

Сам в написании кода не силён. Только модифицировал совы "переносом" блоков кода с добавлением недостающих переменных из одной совы в другую.


В добавление к первой просьбе, в цитате сверху, есть ещё одна:
Добавить в этот же сов, помимо модуля-"закрывашки" ещё планировщик(по типу планировщика из ещё одного сова с закрытым кодом). Совы на форуме довольно известные:
- доработать нужно сова MilkyWay(исходник прилагаю);
- сов, идею планировщика которого желательно копировать - LaguerreScalper. Только фильтров на вход сделать нужно не по 4, а по 6 на каждый день недели(сов входит на открытии 4-х часовой свечи).

Milky_way_EA_v3.24_m07_DayChange.mq4
Laguerre_v1.05.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Здравствуйте, только начал изучать MQL4.
Нужно подключить индикатор Oscillator of Indicator and MA.mq4 в советник.
Для того чтобы им пользоваться мне нужно получить и записать в переменные значения линий и шкалы с помощью iCustom, но найти индексы линий и шкалы не могу.

Вот в коде индикатора эти переменные заданы:
#property indicator_buffers 5
#property indicator_color1 clrLimeGreen
#property indicator_color2 clrFireBrick
#property indicator_color3 clrAqua
#property indicator_color4 clrMagenta

а вот задаются индексы:
//--- indicator buffers mapping
IndicatorBuffers(indicator_buffers);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexStyle(2,DRAW_LINE);
SetIndexStyle(3,DRAW_LINE);
SetIndexStyle(4,DRAW_NONE);
SetIndexBuffer(0,OscBuffer1);
SetIndexBuffer(1,OscBuffer2);
SetIndexBuffer(2,IndicatorBuffer);
SetIndexBuffer(3,SignalBuffer);
SetIndexBuffer(4,Oscillator);
SetIndexShift(3,MAShift);
и какие индексы мне брать не пойму, может кто сказать?

Screenshot_1.jpg
Oscillator_of_Indicator_and_MA.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

какие индексы мне брать не пойму, может кто сказать?

В Вашем индикаторе 2 линии во 2 и 3 буфере, гистограмма состоит тоже из 2 буферов №№ 0 и 1 они разного цвета. Если нужны все линии, то нужно 4 раза объявить iCustom с одинаковыми параметрами и разными № буфера.
Пример:
double AquaLine = iCustom( NULL, 0, "Oscillator of Indicator and MA.ex4", ... параметры ..., 2 (№ буфера) , 1 (№ бара) );
double MagentaLine = iCustom( NULL, 0, "Oscillator of Indicator and MA.ex4", ... параметры ..., 3 (№ буфера) , 1 (№ бара) );
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

как ты определил, какой номер буфера за что отвечает?

Обрати внимание на надписи DRAW_HISTOGRAM - гистограмма, DRAW_LINE - линия, цифрой обозначается №буфера, с цветом чуть сложнее: если номер буфера = 3, то номер линии для цвета = 4 (отсчёт не с 0, а с 1), т.е. для буфера 3 (линия) - indicator_color4 clrMagenta
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

А что здесь SetIndexStyle(4,DRAW_NONE);?

Это не отображаемый буфер для промежуточных расчётов. Вам нужно справкой пользоваться - в редакторе выделили интересуемое слово и открыли редактор, он сразу покажет справку по этому слову.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Вам нужно справкой пользоваться - в редакторе выделили интересуемое слово и нажали F1, он сразу покажет справку по этому слову.
Изменено пользователем vitek01
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

День добрый! Задача по доработке состоит из 2 моментов:
1) добавить возможность закрывать позиции, открытые советником, не только по встроенным фильтрам, ТП и СЛ, а ещё и по приросту депозита. Оставить кнопку выбора: закрывать позиции по стандарту, или по приросту депозита. Расчёт прироста депозита:
- сов при открытии позиции записывает текущее значение баланса в память;
- пользователь в настройках задаёт значение прироста депозита на мин лот 0.01 (думаю нужно сделать с точностью до 0,1% на лот 0,01);
- по достижении ордером заданного процента профита - ордер прикрывается.
Пример: открылся сов лотом 0.01 по какой-либо паре, счет с балансом 100USD, настройка ProfitMinLot стоит 5%, прибыль достигла 5USD - кроем ордер. На ордер 0.02 профит нужен 10USD соответственно.
Так как совы, предложенные для доработки, открывают по 2 ордера сразу, то возможно сделать настройку процента прироста депозита для каждого из 2 ордеров индивидуально.
2) добавить планировщик времени работы(6 временных интервалов на сутки), - сов, идею планировщика которого желательно копировать - LaguerreScalper(он, к сожалению только в ex4).
Советников для доработки - аж 3 штуки. Но в каждом из них нужно добавить одни и те же функции, что описаны выше.
Исходники сов для доработки прилагаю.

Force_Trader_v1.0.mq4
Milky_way_EA_v3.24_m07_DayChange.mq4
Turtles_v1.0.mq4
Laguerre_v1.05.ex4

Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

День добрый! Задача по доработке состоит из 2 моментов:
1) добавить возможность закрывать позиции, открытые советником, не только по встроенным фильтрам, ТП и СЛ, а ещё и по приросту депозита. Оставить кнопку выбора: закрывать позиции по стандарту, или по приросту депозита. Расчёт прироста депозита:
- сов при открытии позиции записывает текущее значение баланса в память;
- пользователь в настройках задаёт значение прироста депозита на мин лот 0.01 (думаю нужно сделать с точностью до 0,1% на лот 0,01);
- по достижении ордером заданного процента профита - ордер прикрывается.
Пример: открылся сов лотом 0.01 по какой-либо паре, счет с балансом 100USD, настройка ProfitMinLot стоит 5%, прибыль достигла 5USD - кроем ордер. На ордер 0.02 профит нужен 10USD соответственно.
Так как совы, предложенные для доработки, открывают по 2 ордера сразу, то возможно сделать настройку процента прироста депозита для каждого из 2 ордеров индивидуально.



Добрый день!
Добавил закрытие сделок по проценту от баланса.

Вопрос: В милки добавить нужно открытие сделок по времени 6 интервалов, т.е. ,к примеру, 1. открытие в 0-00 , 2. открытие 2-45, 3. открытие 8-05.......6. открытие 23-55?

Force_Trader_v1.0.mq4
Turtles_v1.0.mq4
2018-10-21_10-22-01.jpg

  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Доработка советников: общая тема Опубликовано

Спасибо за труды!
Единственное, что подправить: значение прироста депозита на мин.лот округлять не до десятых, а до сотых долей процента для более гибкой настройки(просто в большинстве сделок этих ботов прибыль в % прироста депозита не превышает 0.1% на мин.лот 0.01).
По поводу Милки: да, сделать 6 временных интервалов торговли. По примеру планировщика в LaguerreScalper:
MondayTrade__________false\true
MondayTimeFilter_1____false\true
MondayStartHour_1____0...23 \\значение задаётся трейдером
MondayStopHour_1____0...23
MondayTimeFilter_2____false\true....... и так 6 фильтров.
Единственное - остался открытым вопрос по ФорсТрейдеру и Черепахам: стоит ли там оставлять открытие позиции 2-мя ордерами. Просто в оригиналах сов на их мониторингах иногда открытие совершается одним ордером, а иногда двумя. Задано ли это в коде, или открытие 2-го ордера не происходило из-за косяков брокера - мне осталось неясным. Но в любом случае, если оставлять открытие 2-мя ордерами, - надо чтобы логика их закрытия была разная. Например 1-й ордер закрывается по % прироста депозита, а 2-й - по тралу или индикаторам(как в оригинале).

Как обещал ранее - выкладываю Черепах и ФорсТрейдера с прилепленым мной планировщиком. Если на трудно - можете код посмотреть, правильно ли я его перенес с другого сова?
Ваш блок с закрытием по приросту депозита не сложно будет в эти доработанные коды добавить?

Turtles_v1.0Time_Filter.mq4
Force_Trader_v1.0Time_Filter.mq4

Изменено пользователем AndrewR
Ссылка на сообщение
Поделиться на другие сайты

  • idinesh changed the title to Assae Elite Pro tlap version source code need i have plan convert this mt4 to mt5 and it possible mt4 dll file modified mt5 version
  • Pavel888 pinned this тема

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • ×
    ×
    • Создать...