Эксперт и обобщенный класс на основе стандартных торговых классов

MQL5 Esperti Librerie

Lavoro terminato

Tempo di esecuzione 25 giorni

Specifiche

Основная задача создать обобщенный класс для торговых операций и вычислений - на базе стандартных классов.
Главное в работе - это качество кода этого класса в классическом стиле Объектно-ориентированного программирования (ООП). Архитектура обобщенного класса должна быть максимально структурирована для дальнейшего масштабирования и развития. Нужно чтобы были максимально соблюдены все проверки при выполнении торговых операций и обработаны ошибки при отказе от сервера или ошибки во входных переменных функций (методов).

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

Требуется:

1.   Разработать общий класс для открытия, ведения и закрытия торговых позиций и ордеров на базе стандартных классов:

Торговые классы:

- CAccountInfo

- CSymbolInfo

- COrderInfo

- CHistoryOrderInfo

- CPositionInfo

- CDealInfo

- CTrade

- CTerminalInfo

 

Классы управления капиталом и рисками:

CMoneyFixedLot

CMoneyFixedMargin

CMoneyFixedRisk

CMoneyNone

CMoneySizeOptimized

плюс возможно другие на усмотрение исполнителя.

Для демонстрации работоспособности этого класса нужно написать эксперта на базе простого трендового индикатора. Сам код индикатора приложен.

В классе должны быть реализованы функции (методы):

- Открытие рыночного ордера

- Открытие лимитного ордера

- Закрытие позиции

- Снятие ордера

- Частичное закрытие позиции (три закрытия). Каждое частичное закрытие должно рассчитывать лот закрытия/процент закрытия от текущего лота позиции

- Расчет размера лота по риску (от стопа). Лот должен рассчитываться от депо/эквити/маржи

- Количество открытых позиций (по типам)

- Количество установленных ордеров (по типам)

- Нормализация лота

- Проверка правильности расчета позиции/ордера перед их открытием. Т.е. проверка лота/стопа/тейка с учетом маржи/плеча. А также учет предельного риска на депо.


Описанные выше функции должны учитывать тип рынка и счета (внебиржевого неттинг/хеджинг и биржевой).

Возможность подсчета по текущему меджику и по счету в целом:

- прибыль/убыток в валюте счета

- прибыль/убыток в процентах

- маржу

- комиссию

- своп

- цену безубытка по открытым нескольким позициям


P.S. дополнительный функционал предложенный исполнителем - приветствуется. 

 

Ведение позиций и ордеров должно сохранятся в базе данных (БД) sqllite где должна храниться информация по

- типу позиции (ордере)

- размер первоначального лота

- текущее состояние (выставлен ордер/открыта позиция/частичное закрытие 1(2,3)/закрыта позиция)

- результат открытия/установки позиции/ордера

- цена

- цена частичного закрытия (три закрытия)

- размер лота частичного закрытия (в лотах и процентах для каждого из трех)

- меджик

- тип сигнала  (текстовое поле)

- цена сигнала

- цена стоп сигнала

- цена тейка сигнала

- прибыль/убыток по позиции

- комиссия

- своп

 

2.   На базе разработанного класса создать советник по индикатору (индикатор готов)

Индикатор представляет собой трендовый индикатор со значениями состояния тренда (восходящий/нисходящий) уровнями стопа и уровнями лимитного открытия.

 

Входные параметры советника:

- Меджик <int>

- Вход лимиткой от лимитного уровня <true/false>

- Вход по рынку при смене тренда <true/false>

- Закрывать позицию при смене тренда <true/false>

- Снимать лимитку при смене тренда <true/false> (лимитка передвигается по уровню индикатора)

 

- Тип расчета лота (лот/риск(%)) <enum>

- Метод расчета лота по риску (депо/эквити/маржа) <enum>

- Размер лота <double>

- Риск на сделку (%) <double>

- Тип тека (пункты/коэф. от стопа RR(%)) <enum>

- Коэф.(RR) для тейка <double>

- Тейк пипсы (0 – не выставлять) <int>

- Стоп отступ от уровня стопа пипсы (0 – не выставлять) <int>

- Ограничение убытков в день по счету, % (0 - не использовать) <double>

- Ограничение загрузки депо по открытым позициям(ордерам) по счету, % (0 - не использовать) <double>

- Максимальное кол. позиций(ордеров) на продажу <int>

- Максимальное кол. позиций(ордеров) на покупку <int>

 

- Использовать частичное закрытие <true/false>

- - процент закрытия от текущего лота 1 <double>

- - кол. пройденных пипсов для закрытия 1 <int>

- - процент закрытия от текущего лота 2 <double>

- - кол. пройденных пипсов для закрытия 2 <int>

- - процент закрытия от текущего лота 3 <double>

- - кол. пройденных пипсов для закрытия 3 <int>

 

- Использовать трейллинг <true/false>

- Отступ для трейллинга от уровня стопа (пипсы) <int>


Пояснение к советнику

картинка поясняющая принцип работы эксперта


File:

Con risposta

1
Sviluppatore 1
Valutazioni
(263)
Progetti
592
35%
Arbitraggio
64
20% / 58%
In ritardo
147
25%
Gratuito
Pubblicati: 1 articolo, 22 codici
2
Sviluppatore 2
Valutazioni
(2)
Progetti
2
0%
Arbitraggio
1
0% / 0%
In ritardo
0
Gratuito
3
Sviluppatore 3
Valutazioni
(574)
Progetti
945
47%
Arbitraggio
309
58% / 27%
In ritardo
125
13%
Gratuito
4
Sviluppatore 4
Valutazioni
Progetti
0
0%
Arbitraggio
1
0% / 0%
In ritardo
0
In elaborazione
5
Sviluppatore 5
Valutazioni
(294)
Progetti
469
39%
Arbitraggio
100
41% / 23%
In ritardo
77
16%
Caricato
Pubblicati: 2 codici
6
Sviluppatore 6
Valutazioni
(5)
Progetti
7
0%
Arbitraggio
8
13% / 75%
In ritardo
3
43%
Gratuito
7
Sviluppatore 7
Valutazioni
(4)
Progetti
4
0%
Arbitraggio
4
25% / 75%
In ritardo
1
25%
Gratuito
8
Sviluppatore 8
Valutazioni
(27)
Progetti
37
24%
Arbitraggio
14
0% / 93%
In ritardo
4
11%
Gratuito
9
Sviluppatore 9
Valutazioni
(64)
Progetti
144
46%
Arbitraggio
19
42% / 16%
In ritardo
32
22%
Gratuito
10
Sviluppatore 10
Valutazioni
(27)
Progetti
48
38%
Arbitraggio
6
17% / 50%
In ritardo
30
63%
Gratuito
Pubblicati: 11 articoli, 1 codice
11
Sviluppatore 11
Valutazioni
Progetti
1
0%
Arbitraggio
0
In ritardo
0
Gratuito

Informazioni sul progetto

Budget
250 - 320 USD
Scadenze
da 7 a 14 giorno(i)