Конкурс. Напишу эксперт бесплатно. - страница 11

 
OZ0 писал (а) >>

Сергей, Вы, видимо, имели в виду на этой ветке (не на форуме).

Согласен. Это Ваше условие т.к. здесь Вы задаете правила.

Поэтому по МЭМ открыл отдельную ветку.

Насколько я понял, речь идёт о технической возможности написать личное сообщение средствами форума (что-то типа внутренней почты). На многих форумах такая возможность имеется, на форуме mql4.com - нет.

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

 
SK. писал (а) >>

Насколько я понял, речь идёт о технической возможности написать личное сообщение средствами форума (что-то типа внутренней почты).

я именно про эту возможность и спрашивал. спасибо. а то я думал что опять что то не нашел..:)

 
SK. писал (а) >>

Прекрасно работаю с Вашей программой на реальном счете. Пока что так - открываюсь при быстрых движениях и благодаря наглядности и наличию

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



При изучение режима АТ возникают некоторые вопросы.

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



Алгоритм таков:
___________________________________________________________________________________________
1. В виде внешних переменных задаются расстояния между уровнями, к примеру так:
0)Lev0 = 0;
1)Lev1 = 40; (т.е. этот уровень находится на расстояние 40 п. от предыдущего уровня и т.д.)
2)Lev2 = 40
3)Lev3 = 45
4)Lev4 = 55;

5)Lev5 = 60;
6)Lev6 = 65;
7)Lev7 = 75;
8)Lev8 = 80;
9)Lev9 = 85;

2. В виде внешних переменных задаются объемы открываемых на каждом из уровней ордеров, к прмеру так:
0)Lot0 = 0.01;
1)Lot1 = 0.01;
2)Lot2 = 0.01;
3)Lot3 = 0.03;
4)Lot4 = 0.06;

5)Lot5 = 0.12;
6)Lot6 = 0.24;
7)Lot7 = 0.48;
8)Lot8 = 0.96;
9)Lot9 = 1.92;
3. В виде внешней переменной задается номер уровеня, который назовем - уровнем включения защиты, к примеру так:

Protect_Lev = 5; (Protect_Lev >= 1 & Protect_Lev <= 9)

4. Критерии открытия:

4.1. НОВЫЙ ТОРГОВЫЙ ЦИКЛ(ТЦ)
4.1.1. Согласно значению индикатора(любого, на Ваше усмотрение) и значения внешней переменной:
Trade_Type = +1 - открывать ТЦ только вверх
Trade_Type = -1 - открывать ТЦ только вниз
Trade_Type = 0 - запрет на открытие нового ТЦ,
открывается с рынка ордер на уровне
Lev (0):
- объем Lot (0)
- TP = значению внешней переменной
- SL = 0
4.1.2. Для всех i = 1 до i = Protect_Lev: на уровнях Lev (i) устанавливаются лимитные ордера
- объем = Lot (i)
- TP = на уровне Lev(i-1)
- SL = 0
4.1.3. На уровне Lev(Protect_Lev) устанавливается стоповый ордер так, чтобы он срабатывал одновременно с лимитным ордером
ордером этого же уровня
- объем = СУММА(i=0 до i = Protect_Lev):Lot (i)
-TP = 0
-SL = на уровне Lev(Protect_Lev - 1) так, чтобы стоплосс срабатывал одновременно с ТР лимитного ордера
этого же уровня

