Доработка советника, добавляем сетку по тренду

MQL4 专家

指定

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

суть доработки в том чтобы открывать по тренду 2-ю, 3-ю и т.д. сделки, до момента пока тренд не развернется. Чтобы не было брошенных ордеров после разворота тренда, открытым сделкам нужно будет устанавливать стоп-лосс на указанном в настройках уровне, чтобы когда тренд развернется ордера закрылись и не тянули убыток.


Алгоритм работы советника:
(все настройки описаны в конце файла)

Кидаем советник на график

Открывается первый ордер buy 0.01

Сетка строится по тренду

 

у 1-го колена сетки, ордера buy 0.01 нет TP (тейкпрофит)

далее рассмотрим 2 варианта движения котировок


1) по тренду:

к примеру у нас такие настройки:
Grid=25
GridTrend=15
Lot=0,01

Добавилась настройка GridTrend


2-е колено
если котировки проходят дальше по тренду
советник открывает ордер 2-го уровня сетки через GridTrend пунктов
объемом Lot предыдущего ордера*MultSize с округлением
тогда откроется ордер buy через 25 пунктов
но старый ордер buy 0.01 не закрывается
оба ордера теперь остаются в рынке

 

3-е колено
при движении котировок дальше по тренду
открывается 3-й  уровень сетки через 15 пунктов (GridTrend)
объем ордера формируется также как и раньше – это не трогаем


4-е колено
при движении котировок дальше по тренду
открывается 4-й  уровень сетки
при этом все 3 предыыдущих ордера открыты


если в настройках указано:
MultLotStart=3, то первые 2 колена будут одинаковым объемом равным Lot, в нашем случае это 0,01, и начиная с 3-го колена будет начинаться умножение сетки

 

Добавить настройку GridType. Она будет отвечать за шаг сетки. Значения: Fix – используется фиксированный шаг сетки, указанный в Rangestep, AddPips – к шагу будет добавляться цифра, указанная в параметре Grid_AddPips

Новые параметры:
Grid_Level1 - № п/п ордера (колена) сетки, начиная с которого (включительно) текущий шаг сетки будет корректироваться (на каждом колене) на GridStep_AddPips пипсов
Grid_AddPips - количество пипсов, на которое будет корректироваться текущий шаг сетки на каждом колене, начиная с колена GridLevel. Может быть =0, >0 и даже <0
Grid_Level2 - № п/п ордера (колена) сетки, начиная с которого (включительно) текущий шаг сетки будет корректироваться  (на каждом колене) на GridStep_Level2_AddPips пипсов
Grid_Level2_AddPips - количество пипсов, на которое будет корректироваться текущий шаг сетки на каждом колене, начиная с колена S_GridStep_Level2.   Может быть =0, >0 и даже <0
Данные настройки должны работать только для сетки против тренда
При работе по  тренду работает только параметр Grid_Trend, добавлять шаг по тренду нет необходимости

СТОП ЛОСС:

SL_level – колено сетки, начиная с которого будет устанавливаться первый стоп лосс
по умолчанию  SL_ level=3
1) как только открывается 3-е колено сетки
и котировки проходят указанное в настройках расстояние SL_otkat + SL_dop пипсов
советник устанавливает SL ордеру 1-го колена на уровень: цена 2-го ордера + SL_otkat пипсов,
чтобы в случае откате цены вся сетка buy схлопнулась

к примеру у нас открыт первый ордер
по цене 1,11000
и уже 2-е колено по цене 1,11200
в настройках указано:
SL_otkat=20
SL_dop=30
тогда при прохождении 20+30 пипсов по тренду SL сетки выставляется на уровень 1,11200+20=1,11220
это аналог трейлинг стоп, но разделен на две части для удобства и будет указываться в настройках

http://prntscr.com/pp8mvb

 

на последующих коленах делаем то же самое
то есть при открытии следующего колена и прохождении SL_otkat+ SL_dop по тренду стоп лосс для всех ордеров передвигается уже на следующее колено сетки

