Изменить алгоритм частичного закрытия позиций в существующем советнике

Spécifications

Добрый день, уважаемые программисты!


Есть вспомогательный советник (открытый код). Описание функций этого советника есть в прикрепленном файле. В двух словах советник сопровождает открытые позиции, наилучшим образом работает с сетками, тралит последние ордера, полученным профитом "кусает" лотность сетки, может полностью закрывать ордера полученным профитом от последнего ордера и т.п.


Одна из функций советника (в которую необходимо внести изменения) - "частичное перекрытие" ордеров.

Пример:

Цена идет против нас. Усредняемся. Имеем сетку - 4 ордера - 0.1,  0.2,  0.4,  0.8

Рынок разворачивается, как только ордер 0.8 выходит в плюс на определенные выставленные параметры, включается трал "частичного перекрытия". При возврате цены к линии трала произойдет закрытие части ордеров. Например, согласно логике профитом ордера 0.8 закроется часть убытка от первых трех ордеров что в просадке, то есть от каждого согласно суммы может "откусится" по 0.05 убытка. В итоге в рынке останется 0.05, 0.15, 0.35


ИСХОДНЫЕ ДАННЫЕ ЗАДАЧИ: 

Сейчас частичное "откусывание" ордеров в функционирует по следующей логике:
Есть сеть 0,1 / 0,2 / 0,4 /0,8. Ордер 0,8 - стралился и профитом готов "покусать" часть ордеров. И ордера начинают кусаться в порядке - сначал 0,4,  потом -  0,2, потом - 0,1 (тестировал на сетке 4 ордера, возможно при большем количестве ордеров логика может меняться). Это все происходит за миллисекунды, т.е. как одно действие. Но тем не менее порядок такой - от большего ордера к меньшему (не знаю каким образом он определяет - по лотности, дате или по номеру). 

Когда частично кроется ордер, ордер меняет номер в советнике. Номера меняются в порядке возрастания. Т.е. если мы идем в порядке откусывания, как сделано сейчас в советнике, то откусанный ордер 0,1 (самый маленький) будет иметь самый большой номер ордера, так как был изменен последним. В этом случаи, если "кусание" происходило по логике данного советника, самый маленький по объему ордер будет иметь самый последний номер ордера.


Пример:

В порядке возрастания по номеру ордера:

Была сеть 0,1 /0,2 / 0,4 /0,8. Покусалась, стала 0,3 / 0,15 / 0,05.  Самый большой номер ордера после "кусания" стал у 0,05. 


ЗАДАЧА:

1) Изменить логику частичного перекрытия ордеров на противоположную. Чтобы ордера кусались в порядке от меньшего к большему по лотности. Т.е. в предыдущем примере с сеткой 0,1 / 0,2 / 0,4 / 0,8. Профитом последнего оредра сначала кусался бы - 0,1, потом - 0,2, потом - 0,4. Таким образом наибольший по объему из оставшихся ордеров имел самый большой (последний) номер ордера. 

2) Не менее важная задача - при изменении логики ничего больше не повредить в коде, не задеть, не изменить и т.п. Т.е. все должно работать так, как работает сейчас, кроме пункта 1.


Répondu

1
Développeur 1
Évaluation
(586)
Projets
1046
49%
Arbitrage
39
28% / 41%
En retard
49
5%
Travail
2
Développeur 2
Évaluation
(45)
Projets
76
20%
Arbitrage
7
0% / 86%
En retard
14
18%
Gratuit
3
Développeur 3
Évaluation
(5)
Projets
3
0%
Arbitrage
19
0% / 100%
En retard
0
Gratuit
4
Développeur 4
Évaluation
(48)
Projets
73
37%
Arbitrage
22
9% / 41%
En retard
14
19%
Travail
5
Développeur 5
Évaluation
(356)
Projets
632
26%
Arbitrage
89
73% / 13%
En retard
12
2%
Gratuit
6
Développeur 6
Évaluation
(341)
Projets
588
36%
Arbitrage
31
45% / 3%
En retard
16
3%
Gratuit
7
Développeur 7
Évaluation
(4)
Projets
5
40%
Arbitrage
1
0% / 100%
En retard
0
Gratuit
8
Développeur 8
Évaluation
(562)
Projets
931
47%
Arbitrage
301
59% / 25%
En retard
123
13%
Travail
9
Développeur 9
Évaluation
(13)
Projets
34
76%
Arbitrage
1
100% / 0%
En retard
6
18%
Gratuit
Commandes similaires
Приветствую. Куплю ваш советник для МТ5, при условии, что на дистанции он способен приносить прибыль от 10% в месяц. В основе торговой стратегии не должны применяться методы Мартингейла и сеточные стратегии. Мне будет необходимо провести тестирование в тестере стратегий и проверить его работу в реальном времени (на демо-счёте минимум две недели) поэтому прошу предоставить исполняемый файл советника с необходимыми
## 1. Введение Цель данного технического задания – подготовить скрипт на языке MQL5 для проведения качественного 100% тестирования нового актива (фьючерс на канадский доллар, код 6C) за период 10 лет. Все данные (объем , открытие, закрытие , максимум, минимум) по данному активу должны быть загружены и обработаны согласно указанным требованиям. Список активов доступен по [ссылке](
ТЗ: нужно создать торгового робота на tradingview или другой платформе, с личным кабинетом для настроек параметров. Что бы можно было подключить робота по API к биржам bingx и bybit. 1.Тогговля на любых фьючерсных парах. 2.Робот должен работать по циклам. В каждом цикле будет заложено 6 сделок (3 лонг сделки и 3 шорт сделки). При достижение профита хотя бы в одной сделке, всё закрывается по рынку и цикл
Индикатор оригинала не перерисовывается, соответственно когда будете вносить изменения в алгоритме индикатора, тоже не должен перерисовыватся. Необходимо найти в алгоритме индикатора, где есть условия, при которой индикатор выдает уведомления. Нужно посмотреть с расчетом на одну свечу назад на уже закрытой свече на каких условиях находится когда свеча открывалась, и на основание этого создать новое условие, чтобы

Informations sur le projet

Budget
30 - 40 USD
Pour le développeur
27 - 36 USD
Délais
de 1 à 3 jour(s)