5. Критерии модификации:
5.1. При срабатывание любого из лимитных ордеров на уровнях
Lev (i) (i = 1 до i = Protect_Lev),
необходимо произвести модификации ордеров:
Для всех j = 0 до j = i - 1: TP(j) = OP(i - 1)
5.2. "Ручное" передвижение лимитных ордеров
5.2.1 При "ручном" передвижение установленных согласно 4.1.2. лимитных ордеров на уровнях Lev (i) (i = 1 до i = Protect_Lev-1)
TP(i) меняться не должно, а положение TP(i+1) должно меняться синхронно с положением передвигаемого лимитного ордера.
5.2.2 При "ручном" передвижение установленного согласно 4.1.2. лимитного ордера на уровне Lev (Protect_Lev)
1. Положение TP(Protect_Lev) меняться не должно
2. Стоповый ордер, установленный согласно 4.1.3, должен передвигаться синхронно с лимитным ордером, а уровень его стоплоса
меняться не должен
5.3. "Ручное" передвижение стопового ордера
При "ручном" передвижение установленного согласно 4.1.3. стопового ордера на уровне Lev (Protect_Lev)
1. Положение стоплоса этого ордера меняться не должно
2. Лимитный ордер ордер, установленный согласно 4.1.2, должен передвигаться синхронно со стоповым ордером, а уровень его тэйкпрофита
меняться не должен
5.4. Расположение тэйкпрофита последнего по времени срабатывания в сторону ТЦ ордера уровня Lev (i)(i = 1 до i = Protect_Lev)
может меняться динамически в любой момент времени в зависимости от значения внешней переменной int Last_Order_TP.
Внешняя переменная int Last_Order_TP устанавливает в процентах(<=100%) от расстояния между уровнями Lev (i) и Lev (i-1)
положительный тэйкпрофит ордера уровня Lev (i)(i = 1 до i = Protect_Lev).
Значение int Last_Order_TP = 100% означает начальное положение тэйкпрофита ордера уровня Lev (i)(i = 1 до i = Protect_Lev):
TP(i) = OP(i - 1)
5.5. Расположение стоплоса стопового(или уже открытого в сторону противоположную ТЦ) ордера уровня Lev(Protect_Lev)
может меняться динамически в любой момент времени в зависимости от значения внешней переменной int Protect_Order_SL.
Внешняя переменная int Protect_Order_SL устанавливает в процентах(<=100%) от расстояния между уровнями
Lev (Protect_Lev) и Lev (Protect_Lev-1) положение стоплоса стопового ордера уровня Lev(Protect_Lev).
Значение int Protect_Order_SL = 100% означает начальное положение стоплоса стопового ордера уровня Lev(Protect_Lev), когда
SL(Protect_Lev) находится на уровне Lev(Protect_Lev - 1), когда закрытие стопового ордера по стоплосу должно происходить
одновременно с закрытием лимитного ордера уровня Lev(Protect_Lev - 1) по тэйкпрофит, при условие, когда у этого димитного ордера
TP(Protect_Lev - 1) = OP(Protect_Lev - 1)
5.6. Последний по времени срабатывания в сторону ТЦ ордер уровня Lev (i)(i = 1 до i = Protect_Lev-1) может быть закрыт в любой
момент времени при достижение им любой прибыли. В этом случае все лимитные ордера на уровнях j = i+1 до j = Protect_Lev и
стоповый ордер на уровне Protect_Lev удаляются и производится установка заново всех лимитных ордеров на уровнях
j = i до j = Protect_Lev по правилам п. 4.1.2. и установка заново стопового ордера на уровне Protect_Lev по правилам п. 4.1.3.
5.7. Стоповый ордер может быть закрыт в любой момент времени при достижение им любой прибыли. В этом случае необходимо установить
новый стоповый ордер с характеристиками объема, тэйкпрофита и стоплоса согласно п. 4.1.3. на расстояние равном значению внешней
переменной int Protect_Order_DS от цены его закрытия. Далее необходимо организовать его "подтяжку" вслед за ценой.
Подтягивая стоповый ордер необходимо следить за Еквити и Балансом. Если Еквити превысит Баланс, необходимо произвести закрытие
всех открытых ордеров и удаление стопового ордера.



ПРИМЕЧАНИЕ: 1. Приводимый алгоритм вполне рабочий. На его основе у меня работает советник, некоторые из приведенных выше функций
выполняются вручную. Направление торгового цикла выбирается также вручную на основе показаний В.Т.Э.
Вышеприведенные настройки уровней и лотов обеспечивают на инструменте NZDUSD в среднем до 20 баксов в день.
Критический момент в алгоритме изложен в 5.7. Здесь главное не спешить и дождаться флэта. И вообще, необходимо
"набить руку"
2. Разумеется, при реализации этого алгоритма в системе SK, возможны некоторые изменения в том, что касается

задания значений внешних переменных.

______________________________________________________________________________________________________________________

С уважением - С.Д.

 
SK, Сергей нужна простая и понятная инструкция по программированию функций с торговыми сигналами. Только давайте без кучи ссылок непонятно на что. Здесь вся инструкция может быть с десяток предложений не более. Люди спрашивают, а продукт ваш, дожна быть ваша прямая зантересованность в этом.
 