то есть как откроется ордер 3-го колена к примеру на 1.11400
то при прохождении SL_otkat+ SL_dop по тренду SL сетки выставляется на уровень цена 3-го ордера + SL_otkat пипсов
в нашем случае при прохождении 20+30=50 пипсов по тренду SL сетки выставляется на уровень 1,11400+20=1,11420

если SL_first_lvl=4
тогда первый стоп-лосс будет установлен при прохождении SL_otkat+ SL_dop после открытия 4-го колена сетки.
и далее стоп-лосс ставится всем последующим ордерам

 

также будет два типа стоп лосса: для всей сетки и для каждого ордера по отдельности. Подробно как работает описал в пункте Параметры ниже.



2) против тренда

против тренда все работает также как и раньше
единственное изменение – это если у нас остались незакрытыми сделки, которые были открыты по тренду, то они должны начать участвовать в усреднении и хеджироваться вместе с остальными ордерами

в этом видео есть частичное пояснение как работает сетка по тренду: https://youtu.be/v4SLeGa-htM

 

Параметры:

Lots – начальный объем одной сделки
Grid_ Trend - шаг сетки по тренду
RangeStep – шаг сетки
GridType -  Значения: Fix – используется фиксированный шаг сетки, указанный в Rangestep, AddPips – к шагу будет добавляться цифра, указанная в параметре Grid_AddPips
Grid_Level1 - № п/п ордера (колена) сетки, начиная с которого (включительно) текущий шаг сетки будет корректироваться (на каждом колене) на GridStep_AddPips пипсов
Grid_AddPips - количество пипсов, на которое будет корректироваться текущий шаг сетки на каждом колене, начиная с колена GridLevel. Может быть =0, >0 и даже <0
Grid_Level2 - № п/п ордера (колена) сетки, начиная с которого (включительно) текущий шаг сетки будет корректироваться  (на каждом колене) на GridStep_Level2_AddPips пипсов
Grid_Level2_AddPips - количество пипсов, на которое будет корректироваться текущий шаг сетки на каждом колене, начиная с колена S_GridStep_Level2.   Может быть =0, >0 и даже <0
SL_otkat - количество пипсов ТР, которое ставится предыдущему колену при откате котировок
SL_dop – доп. количество пипсов, которое нужно пройти, чтобы выставился TP предыдущему колену
SL_level – колено сетки, начиная с которого будет устанавливаться стоп лосс при прохождении SL_otkat+ SL_dop по тренду. По умолчанию –3. То есть первым двум коленам не ставится стоп лосс а начиная с третьего – ставим.
SL_type – тип стоп-лосса. Значения: All orders – все ордера, Each order – каждому ордеру отдельно.
Когда выбрано All orders – стоп устанавливается всем ордерам сетки, когда же выбрано Each order
- то каждому по отдельности. К примеру робот открыл 3-е колено сетки, SL_level=3 и SL_type= All orders, , то при прохождении SL_otkat+ SL_dop по тренду стоп лосс будет установлен сразу для всех 3-х ордеров сетки на уровень цена 3-го ордера + SL_otkat+ SL_dop. Если же SL_type= Each order, то стоп лосс будет установлен на уровень   цена++ SL_otkat+ SL_dop для каждог ордера.
MaxOrders - максимум ордеров (после достижения максимума ордеров - новые не открываются)

Версию доработанного советника без внедрения второй части ТЗ прошу выложить отдельно для тестирования.

 

Второй FXSpace хежирующий первого

Суть такая: нужно советника, которого мы доработали в первом разделе тех. задания, запустить параллельно, но в другую сторону.
В момент когда FXSpace будет идти против тренда и заходить в просадку, на определенном уровне сетки, указанном в настройках, будет запускаться этот же советник – вторая копия, но уже по тренду.
Нужно добавить настройку: Activation_Hedge
Если Activation_Hedge=3, это означает что при открытии 3-го колена сетки против тренда, открывается первый ордер второго FXSpace, но уже по тренду и для него действуют все настройки по тренду.

