Требуетса написать советник

MQL4 エキスパート その他

指定

Требуетса написать автоматический робот  советник  для работы по новостям( мультивалютный).работает только по времени выхода новостей.Все условие в тех задание

Техническое задание много валютного автоматического советника “Пунтик”

Меняющие значение которое водитса в терминале

   минимальный лот 0.01

    максимальный лот  10000

   максимальная просатка 30%

   кредитное плечо 500

   Take Profit    100

 Советник “Puntik” находитса  в C:\Program Files\MetaTrader 4 \experts. При запуске автоматического советника “Puntik” запускаетса блок  LoadNews.mqh” которая находится в папке в  include C:\Program Files\MetaTrader 4\experts\include.

Блок  Load News.mqh”  ежедневно скачивает страницу новостей с сайта forexfactory.com. Дату для скачивание берётся из текущей даты терминала и автоматически и формируетса запрос адрес страницы автоматически блоком Load News.mqh”. При запуске советника первоначально скачивает страницу новостей на текущую дату, потом ежедневно обновляет новости в 00ч00мин на дату следующего дня. Скаченные страницы должны сохранятся на компьютере в папке My Document/Puntik.html При сохранение новой страницы скаченных новостей ,предыдущая страница новостей удаляется.

Блок ''Load News’’ производит анализ с текста скаченной страницы и берет следующие сведение:

Важность  переменная “Importance '“

Дата – переменная “Data”

Время-переменная “Time”

Страну переменная- Сountry

С начало  программа ищет  в сохраненном файле ''Puntik.html’’ важность новостей “High Impact Expected” . Программа по строчно проверяет каждую предостающию новость списке файле ''Puntik.html’’. Если не обнаружилась не обходимая важность  то он анализирует следущию строку новостей в файле ‘’Puntik.html’’ на текущию дату.Если во всех строках новостей нету важности со статусом “High Impact Expected” . То программа  ждет когда она скачает новый список новостей на текущей день в 00ч 00мин(Если переменная importance не равна “High Impact Expected” то переходим сравниванию время переменным значением ''OpenTime’’ с терминальным временем).

Если списке скаченой странице файле ''Puntik.html’’ обнаружилась необходимая важность новостей (а нас интересует только  особо важные новости) то программа  формирует переменная “Importance '“ и анализирует следующий параметр дата ”Data’’ из  строк сохраненого файла ‘’Puntik.html’’. Дальнейший анализ строк новостей беретса та строка где программа нашла необходимвй нам параметр важность Программа автоматически сравнивает текущую дату  которая  в терминале с текстовым значением даты новостей в сохраненом файле ''Puntik.html’’

 

Так как  на сайте время указана Нью Йорское. Блок ''LoadNews’’ автоматически  переводит 12 часовой формат в 24 часовой и переводим время в терминальное время. Время берет из значений указанных в файле ''Puntik.html’’.

Из полученого переведенного время вычисляем 1 минуту и сохраняем это время как переменая ''OpenTime’’ (Например новость должна выйти в 19ч00,у нас время открытие сделки 18ч59)

Анализируем   следующий  строку –страну и переводит массив Сountry в переменное значение валютную пару которая она будет открыватса. Для следующих стран должна открыватса следующие валютные пары.

если указана страна ''AUD’’ то позиция будет открыватса на валютной паре  ''USD/AUD’’

если указана страна ''EUR’’ то позиция будет открыватса на валютной паре  ''EUR/USD''

если указана страна ''GBP'' то позиция будет открыватса на валютной паре  ''GBP/USD’’

если указана страна ''CHF'' то позиция будет открыватса на валютной паре   ''USD/CHF''

если указана страна ''CAD'' то позиция будет открыватса на валютной паре  ''USD/CAD''

если указана страна ''NZD'' то позиция будет открыватса на валютной паре  ''NZD/USD''

если указана страна ''JPY'' то позиция будет открыватса на валютной паре   ''USD/JPY''

если указана страна ''USA'' то позиция будет открыватса на валютной паре  ''EUR/USD''

 

Сравниваем  время переменным значением ‘’OpenTime’’ с терминальным временем. Если время не совпало то продолжаем сравнивать, если время совпало то проверяем массив ‘’Сountr '' котором указана страна и согласно данным из этого массива открываетса на терминале указанная валютная пара  и открываетса  скрипт вычисление лота депозита   

Вычисление лота от депозита с учетом кредитного плеча. Вычисление суммы   залога и лот происходит скриптом Lot.mq4. Скрип находитса по следующему пути C:\Program Files\MetaTrader 4\experts\Script. Параметры для скрипта беретса из параметров настройки советника.

Мин лот- Min Lots

Мак лот- Nax Lots

Просадка- Drawdown

Маржа- Margin

Скрипт вычисляет из  имеющего депозита лот с условием маржи по формуле что и SmartVolume.mq4   и заносит это значение а переменную Lots. Но таким образом чтоб просадка была не более 30% от депозита. Если просадка совпала с указанной величиной то советник больше не открывает ордера и сообщает об достигнутой просадке на экран монитора следующий текст “Советник достиг максимальной просадки”. Скрипт вычисляет минимальной и максимальной лот для данного брокера и подставляет эти значение в переменную Lot.