Integer писал (а) >>
SK, Сергей нужна простая и понятная инструкция по программированию функций с торговыми сигналами. Только давайте без кучи ссылок непонятно на что. Здесь вся инструкция может быть с десяток предложений не более. Люди спрашивают, а продукт ваш, дожна быть ваша прямая зантересованность в этом.

Я отлично понимаю смысл того, о чём Вы пишете. Но так не получится.

--

В нейтральных водах возле американского крейсера выныривает незалэжна субмарина.

Вылазит боцман: "Эй, на крейсере, подскажите направление на Африку"

С крейсера: "Норд-Норд-Вест 234.. северной широты... долготы..."

Боцман:" Та не, ты мне рукой покажи куда плыть".

--

Так не получится.

=============================

Что касается пользовательских кодов под AutoGraf 4.

Имеются две функциональные возможности.

.
1. Пользователь переносит алгоритм на MQL4 из своего эксперта в функцию автоматической торговли с предопределённым названием AG_AT.ex4

Как это работает понять очень просто. Посмотрите на схеме http://autograf.dp.ua/Pages/2/26/267/2671.htm

Нижняя синяя стрелка идёт от пользовательской функции автоматической торговли АТ на сервер. Это значит, что код, прописанный пользователем в этой функции, исполняется просто по правилам исполнения MQL4 - кодов. Это значит, что там можно всё, что можно в MQL4 - открывать, закрывать и модифицировать ордера, выставлять графические объекты, использовать технические и пользовательские индикаторы.

В этой части никакая консультация с моей стороны, вообще говоря, программисту и не нужна. Все возможности MQL4 к Вашим услугам.

Нужно иметь ввиду только одно обстоятельство - эксперт AG_exp.ех4 зациклен, обрачивается приблизительно 200 раз в секунду. На каждой его итерации вызывается функция AG_AT.ех4. Т.е. не на каждом тике, а и в период между тиками.

.

2. Имеется возможность управлять инструментами AutoGraf 4 из пользовательской функции автоматической торговли AG_AT.ex4.

Как это сделать - невозможно сказать одним словом.

Для учёта 24 инструментов приложения используется 4-мерный массив, который доступен для анализа в пользовательской функции автоматической торговли AG_AT().

Особенности установки и удаления каждого инструмента описаны на сайте. По каждому инструменту дан пример использования. В кодах имеются подробные комментарии. Примеры устанавливаются на пользовательский ПК при инсталляции. Чтобы посмотреть как работает пример, нужно просто взять файлик из подкаталога \experts\libraries\Example_AT и поместить его вв каталог \experts\libraries взамен того, что там уже есть. А дальше включить и помотреть как это работает. Можно в тестере в режиме визуализации.

==

Я очень заинтересован в том, чтобы довести до сведения каждого пользователя-программиста как это работает.

Что касается предложения Sart, то мне нужно подумать. Пока ясно, что в таком виде это реалзовать нельзя - никто там ничего не поймёт. Нужно что-то проще. Подумаю немного.

 

В анекдоте было Зюйд-Зюйд-Вест и правильный ответ - Ты мне не зюзюкай, а пальцем покажи. Кое что удалось выяснить:

Нижняя синяя стрелка идёт от пользовательской функции автоматической торговли АТ на сервер. Это значит, что код, прописанный пользователем в этой функции, исполняется просто по правилам исполнения MQL4 - кодов. Это значит, что там можно всё, что можно в MQL4 - открывать, закрывать и модифицировать ордера, выставлять графические объекты, использовать технические и пользовательские индикаторы.

В этой части никакая консультация с моей стороны, вообще говоря, программисту и не нужна. Все возможности MQL4 к Вашим услугам.

Непонятно, тогда какое участие вашей программы в этом?


Наверно меня интересует верхняя стрелка идущая в аналитический блок. Каковы функции аналитического блока? Каковы функции торгового блока? Описаний Аналитического блока и Торгового блока на странице не обнаружено, обнаруженны какие-то ссылки через яваскрипт, но в моем браузере они почему-то глючат.