Добавятся настройки 

Grid_Trend - шаг сетки по тренду
RangeStep (оастается) - шаг сетки против тренда (настройка остается, но будет работать только для сетки против тренда)
То есть теперь шаг сетки по тренду и против трена будет отличаться

MultSizeStart - № п/п ордера (колена) сетки, начиная с которого начинает применяться MultSize
MultSize_Trend – множитель объема сделки при движении котировок по тренду

Если MultSizeStart=3 и MultSize_Trend=1,5 то объём сделки начинает умножаться на 1,5 начиная с 3-го колена сетки.

Добавятся настройки 
Lots  – начальный объем одной сделки
Lots_Hedge – начальный объем одной сделки для второй сетки советника, которая включается через Activation_Hedge


КАК ОПРЕДЕЛЯЕМ ОБЪЕМ 1-Й СДЕЛКИ НОВОЙ СЕТКИ ПО ТРЕНДУ:
новая сетка по тренду строится в двух случаях:
1. Открылось   n-е колено сетки против тренда указанное в Activation_Hedge. Если Activation_Hedge=3, то как только откроется 3-е колено сетки против тренда, сразу открывается первый ордер сетки по тренду

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

Объем первой сделки определяется по NewSetkaLot
если выбрано Lots_Hedge – берется объем сделки Lots_Hedge, указанный в настройках, в нашем случае 0,02
если выбрано Previous, тогда первым лотом данной сетки будет последний лот предыдущей закрытой сетки, но если предыдущих сеток еще не было – просто берем значение Lots_Hedge
если выбрано Percent, то тогда первый лот новой сетки будет вычисляться по формуле: лотность последней открытой на данный момент сделки FXSpace против тренда* Percent  / 100,
то есть если я укажу 70% и лотность последней активной сделки сетки FXSpace будет 0.30, то FXSpace откроет по тренду сделку объемом 0.30*70/100=0,21

Добавится настройка:

Pips_to_open – количество пипсов движения по тренду, необходимое для открытия новой сетки после закрытия предыдущей сетки по тренду

Пример:

Настройки:
Lots – 0,01
Grid_Trend – 10
RangeStep – 15
GridType -  AddPips
Grid_Level1 – 2
Grid_AddPips - 10
Grid_Level2 - 5
Grid_Level2_AddPips - 20
Lots_Hedge – 0,02
MultSizeStart – 2
MultSize_Trend – 1,5
SL_otkat - 20
SL_dop – 70
SL_level – 3
SL_type – All orders
MaxOrders – 20
Activation_Hedge  – 3
Pips_to_open – 5
NewSetkaLot – Percent  
Percent – 50

1.
Открывается первый ордер buy 0.01

2. котировки идут против тренда и через RangeStep 15 пунктов открывается 2-й ордер против тренда buy 0.02

3. котировки идут дальше против тренда и через Предыдущий шаг сетки +  Grid_AddPips  то есть 15 + 1=16 пунктов открывается третий ордер buy 0.03 и так как Activation_Hedge = 3  активируется FXSpace по тренду и открывается первая сделка sell 0.02 (NewSetkaLotPercent   расчет: 0.03*50%=0,015 округляется до 0.02)

4. далее котировки продолжают идти вниз и через Предыдущий шаг сетки +  Grid_AddPips   то есть через 16 + 1=17 пунктов открывается  ордер buy 0.04 и sell 0.03 (MultSizeStart=2, то есть с 2-го колена по тренду мы начинаем умножать объем на MultSize_Trend, в нашем случае 0.02*1,5=0.03)

5. далее котировки продолжают идти вниз и так как  Grid_Level2 – 5 и Grid_Level2_AddPips – 20, то через Предыдущий шаг сетки +  Grid_Level2_AddPips то есть через 17 + 2 =19 пунктов открывается  ордер buy 0.05 и sell 0.05 (0.03*1,5=0.045 округляем до 0.05)
так как SL_level – 3, то как только котировки проходят расстояние 90 пипсов (20+70, SL_otkat+ SL_dop) то так как SL_typeAll orders – ставим общий стоп лосс для всех открытых по тренду ордеров на уровень цена последнего открытого ордера sell 0.05 + 20 пипс (SL_otkat)
замечу что если бы SL_type стояло Each_order, то тогда бы стоп лосс был бы установлен на каждый ордер на расстоянии 20 пипсов от цены каждого ордера

