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

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 (NewSetkaLot – Percent   расчет: 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_type – All 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_type – All 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_type – All orders  и для каждого при SL_type – Each order
далее при коррекции курса ордера по трену могут закрыться
и затем при продолжении движения по тренду при отрытых позициях против тренда новая сетка по тренду снова открывается через Pips_to_open – 5
то есть достаточно 5 пипсов по тренду чтобы она активировалась
первым ордером у сетки по тренду будет при настройке NewSetkaLot – Percent, Percent – 50
ордер объемом в 50% от текущего открытого ордера сетки против тренда
если же будет стоять выбрано NewSetkaLot – Previous, то будет открыт последний ордер предыдущей закрытой сетки
к примеру у нас при откате котировок закрылся ордер объемом 0.04
тогда при установленном значении NewSetkaLot – Previous, первым ордером сетки по тренду будет ордер объемом 0.04   направлении противоположном сетке против тренда


Добавить настройку:
Investing запрос - возможность отключить запрос к investing.com (для тестера стратегий_
убрать обращение к ресурсу на новости - такая ошибка в тесетре чтобы не выводилась - https://prnt.sc/qrgy8x
это нужно чтобы быстрее прогонять тест в тестере стратегий
так как генерится ошибка и тестирование замедляется в несколько раз
Значения: Да, Нет

응답함

1
개발자 1
등급
(49)
프로젝트
134
27%
중재
62
13% / 53%
기한 초과
58
43%
무료
2
개발자 2
등급
프로젝트
0
0%
중재
0
기한 초과
0
무료
비슷한 주문
Техническое задание на разработку советника для MetaTrader 5 Платформа : MetaTrader 5 Брокер : Exness (exness.com) Индикатор : RSI (Relative Strength Index) Язык программирования : MQL5 1. Описание задачи Необходимо разработать автоматизированного торгового советника на основе индикатора RSI для платформы MetaTrader 5. Советник должен работать с брокером Exness и осуществлять сделки на основе значений RSI в
Добрый день ! Требуется сеточный советник по направлению тренда со следующими функциями : Основные функции: 1- Добавляем количество лимитных ордеров = N число 2- Добавляем размер начального лота. 3- Добавляем шаг сетки в пунктах. 4- Добавляем стоп лосс и тейк профит . 5- Множитель лота при достижении стоп лосса = true or false 6- Значения умножителя лотов = N число 7- Максимальный размер лота = N ЧИСЛО ПОСЛЕ
Куплю робота 250 - 500 USD
Приобрету вашего робота если он: 1.Статистически прибылен на 99% качества тиков (если есть журнал сделок (фхбук) за последние года - будет большим преимуществом) 2. ЭТО НЕ МАРТИНГЕЙЛ ИЛИ СЕТКА, роботов с такими моделями я не рассматриваю априори 3. Одиночные трейды с ТП и СЛ 4. Не ХТФ, без стратегий которые зарабатывают на хеджировании В остальном готов рассмотреть ваши предложения Присылайте статистку за последние 3
Здравствуйте! 1. Введение Настоящее техническое задание описывает требования к разработке торгового робота для автоматизированной торговли на рынке Forex. Основной задачей робота является выполнение сделок на основе заданных алгоритмов и стратегий, минимизация рисков и максимизация прибыли. 2. Цели и задачи Цель: Разработать торгового робота, который автоматически выполняет сделки на рынке Forex, основываясь на
Period = 20 Deviations = 3 Shift = 0 Apply for = Close ----------------------------- Start lot = 0.01 Lot multiplier = true Multiplier = 1.0 Increament = 0.01 ------------------------------ Only buy = true Only sell = true ----------------------------- Use Time filter = true Trading time = GMT +5 Start Hour = 10 End Hour = 19 ----------------------------- Takeprofit = 30 pips Stoploss = 50 pips Use stoploss last
Modify indicator Cycles 4 with rectangle Make indictor for mt4 and mt5 with comments in source code This indicator based on Cycles_4 Parametres MA1 - is default MA2 (yes or no) - yes - value add (if not 3 MA - 2nd in trend MA, also if only 1 MA without 2 and 3) Trend MA (true\false) - true - yes - value add Revers rect - true/false Fix rect by height - true\false, like how user add and this remember in the exit from
1. Ключ к индикатору. Для МТ4. Надо добавить в индикаторы такую функцию, чтоб можно было прикреплять к торговому счету или работал после ввода ключа, лимитный-без лимитный. Есть шаблон в МТ4, все параметры должны быть как в шаблоне, но надо убрать некоторые окна. В шаблоне 12 индикаторов, если получится объединить все индикаторы в одно, чтоб было один или два файла. 2. Ключ к индикатору фибоначчи + ЗигЗаг. Для МТ5
Приветствую нужно програмное обеспечение Копировальщик в двух файлах который работает через интернет сервер - с которого идет рассылка. Должен иметь в настройках: -ip адрес для подключения клиента -номер сервера -база внутри кода, разрешенных счетов которые могут подключатся к копированию -отправка информации по позиции в телеграмм канал ----------------------- Клиент должен иметь настройки - ip адрес для подключения
Нужно отвязать робота от счета демо и реал. Так что бы всё работало так же, что б всё функции сохранились. Напишите, пожалуйста цену и сроки. Не знаю что ещё нужно писать, спрашивайте)
Нужно добавить защиту в советник для МТ4. 1. проверка счета на котором он торгует в каком либо форекс дилере. Мне будут присылать номер счета я буду его вписывать в код чтоб другой не мог им пользоваться. 2. Защита по работе по времени. Нужно иметь возможность прописать дату в время в коде начала и окончания если за пределы ее вышел он будет писать что больше не торгует. 3. Защита от копирования данного советника

프로젝트 정보

예산
30 - 80 USD
개발자에게
27 - 72 USD
기한
에서 1  5 일