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

MQL5 Experts Bibliothèque

Tâche terminée

Temps d'exécution 25 jours

Spécifications

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

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

Требуется:

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>


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

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


Dossiers :

Répondu

1
Développeur 1
Évaluation
(263)
Projets
592
35%
Arbitrage
64
20% / 58%
En retard
147
25%
Gratuit
Publié : 1 article, 22 codes
2
Développeur 2
Évaluation
(2)
Projets
2
0%
Arbitrage
1
0% / 0%
En retard
0
Gratuit
3
Développeur 3
Évaluation
(574)
Projets
945
47%
Arbitrage
309
58% / 27%
En retard
125
13%
Gratuit
4
Développeur 4
Évaluation
Projets
0
0%
Arbitrage
1
0% / 0%
En retard
0
Travail
5
Développeur 5
Évaluation
(294)
Projets
469
39%
Arbitrage
100
41% / 23%
En retard
77
16%
Chargé
Publié : 2 codes
6
Développeur 6
Évaluation
(5)
Projets
7
0%
Arbitrage
8
13% / 75%
En retard
3
43%
Gratuit
7
Développeur 7
Évaluation
(4)
Projets
4
0%
Arbitrage
4
25% / 75%
En retard
1
25%
Gratuit
8
Développeur 8
Évaluation
(27)
Projets
37
24%
Arbitrage
14
0% / 93%
En retard
4
11%
Gratuit
9
Développeur 9
Évaluation
(64)
Projets
144
46%
Arbitrage
19
42% / 16%
En retard
32
22%
Gratuit
10
Développeur 10
Évaluation
(27)
Projets
48
38%
Arbitrage
6
17% / 50%
En retard
30
63%
Gratuit
Publié : 11 articles, 1 code
11
Développeur 11
Évaluation
Projets
1
0%
Arbitrage
0
En retard
0
Gratuit

Informations sur le projet

Budget
250 - 320 USD
Délais
de 7 à 14 jour(s)