Jump to content
Sign in to follow this  
Den2S

Как сделать и запустить мультивалютного советника?

Recommended Posts

Den2S

Как сделать и запустить мультивалютного советника, одновременно открывающего позиции в разных валютных парах?

 

Ведь в МТ4 советник привязывается к конкретному графику валюты?

Как тогда торговать другие валюты одновременно, да еще и на разных таймфреймах?

 

И что будут возвращать переменные Bid и Ask?

Edited by Den2S

Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©).

------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites
Circle
Как сделать и запустить мультивалютного советника, одновременно открывающего позиции в разных валютных парах?

 

Ведь в МТ4 советник привязывается к конкретному графику валюты?

Как тогда торговать другие валюты одновременно, да еще и на разных таймфреймах?

 

И что будут возвращать переменные Bid и Ask?

 

Здесь на форуме можно найти советник "Баскетбуль" можете связаться с автором и посмотреть как устроен его советник.

...

Кстати один из ПАММ управляющих довольно успешно торгует с его помощью.

Edited by Circle

Что такое форекс? Это там где деньги лежат.  :)

Share this post


Link to post
Share on other sites
Den2S

Так там торговля идет по Н4, а меня интересует одновременная торговля по М1 сразу на нескольких парах.


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©).

------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites
Ugar68

В чём проблема? Есть у всех приказов (открытие' date=' закрытие, удаление, модификация ордеров) такой параметр как символ. Он и есть валютная пара.

Что бы узнать к какой валютной паре относится ордер есть функция OrderSymbol().

Вместо Ask и Bid нужно использовать MarketInfo() в нём есть параметр символ.

В качестве цен баров Close['], Open[], High[], Low[] надо использовать iClose(), iOpen(), iHigh(), iLow(). В них указывается символ и тайм фрейм.

  • Thanks 1

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
Den2S

А как такого советника в МТ4 запустить на реальные торги?

 

Советник ведь в МТ4 к текущему графику прикрепляется с конкретной парой и таймфреймом.


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©).

------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites
Circle
А как такого советника в МТ4 запустить на реальные торги?

 

Советник ведь в МТ4 к текущему графику прикрепляется с конкретной парой и таймфреймом.

 

А какая ему будет разница на каком графике он будет стоять если он использует для получения котировок механизм описанный выше пользователем с ником Ugar68.

...

Как я говорил ранее покопайтесь внутри баскетбуля по моему он может работать и не только на Н4. Если я правильно понял в него можно внедрить любую стратегию. Разница его от других советников только в том, что сделки по вашей стратегии будут открываться не по одной паре а по нескольким парам.

Edited by Circle

Что такое форекс? Это там где деньги лежат.  :)

Share this post


Link to post
Share on other sites
Ugar68
А как такого советника в МТ4 запустить на реальные торги?

 

Советник ведь в МТ4 к текущему графику прикрепляется с конкретной парой и таймфреймом.

Только если в качестве символа применяется Symbol() или 0, только если в качестве тайм фрейма применяется 0, советник привязан к символу графика и его тайм фрейму.

Естетсвенно, для работы на не родных символах, нельзя применять Bid, Ask, Point, Digits, ... Нужно применять MarketInfo с указанием нужного символа.

Естетсвенно, для работы на не родных тайм фреймах, нельзя применять Open[], Close[], High[], Low[], Volume[], Time[]. Вместо них надо использовать функции с указанием символа и тайм фрейма.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
AntFX

Вопрос на уровне внимательного чтения учебника по MQL4.


1

Share this post


Link to post
Share on other sites
Pavel Kononenko

Для мультивалютного тестирования нужно искать в гугле EA-тестеры, либо скачать ReportManager и им мерджить отчеты.

 

В реальной торговле никаких проблем с этим нет. Не важно на какой график цеплять советник, главное помнить про MarketInfo().

Share this post


Link to post
Share on other sites
Den2S