Функция автоматической торговли может быть только одна? Каким образом обеспечивается возможность изменения ее параметров? Где должен находиться файл AG_AT.ex4?

Как это сделать - невозможно сказать одним словом.

Тогда напишите инструкцию, или вы предлагаете непременно устанавливать себе на комп AutoGraf, и разгребать весь код из его тысячи файлов?

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

Это зачем? (мне). Нужно кокретное и лаконичное описание интерфеса этих инструментов для взаимодействия с ними из AG_AT

 

>> Непонятно, тогда какое участие вашей программы в этом ?

Участие очевидное:

1. Пользователь по своему усмотрению в любой момент может включить или отключить исполнение алгоритма АТ.

2. Пользователь имеет возможность вручную вмешиваться в процесс торговли одновременнно с исполнением алгоритма АТ.

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

.

>>Наверно меня интересует верхняя стрелка идущая в аналитический блок. Каковы функции аналитического блока? Каковы функции торгового блока?

Аналитический и торговый блок показаны на схеме условно, только с той целью, чтобы показать роль режимов работы AutoGraf 4.

Группа аналитических функций имеет своим назначением поддержку работоспособности программы. В частности, назначением некоторых из них является:

1. Обеспечение исполнения правил требования и разрешения при установке инструментов. Например, на StopLoss невозможно установить для исполнения одновременно инструменты 1, 2 (Подтяжку вверх и Подтяжку вниз). Это технически неисполнимо. Если пользователь это пытается делать, то устанавливается новый инструмент, а старый удаляется.

2. Анализ необходимости вывода сообщений пользователю.

3. Анализ действий пользователя. Отказ исполнения некорректных действий пользователя.

4. Исполнение управляющих воздействий пользователя.

5. Формирование торговых приказов в соответствии с текущими условиями торговли.

Функции торгового блока также очевидны:

1. Поддержание торговых операций - отправка приказов на сервер и анализ ошибок.

2. В целом торговый блок реализует торговлю на основании торговых приоритетов, описанных здесь:

http://autograf.dp.ua/Pages/2/26/264.htm, здесь http://autograf.dp.ua/Pages/2/26/262.htm и здесь http://autograf.dp.ua/Pages/2/26/263.htm.

.

>> обнаруженны какие-то ссылки через яваскрипт, но в моем браузере они почему-то глючат

Дайте, пожалуйста, ссылку на глюкавую страницу (сайт проверялся для IE, Opera и FF).

.

>>Функция автоматической торговли может быть только одна?

Да. В планах имеется расширение количества используемых функций.

.

>>Каким образом обеспечивается возможность изменения ее параметров?

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

Этот вопрос - к обсуждению. Технически можно ввести параметры как внешние переменные AutoGraf и передать их в функцию AG_AT() через массивы. Но такой подход имеет свои недостатки - сколько должно быть этих параметров не очень понятно. Другой вариант - пользовательский: можно ввести изменение параметров через скрипт и глобальные переменные кл.терминала.

Так или иначе, но нужно принимать во внимание, что средствами MQL4 невозможно вывести панель настроек отдельной функции.

.

>>Где должен находиться файл AG_AT.ex4?

Это написано здесь http://autograf.dp.ua/Pages/2/26/267/2672.htm Просто прочтите.

.

>>Тогда напишите инструкцию.

Так и сделано. Весь сайт и является подробной инструкцией. А именно:

1. Каждый инструмент представлен на отдельной странице. Для каждого инструмента указаны правила разрешений, ограничений и требований. (например, интрумент звуковой уровень нельзя ставить на ордер; подтяжку ордерной линии нельзя устанавливать на игровое поле; для установки ограничивающего инструмента нужна сопровождающая подтяжка - ограничиваемый инструмент). Раздел AutoGraf 4 >Инструменты.

2. Всё содержание раздела AutoGraf 4 > Управление ордерами > Функция АТ как раз и содержит интересующий Вас материал.

3. Для каждого инструмента представлен пример его использования AutoGraf 4 > Управление ордерами > Функция АТ > Примеры функции AG_АТ .

.

>>Это зачем? (мне). Нужно кокретное и лаконичное описание интерфеса этих инструментов для взаимодействия с ними из AG_AT

Без этого Вы не сможете составить код управления инструментами из пользовательской функции.

 
Integer писал (а) >>

