Job finished
Specification
Советник Averager
Нужно написать советника, который будет заниматься усреднением убыточных ордеров.
Главный ордер — это тот ордер, от которого начинается усреднение. Все пункты, задаваемые в советнике, должны уметь нормализоваться как для 4 значного брокера, так и для 5 значного брокера. Пункты будут задаваться как для 4 значного брокера. Это значит, если указано 20, то это 200 пунктов для 5 значного брокера.
Входные параметры и их разъяснения приведены в таблице 1. В скобках указаны параметры по умолчанию
Таблица 1
Magic |
Магик номер советника (5555) |
Comment |
Комментарии советника (Averager) |
FilterMagic |
Фильтр по magic идентификатору сделок. Советник будет работать только с теми ордерами, у которых совпадает магик номер. Если в поле пусто, то советник подхватывает все ордера, включая открытые вручную (пусто). Аналогично должны работать все фильтры далее |
ExcludeFiltermagic |
Магики, записанные в данной графе, будут исключаться (пусто) |
FilterComment |
Фильтр по комментарию (пусто) |
ExcludeFiltercomment |
Комментарии, записанные в данной графе, будут исключаться (пусто) |
Direction |
Buy, Sell, Any. Если выбран параметр buy или sell, то советник усредняет сделки только с этими направлениями. Если выбран any, то советник не фильтрует по направлению сделок (Any) |
MaxGridlevel |
Максимальное количество усредняющих сделок (3) |
GridDistanse |
Через запятую задается расстояние в сетке. Например, если MaxGridlevel имеет значение 3, то пишется 25, 50, 60. Это означает, что первый лимитный ордер откроется от главного на расстоянии 250 пунктов, второй ордер откроется на расстоянии от первого 500 пунктов, третий ордер откроется на расстоянии от второго 600 пунктов. Советник не должен сразу строить всю сетку. Как только советник выберет главный ордер, он открывает первый лимитный ордер. Если сработал первый лимитный ордер, то он открывает следующий. и.т.д (35, 40, 60) |
LotSize |
Размер лотов сетки пишется через запятую. Например, 0.1, 0.5, 0.4. Это означает, что первый откроется размером 0,1 лота, второй 0,5 лота, третий 0,4 лота (0.1, 0.11, 0.2) |
Lotmultiplicator |
Если LotSize имеет значение 0, то размер определяется умножение на этот параметр (1,2) |
TakeProfitType |
Может иметь 2 значения: DistanceFromBE и CopyTakeProfit. Если выбран параметр DistanceFromBE, то тейкпрофит сетки отсчитывается от уровня без убытка сетки. Если выбран параметр CopyTakeProfit, то все ордера будут иметь одинаковый тейкпрофит с главным ордером. Если изменить тейкпрофит главного ордера, то советник должен тоже изменить ордера сетки в соответствии с главным ордером. (DistanceFromBE) |
TakeProfitPips |
Если в графе TakeProfitType выбран параметр DistanceFromBE, то в этой графе задается количество пунктов для отсчета. Если значение имеет знак минус, то отсчет должен вестись в сторону убытка от уровня безубытка. (30) |
StoplossType |
Может иметь 2 значения: FixStoploss и CopyStoploss. Если выбран параметр FixStoploss Ордера сетки будут иметь заданный стоплосс, один на всех. Если выбран параметр CopyStoploss, то все ордера будут иметь одинаковый стоплосс с главным ордером. Если изменить стоплосс главного ордера, то советник должен тоже изменить ордера сетки в соответствии с главным ордером. (CopyStoploss) |
StoplossPips |
Если в графе StoplossType выбран параметр FixStoploss, то в этой графе задается количество пунктов для отсчета. |
StealthStopandTake |
Может иметь 2 значения: True или False. Если выбран параметр False, то советник будет изменять уровни тейкпрофит и стоплосс главного ордера. Если выбран параметр True, то советник не будет изменять уровни тейкпрофит и стоплосс главного ордера. Но он должен ставить эти уровни виртуально. Это делается для того, чтобы если главный ордер открыть другим советником и если этот советник постоянно контролирует уровни стоплосс и тейкпрофит, то между усреднителем и другим советником произойдёт конфликт. Т.к другой советник будет постоянно передвигать уровни тейкпрофита и стоплосс на требуемые ему, а усреднитель будет передвигать его на уровень TakeProfitPips. |
Если будет удален главный ордер, то советник должен отменить выставленный лимитный ордер и ждать нового ордера по рынку.
Советник должен на графике рисовать линию на уровне безубытка. При расчёте уровня безубытка должны быть учтены комиссии брокера и свопы. Если меняются значения свопов, то уровень безубытка должен заново рассчитываться и менять свое расположение. Также после открытия следующего лимитного ордера уровень безубытка должен заново просчитываться и передвигаться в соответствующее положение.
Советнику требуется наличие информационной панели. Информационное окно советника выдает подробную информацию о текущей ситуации:
- · количество рыночных ордеров, которые относятся к советнику и их общая лотность, включая главный ордер
- · Текущий профит либо убыток сетки
- · Целевой профит, который будет получен, если сетка закроется по тейкпрофиту.
- текущий уровень всей пирамиды
Пример информационной панели:
Название советника (Averager) |
|
Positions |
3 |
LotSummary |
0.14 |
Open P/L |
-25 |
TargetProfit |
54 |
Level | 2 OF 3 |
Советник предоставляется с открытым кодом. Предлагайте цену