Как бы у меня идея обсчитывать сразу несколько валютных пар и при получении сигнала по одной из них - начать там выставлять ордера, при этом не прекращая обрабатывать поступающие котировки с других валютных пар.

 

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


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©).

------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites
Pavel Kononenko

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

 

У вас что ли 8086 процессор? Не надо экономить на процессорном времени. Год на дворе вон уже 2013.

Ни какого снижения быстродействия не наблюдал. Вы сначала напишите, а потом будем обсуждать)

Share this post


Link to post
Share on other sites
Ugar68
Как бы у меня идея обсчитывать сразу несколько валютных пар и при получении сигнала по одной из них - начать там выставлять ордера, при этом не прекращая обрабатывать поступающие котировки с других валютных пар.

 

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

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

То есть, по одной паре появился сигнал, советник отправил приказ. Пока приказ выполняется советник не обрабатывает другие пары, он просто ждёт ответа от сервера.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
Den2S
Не стоит грузиться быстродействием внутри компа. Процессоры нынче зверские. Но есть один тормоз, это время исполнения приказов. Оно может достигать нескольких секунд! Так вот, когда советник отправляет приказ, выполнение кода останавливается пока не придёт ответ от сервера что приказ выполнен или код ошибки.

То есть, по одной паре появился сигнал, советник отправил приказ. Пока приказ выполняется советник не обрабатывает другие пары, он просто ждёт ответа от сервера.

 

 

Но это существенно.

 

А если по какой либо паре не поступают данные о котировках в результате сбоя на сервере(например час или два, как мы видели в понедельник), а советник пытается выставить по ней ордер на рынок, то работа по другим парам блокируется на тот же самый час или два ?


Тот инвестор, который не фиксирует каждые 5% прибыли со своего счета, в результате потеряет всё.

(Касается любого инвестирования в памм-индустрии). Den2S (©).

------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites
Pavel Kononenko
Но это существенно.

 

А если по какой либо паре не поступают данные о котировках в результате сбоя на сервере(например час или два, как мы видели в понедельник), а советник пытается выставить по ней ордер на рынок, то работа по другим парам блокируется на тот же самый час или два ?

 

Нет конечно, вам же сказали, что программа не будет продолжена, пока не получит ответ с сервера. Ответ с сервера придет в любом случае, хоть в виде ошибки, хоть в виде нормального исполнения. Когда он придет работа робота продолжится согласно его логике.

Share this post


Link to post
Share on other sites
Ugar68
Но это существенно.

 

А если по какой либо паре не поступают данные о котировках в результате сбоя на сервере(например час или два, как мы видели в понедельник), а советник пытается выставить по ней ордер на рынок, то работа по другим парам блокируется на тот же самый час или два ?

Нет, вечно стоять не будет, есть таймаут. Если нет цен по паре, это ещё не значит что ордер не поставится. На ECN счёте даже не обязательно знать текущую цену что бы открыть Buy или Sell. На счёте Standart, не зная Ask, Buy не откроешь.

Всё равно, если имеет значение скорость работы, лучше использовать раздельные советники на каждую пару. При желании можно организовать обмен данными между ними через файлы или GV переменные.


Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Share this post


Link to post
Share on other sites
Avreh
Как сделать и запустить мультивалютного советника, одновременно открывающего позиции в разных валютных парах?

 

Ведь в МТ4 советник привязывается к конкретному графику валюты?

Как тогда торговать другие валюты одновременно, да еще и на разных таймфреймах?

 

И что будут возвращать переменные Bid и Ask?

 

Den2S, примерно полгода назад был проведен тренинг «Мастерская форекс роботов» и там я точно знаю, этот вопрос разбирался.

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

 

Share this post


Link to post
Share on other sites
DenBen

Опытные программисты подскажите! А протестировать советника сразу на нескольких парах можно будет?, или же действия, описанные товарищем Ugar68 в посте №4, применимы только к реальной торговле?

Edited by DenBen