В анекдоте было Зюйд-Зюйд-Вест и правильный ответ - Ты мне не зюзюкай, а пальцем покажи. Кое что удалось выяснить:

Непонятно, тогда какое участие вашей программы в этом?

Это зачем? (мне). Нужно кокретное и лаконичное описание интерфеса этих инструментов для взаимодействия с ними из AG_AT

Как-то Вы очень энергично...
На мой взгляд, принципиально все достаточно просто:
Ваша программа получает на входе вот эти вот переменные -
int Parol_AT,
 double Order[][],
 string Object[],
double Instrument[][][][],
int Ddraw_Object[][],
double& Tuning[],
double& Manager[][],
string& Message[] )
Здесь переменные без имперсанда - входные, они отображают текущее состояние торгов,
с имперсандом - выходные, с их помощью вы формируете для автографа команды(скорее макрокоманды) по управлению ордерами,
которые он и выполняет.
Таким образом роль автографа заключается в следующем:
1. Он передает в Вашу программу текущее состояние торгов в очень удобном для анализа виде
2. Вы в своей программе анализируете это текущее состояние и формируете для автографа команды(макрокоманды)-управляющие воздейтвия,
которые автограф и выполняет, как только Вы вернете ему управление из своей программы.

Вот, к примеру, автограф самостоятельно находит все ордера и все их характеристики записывает удобоваримом матричном виде
double Order[][].
Каждая строка этой матрицы представляет ордер. Столбцы в этой строке представляют характеристики ордера.
Вы можете спокойно, к примеру, найти по столбцу Маджик_Номер интересующий Вас ордер и , при необходимости,
к примеру, установить трейлинг (с нужными характеристиками) стоплоса этого ордера.
Для этого с помощью функции
int AG_Set_Instr(double& Manager[][], int ii, double v1, double v2, double v3,
double v4, double v5, double v6, int Ticket , int ih)
Вы должны установить для данного ордера нужный для этого инструмент, а автограф будет самостоятельно осуществлять трейлинг. Все подобные инструменты имеют номера - 1, 2,...

Естественно, для работы необходимо:
1.Изучить интересующие Вас инструменты
2. Изучить структуру всех входных массивов

В принципе, действительно, Автограф, исполняя инструменты и отслеживая текущее состояние торгов, берет на себя всю техническую часть работы по написанию эксперта.

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

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

С уважением - С.Д.

 

Sart:

На:


Я тоже думаю, что все просто, но так много риторики, что за деревьями леса не видно. Один вопрос - и куча ссылок в ответ.

SK:

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

Вне всякой похвалы!!! И куда это девать?.... "Гусары молчать!" (© Поручик Ржевский)

Аналитический и торговый блок показаны на схеме условно

Там что-нибудь есть конкретно, а не условно?

И вообще, так много текста, и так мало толку, может вам кистевой эспандер прикупить - пальцы разминать, чтобы писать только по существу. Опять на 555-ый раз перечисление всех функций. Человек, к этой разработке вообще отношения не имеет и то ответил, четко конкретно и понятно (Sart). Куда ни ткнись - почти один и тот же текст.

Для удаления или закрытия одного или нескольких ордеров, определённых пользователем, необходимо выделить мышью соответствующие ордерные линии и нажать клавишу Delete.

Это как? Просто взять удалить линию и ордер тут же закроется? Я не ошибся? Может тогда лучше сесть на бомбу?

 
Integer писал (а) >>

Это как? Просто взять удалить линию и ордер тут же закроется? Я не ошибся? Может тогда лучше сесть на бомбу?

В среду, как будто, я хотел удалить вертикальную линию, и по ошибке выделил линию ордера селл для евро. Нажал Делете, ордер закрылся, а линия удалилась.

Ордер был в небольшом убытке, я махнул рукой и пошел покурить. Пришел через 10 минут, а евро уже внизу на 100 п.


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

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


О режиме АТ я пока молчу - детально еще не изучил. Хотя первое, на что обратил внимание (и Вы также):

"Параметры отдельно взятой функции нельзя изменить во время работы. Параметры подбираются на стадии проектирования."

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

тем более, что предусмотрен диалог трэйдера с АТ-программой.

Причина обращения: