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

Specifiche

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


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


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

Пример:

Цена идет против нас. Усредняемся. Имеем сетку - 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.


Con risposta

1
Sviluppatore 1
Valutazioni
(586)
Progetti
1049
49%
Arbitraggio
39
28% / 41%
In ritardo
49
5%
Gratuito
2
Sviluppatore 2
Valutazioni
(45)
Progetti
76
20%
Arbitraggio
7
0% / 86%
In ritardo
14
18%
Gratuito
3
Sviluppatore 3
Valutazioni
(5)
Progetti
3
0%
Arbitraggio
19
0% / 100%
In ritardo
0
Gratuito
4
Sviluppatore 4
Valutazioni
(48)
Progetti
73
37%
Arbitraggio
22
9% / 41%
In ritardo
14
19%
In elaborazione
5
Sviluppatore 5
Valutazioni
(356)
Progetti
632
26%
Arbitraggio
89
73% / 13%
In ritardo
12
2%
Gratuito
6
Sviluppatore 6
Valutazioni
(340)
Progetti
588
36%
Arbitraggio
31
45% / 3%
In ritardo
16
3%
Gratuito
7
Sviluppatore 7
Valutazioni
(4)
Progetti
5
40%
Arbitraggio
1
0% / 100%
In ritardo
0
Gratuito
8
Sviluppatore 8
Valutazioni
(564)
Progetti
933
47%
Arbitraggio
303
59% / 25%
In ritardo
125
13%
In elaborazione
9
Sviluppatore 9
Valutazioni
(13)
Progetti
34
76%
Arbitraggio
1
100% / 0%
In ritardo
6
18%
Gratuito
Ordini simili
Добрый день! Необходимо реализовать индикатор поиска паттернов Песавенто в виде сканера со статистикой отработки на выбранном инструменте. Есть аналог, индикатор ZUP, но он громоздкий, много версий, много багов, не очень удобный. На выбранном инструменте и таймфрейме необходим осуществить поиск следующих паттернов: extern bool Gartley=true; /* true - ищет паттерны Гартли, false - нет */ extern bool ABCD=true; /* true
На сервере хранится и обновляется информация в формате JSON. Это расчетные исходящие данные для индикатора. Эти данные требуется ретранслировать в МТ и построить ценовые уровни и др. элементы тех. анализа. Требуется создать панель управления настройками индикатора и информационное окно. Загрузка истории через запрос, live data - ws. Особые требования к оформлению и скорости обработки данных, работа при постоянной
Торговый робот анализирующий уровни пробоев на график вью на форекс торгующий на прорыв уровней как на покупку так и на продажу с усреднением в нескольких таймфреймах (1час,2 часа, 3 часа, 4часа,1 день),выставлением тейк профит и стоп селл и заключающий сделки на мт5 ТЗ все фото отчёты всю информацию уже обсуждаем непосредственно при договорённости
Требуется создать торгового робота на трендовой торговли с реверсом (Long/short и обратно) TF от 1м до 1н Подробное ТЗ обсуждается отдельно, имею 7 лет опыта в маржинальной торговли по различным индикаторам. Ввиду профессиональной потери зрения затруднительно общение через переписку! Связь +79175859811 Анатолий
Торговый робот для платформы мт4, который будет открывать ордера на минутном ТФ , с парой EUR/USD. Н астраивается вручную. Установить на график индикаторы: PZ Super Trend, INFO или Exposure. Детали в ТЗ. ТЗ в личку после согласования

Informazioni sul progetto

Budget
30 - 40 USD
Per lo sviluppatore
27 - 36 USD
Scadenze
da 1 a 3 giorno(i)