Алгоритм советника Puntik.mq4.

Берет данные Ask и Bid из котировки открытой валютной пары

Вычисление данный спрейд (Spreed)

Spreed= Ask –Bid

Заносим полученные данные Spreed в переменные ‘’ Spreed’’

 Запускаютса 2 отложенных ордера Buy stop и Sell stop на величину спрейда

    Buy stop= Ask+ Spreed*Lots

    Sell stop=Bid-Spreed*Lots

Заносим полученные данные Buy stop в переменные “BS”

Заносим полученные данные Sell stop в переменные “SS”

 Значение стоп лос вычисляется по следующему выражению

   Stop loss Buy stop=Sell stop+Spreed=Bid

   Stop loss Sell stop= Buy stop- Spreed=Ask

Заносим полученные данные Stop Loss Buy в переменные “LBS”

Заносим полученные данные Stop Loss Sell  в переменные “LSS”

Значение тайк профит вычисляется по следующему выражению

   Take Profit Buy stop=100+ Spreed

    Take Profit Sell Stop=100- Spreed

Заносим полученные данные Take Profit Buy stop в переменные “TPBS”

Заносим полученные данные Take Profit Sell Stop в переменные “TPSS”

 Вычисление возможного убытка

Loss Buy stop= Ask- Spreed

Loss Sell stop=Bid-Spreed

Заносим полученные данные Loss Buy stop в переменные “LBS”

Заносим полученные данные Loss Sell stop в переменные “LSS”

При достижение цены Открытие  отложенного ордера открываитса трелинг стоп  SmartTral с   величиной   Spreed и шагом 1 пункт и закрываютса противоположный открытый отложенный ордер. Остаетса только один ордер с ценой его открытия, установленным стоп лосом  и тейк профитом.  Если цена достикла от цены открытие ордера Buy stop  или Sell stop при   плюс или минус Spreed(зависимости от направление Buy или Sell ) открываитса ордер . Stop loss этого ордера равен Buy stop  или Sell stop (зависимости от направление Buy или Sell ) открываитса ордер.  Лот ордера равен лоту Открытие убыточному закрытого ордера .Тейк профит лота равен переменным  “LBS”или “LSS” . Таким образом возращаем  дополнительно свой убыток закрытием противоположным ордером Если рынок изменит свое направление и цена достигнит стоп лосса, то получаем убыток  на величину спрейда. Тогда все ордера закрываютса  и снова запускаетса советник

Если цена продолжает двигатса в нужном направление то срабатывает треллинг стоп и  то стоп лос передвигаитса на величину Spreed, то есть на цену открытие ордера(точка безубыточности) и при каждом изменение на величину шага 1 пунк тянет за собой прибыль  и стоп лос. Если цена изменилась и упала на величину шага то сработает стоп лос треллинг стопа и мы получим прибыль зависимое от движение валютной пары.Все ордера закрываютса  и советник запускаетса снова при поступление новых сравнение новостей в блоке News.

Если цена продолжает идти в нужном направление и достигнит тейк профита  то получаем прибыль на указаную в тейк профите величину. Все ордера закрываютса  и советник запускаетса снова при поступление новых сравнение новостей в блоке News.

  P.S. Так как многие брокеры и дилинговые центры час предлогают не фиксированный спрейд а плавающий. Возникла необходимость вычислять спрейд. Даже те брокеры и ДЦ которые предлогают фиксированый спрейд то на разных валютных парах он отличаитса.

Название файлов и их размещение в Metatrader 4

Puntik.mq4               в папке experts

Lot.mq4                     в папке scripts

SmartTral.mq4        в папке scripts

DelLoss.mq4             в папке scripts

LoadNews.mhq       в папке include

 

 

応答済み

1
開発者 1
評価
(40)
プロジェクト
106
52%
仲裁
17
12% / 65%
期限切れ
25
24%
2
開発者 2
評価
(54)
プロジェクト
164
43%
仲裁
43
47% / 16%
期限切れ
58
35%
3
開発者 3
評価
(265)
プロジェクト
539
50%
仲裁
55
40% / 36%
期限切れ
224
42%
仕事中
4
開発者 4
評価
(78)
プロジェクト
145
28%
仲裁
1
100% / 0%
期限切れ
27
19%
5
開発者 5
評価
(23)
プロジェクト
31
71%
仲裁
0
期限切れ
1
3%
6
開発者 6
評価
(2)
プロジェクト
2
100%
仲裁
1
0% / 100%
期限切れ
0
7
開発者 7
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
8
開発者 8
評価
(71)
プロジェクト
254
53%
仲裁
16
50% / 38%
期限切れ
83
33%
9
開発者 9
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
10
開発者 10
評価
(37)
プロジェクト
105
49%
仲裁
6
0% / 17%
期限切れ
21
20%
11
開発者 11
評価
(15)
プロジェクト
37
62%
仲裁
1
0% / 100%
期限切れ
1
3%
12
開発者 12
評価
プロジェクト
5
40%
仲裁
0
期限切れ
0

プロジェクト情報

予算
10 - 30 USD
開発者用
9 - 27 USD
締め切り
最低 1 最高 7 日