Share this post


Link to post
Share on other sites
AntFX

Опытные программисты подскажите! А протестировать советника сразу на нескольких парах можно будет?, или же действия, описанные товарищем Ugar68 в посте №4, применимы только к реальной торговле?

В МТ4 открывать ордера в тестере можно только на одной паре, на той, на которой запущен тест. Котировки ограниченно доступны и с других пар. Полноценный мультивалютный тест возможен только в МТ5.


1

Share this post


Link to post
Share on other sites
абыр валГ

Опытные программисты подскажите! А протестировать советника сразу на нескольких парах можно будет?, или же действия, описанные товарищем Ugar68 в посте №4, применимы только к реальной торговле?

Можно прогнать каждую пару отдельно, потом склеить результаты из тестера каким нибудь софтом.

Share this post


Link to post
Share on other sites
абыр валГ

....Котировки ограниченно доступны и с других пар. ...

Там блин куча нюансов в реале по сравнению с тестером. Например, в реале клозы свечек приходят не одновременно по разным парам\фреймам.

Если сова анализирует данные с других пар\фреймов, например по клозам, а бары контролит по паре\фрейме, на которой запущен, то появление нового бара в сове не означает, что этот новый бар появился на других парах.

Share this post


Link to post
Share on other sites
DenBen

Можно прогнать каждую пару отдельно, потом склеить результаты из тестера каким нибудь софтом.

C фиксированным лотом не проблема, так и сделал, но хотелось бы с включенным ММ.

Share this post


Link to post
Share on other sites
AntFX
Там блин куча нюансов в реале по сравнению с тестером. Например, в реале клозы свечек приходят не одновременно по разным парам\фреймам. Если сова анализирует данные с других пар\фреймов, например по клозам, а бары контролит по паре\фрейме, на которой запущен, то появление нового бара в сове не означает, что этот новый бар появился на других парах.

В МТ5 эта "проблема" решена, но я лично совсем не уверен, что учет разных открытий к лучшему. Эта "особенность" создает реальную уйму проблем в программировании советников и индикаторов по сравнению с МТ4. Ведь если час по времени условно закончился, это значит что абсолютно все бары часовых ТФ на любых парах должны закрыться. А в МТ5 пока первый тик не придет текущий бар будет возвращать предыдущий час... Причем ещё на разных ТФ/индикаторах на той же паре это может быть разный час :) МТ5 такой МТ5

Кстати приходят не одновременно не клозы, а опены )

Edited by AntFX
  • Thanks 1

1

Share this post


Link to post
Share on other sites
AntFX

C фиксированным лотом не проблема, так и сделал, но хотелось бы с включенным ММ.

Тогда либо на МТ5, либо через танцы с бубном (сохранение и чтение данных из файлов)


1

Share this post


Link to post
Share on other sites
DenBen

Тогда либо на МТ5, либо через танцы с бубном (сохранение и чтение данных из файлов)

До MT5 ещё не дорос). Спасибо что откликнулись!

Share this post


Link to post
Share on other sites
Andrey L.

Named Pipes
Более того тем же механизмом возможен полноценный IPC - для сложных алгоритмов или скажем арбитража советников на разных графиках и/или программ весь код будет в .exe или .dll, в т.ч. и ресурсоемкий, если такой имеется. .exe для простоты можно консольным приложением написать, код торговой системы внутри или как подключаемая DLL, советник в MT самый примитивный, для связи, только выполнять команды .exe, вытаскивая их из пайпа и возвращать результат обратно в .exe/.dll
 
А .exe/.dll это взрослый мир программ, там можно таких вещей намутить, типа производительной нейронной сети запущенной на паре десятков ядер, конечных автоматов для распознавания образов, импортировать котировки от нескольких источников и вообще почти всё что хочешь.
 
Interprocess Communications

Shared Memory - самый быстрый способ, но возможна утечка памяти, если плохо обращаться.

Edited by Andrey L.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×