6. далее котировки корректируются вверх и все ордера по тренду закрываются по стоп лосс, а открытые ордера против тренда частично закрываются согласно алгоритма FXSpace (попарно)

замечу что если бы SL_type стояло Each_order, то тогда бы стоп лосс был бы установлен на каждый ордер на расстоянии 20 пипсов ( SL_otkat) от цены каждого ордера
и тогда при откате котировок закрылся бы по стопу только последний ордер sell 0.05
остальные ордера остались бы в рынке

7. далее котировки продолжают идти вниз и так как  Grid_Level2 – 5 и Grid_Level2_AddPips – 20, то через Предыдущий шаг сетки +  Grid_Level2_AddPips то есть через 19 + 2 =21 пунктов открывается  ордер buy 0.06 по сетке против тренда
а по тренду у нас открывается новая сетка и так как NewSetkaLot = Percent  и Percent = 50 то открывается первый ордер sell объемом 0,03 (0,05*50/100=0,025 округляем до 0.03, формула: Лотность последней открытой на данный момент сделки FXSpace против тренда* Percent  / 100,
и т.д.

 

Рассмотрим ситуацию движения сразу по тренду

Открывается первый ордер buy 0.01
котировки идут по тренду и через Grid_Trend 10 пунктов открывается второй ордер buy 0.02 (MultSizeStart – 2, MultSize_Trend – 1,5, 0.01*1,5=0,015, округляем до 0.02)
котировки идут дальше по тренду и через Grid_Trend  10 пунктов открывается третий ордер buy 0.03 (0.02*1,5=0.03)
далее котировки идут по тренду вверх и так как SL_level – 3 то как они проходят 90 пипсов (20+70, SL_otkat+ SL_dop) то так как SL_typeAll orders – ставим общий стоп лосс для всех открытых по тренду ордеров на уровень цена последнего открытого ордера buy 0.03 + 20 пипс (SL_otkat)

далее котировки корректируются вверх и все ордера закрываются по стоп лосс, открытых ордеров нет

замечу что если бы SL_type стояло Each_order, то тогда бы стоп лосс был бы установлен на каждый ордер на расстоянии 20 пипсов ( SL_otkat) от цены каждого ордера
и тогда при откате котировок закрылся бы по стопу только последний ордер buy 0.03
остальные ордера остались бы в рынке

что будет дальше
советник открывает первый ордер по индикатору в
buy или sell
и работает дальше как обычно строя сетку по тренду или против тренда
если против тренда сетка начала строиться
то на колене на колене 3 (
Activation_Hedge = 3) начнет строиться сетка по тренду
после прохождения по тренду до колена 3 (
SL_level – 3) будет установлен стоп-лосс для всех ордеров сразу если выбрано SL_typeAll orders  и для каждого при SL_typeEach order
далее при коррекции курса ордера по трену могут закрыться
и затем при продолжении движения по тренду при отрытых позициях против тренда новая сетка по тренду снова открывается через
Pips_to_open – 5
то есть достаточно 5 пипсов по тренду чтобы она активировалась
первым ордером у сетки по тренду будет при настройке
NewSetkaLotPercent, Percent – 50
ордер объемом в 50% от текущего открытого ордера сетки против тренда
если же будет стоять выбрано
NewSetkaLotPrevious, то будет открыт последний ордер предыдущей закрытой сетки
к примеру у нас при откате котировок закрылся ордер объемом 0.04
тогда при установленном значении
NewSetkaLotPrevious, первым ордером сетки по тренду будет ордер объемом 0.04   направлении противоположном сетке против тренда


反馈

1
开发者 1
等级
(356)
项目
632
26%
仲裁
89
73% / 13%
逾期
12
2%
空闲
2
开发者 2
等级
(8)
项目
9
22%
仲裁
0
逾期
0
空闲
3
开发者 3
等级
(15)
项目
20
15%
仲裁
3
0% / 67%
逾期
2
10%
空闲
4
开发者 4
等级
(142)
项目
280
42%
仲裁
18
61% / 6%
逾期
29
10%
空闲
5
开发者 5
等级
(10)
项目
11
64%
仲裁
0
逾期
0
空闲
相似订单
Здравствуйте.Скажите,вы можете помочь немного модифицировать индикатор ( приложен к письму ). Я не буду углубляться в саму суть индикатора.Это не важно.Дело,по большому счёту,пустяковое. Хотелось бы в него добавить всего две функции: 1.Он,как и все другие индикаторы,работает в режиме онлайн.То есть,реагирует на каждое изменение графика цены. Хочется сделать в настройках индикатора графу под названием - "оффлайн"(true
Рассматриваю любые устойчивые системы с высоким KPI, от супер агрессивных с доходностью 50%-100% в месяц ( слив не чаще чем раз 12 месяцев ) , до супер консервативных с доходностью 15%-20% в год при просадке не более 2%-4% и наличием SL или Stop Out / С возможностью доработка под ТЗ или покупка готового решения
Нужен советник который можно установить на МТ5, функции которые требуются; 1) отключать возможность торговать если трейдер допустил просадку в -2% от депозита (уровень просадки админ может менять) 2) отключать возможность торговать если трейдер сделал тейк на более чем 10% от депозита (уровень тейка админ может менять) функция торговли автоматически отключается на 24 часа, также админ может включать функцию. Доп.инфу
Есть советник MT 5 для Мосбиржи с простой стратегией основанной на двух скользящих средних: на нижней МА покупка, на верхней МА продажа. Нужно исправить две вещи: 1. Сейчас на покупку выставляются лимитные ордера, а продажа набранной позиции осуществляется тейк-профитом. Нужно изменить советник, так, чтобы закрывалась позиция также лимитным ордером, а не тейк-профитом. Здесь нужно учесть что закрытие может быть
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3 по ценам договоримся отдельно
Нужен эксперт который будет проверять есть ли интернет соединение, есть ли связь с брокером, есть ли обновления котировок если нет то реконнект аккаунта через интервал времини. терминалов можеть быть дестяки открыто в каждом терминале свой реконнект MQL5 expert цена вопросы? конверт mql5 на mql5 смотреть файл
Нужен советник который может скачать файл с любым расширением (png, jpg, exe и т.д.) по заданной ссылке и сохранить в указанную папку. Без использования сторонних библиотек, только WinAPI. Файл советника нужен с открытым исходным кодом
Куплю Вашего прибыльного советника дорого Должна быть возможность протестировать его на истории и реальные статистические показатели РЕАЛЬНОГО счета Желательно не мартингейл, после тестирования и предоставления статистики счета предложу свою цену
Тех задания 1. Открывает сделки по сигналу индикатора. Перед открытием смотреть на фильтр и если фильтр тоже в этом направлении то открывает сделку если фильтр показывает тренд в противоположенную сторону то не открывает сделку. 2. Можно было выбирать торговлю но БООМ или КРАШ. 3. Стоплос 2 типа по пипсам и по кирпичикам. (при закрытие по кирпичикам если фильтр меняет тренд то задаем N кирпичиков после смени тренда
Необходимо разработать ПО для торговли на финансовых рынках с возможностью подключения к различным брокерам и управлением торговыми операциями по нашим сигналам. Сигналы поступают в табличку формата .csv, которая находится на удаленном сервере. Видим это примерно так: в нашу таблицу поступает сигнал negative (на продажу) или positive (на покупку) актива. Клиент получает этот сигнал и заданным количеством лотов

项目信息

预算
30 - 150 USD
开发人员
27 - 135 USD