Бесплатное написание МТ4 экспертов по TRUF-методу. Всем, у кого есть готовое Техзадание

  • Автор темы Автор темы xiritu
  • Дата начала Дата начала

Understanding

Активный участник
Здравствовать всем!)
Если будет возможность сделать по моей ТЗ советника - очень поможешь.

Советник, по-сути, чистый мартин.
ТЗ:
Работа на 4 или 5 знаке.
Магик, чтоб несколько советников можно было установить на разные инструменты.
1. Установка количество фиксированных пипсов в TP и SL и трейлинг стоп.
2. Понимание советником стоп и лимит уровней которые присутствуют у брокера в спецификациях торгового инструмента (у Альпари это равно спреду, в среднем 2-3 пункта, у Forex4you - чуть больше).
3. Возможность самому создать последовательность из Buy или Sell хоть чтоб 1000 последовательности можно было прописать или более.
Вижу это как список. Вроде такого: 1. Buy, 2. Buy, 3. Sell, 4. Sell и в любых последовательностях. Также нужно добавить состояние Wait (ждать).
Выглядеть это должно так: ждать либо указанное количество секунд или минут или часов и нужно чтоб можно было выбрать чего именно ждать в этом параметре, секунд, минут, часов, дней, недель, месяцев...
Нужно чтоб Wait'у можно было придать также и одновременное условие в пунктах сколько нужно переждать помимо времени.
Можно чтоб этот параметр умел ждать одновременно и заданное время, и заданное кол-во пипсов (пунктов).
Чтоб можно было настроить Wait на: одновременное ожидание в количестве пунктов (роста или падения цены) и на количество времени.
Чтоб можно было отключать время ожидания или количество пунктов. Чтоб можно было Wait настроить на ждать либо время, либо пункты и вместе и то, и другое.
Выглядит это так: 1. Buy, 2. Buy, 3. Wait=5 Sec, 4. Sell, 5. Buy, 6. Wait=17 Min, 7. Buy, 8. Wait=1 W, 9. Sell, 10. Wait=1 MN, 11. Buy, 12. Wait=3 H, 13. Buy, 14. Wait=2 D
Пользователю можно списком в окне, а можно в отведенном месте в коде советника задавать строку или строки в которых можно будет вручную указать последовательность открытий из Buy/Sell/Wait (чтоб было поудобнее, но и не надо супер менюшки для этого делать).
Мартингейл настраиваемый. В котором можно указать все что необходимо. стоимость пункта, маржу и так до 21 "колена".
Например: первая сделка Buy с объемом 0.01 с TP и SL=5 пипсов, если убыток, то вторая указанная в очередности с объемом увеличенным согласно мартингейлу.
Было бы хорошо чтоб можно было прописать каждый ордер из 21 или можно 33 ордера прописать объем допустим. Чтоб указать объем ордера в этой очередности.
Например: 1. Volume=0.01, 2. Volume=0.02, 3 Volume=0.04 ...
Или встроить множитель, чтоб по множителю без настройки торговал, чтоб накопившийся слитый объем запоминал и открывался так, чтоб мог отторговать следующим ордером.
Выбор сколько ордеров открыто в момент 1, 2, 3 или 4 или вообще пока средств хватает...
Выбор какого типа открывать Buy или Sell и есть ли там Wait между ними.
Возможность указать на какой секунде открывать ордер на 59 секунде или на 1 секунде начавшейся минуты.
Чтоб было несколько проб открыть ордер в случае если случился обрыв связи или брокерский сервер недоступен.
Чтоб эти попытки открытия ордеров можно было настроить.
Например: 1я попытка открыть ордер на 1 секунде новой минуты, 2я попытка на 2 секунде новой минуты, 3я попытка на 3 секунде новой минуты и так чтоб можно было хоть 60 попыток в течении минуты прописать.
Чтоб можно было выбрать как открываться. Например открывать ордер каждую минуту или каждые 2 минуты или каждые 4 минуты или каждые 2 часа (в рамках стандартных ТФ в МТ4)
Возможность одновременного открытия Sell и Buy пока не закроется по условию (TP/SL или время).
Если это все кто-то реализует - возможно, станет проще жить. Вижу что такой сов с TP и SL равный 5 или 7 пипсов вполне может быть очень прибыльным.
Всех благ!) Если кто такой сов сделает - наверняка поможет многим людям, в том числе и мне.
 

xiritu

Активный участник
Охохо )
Вы написали просто огромный список хотелок. Под техзаданием понимается более упорядоченный формат.
Если... То... Иначе.
Чтоб мне начать работу по нему тут пару часов с вами голосом общаться надо.
Сделайте пожалуйста прописанные алгоритмы со списков внешних параметров и полной логики как открывать или закрывать.
 

Understanding

Активный участник
Спасибище огромное!) Да, в течении суток оптимизирую ТЗ - напишу более лаконично, красиво и понятно. Если этот сов получится - будет суперски. По минуткам за день должно быть более 10 сделок (правда, это будет мартин, но этот тип торговли по мартину более оптимальный нежели в сеточниках).
 

Understanding

Активный участник
Приветствую! =)

Постарался привести алгоритм в более не менее читаемый вид. Если что не ясно - рад пояснить!

Советник должен уметь самое главное - это понимать лимит и стоп уровни брокера и их отсутствие.

Далее:
1) Устанавливать TP/SL в пипсах;
Устанавливать TP/SL в валюте депозита (например: 0.50 USD, 1 USD, 2 USD...);
Закрывать ордер через указанное количество секунд/минут/часов/дней/недель/месяцев (если ордер не закрылся по другим условиям);
Трейлинг стоп, если он тут вообще уместен...

2) Работу как с Buy, так и с Sell ордерами;
Установка ТОЛЬКО Buy или Sell;
Понимать работу на 4 и 5 знаках;
Понимать лимит и стоп уровни инструмента (из спецификаций у брокера)

3) Указывать общее количество открытых ордеров: 1, 2, 3 или 17...;
Указывать на какой секунде открывать ордер: на 1 секунде, на 2, или на 3, или на 4 и т.д секунде.
Например: Открывать ордер на 59 секунде;
Открывать следующий ордер через ХХ секунд/минут/часов/дней/недель/месяцев...

4) Возможность создать очередь из типов открываемых ордеров (Buy/Sell/Wait). Какое число ордеров можно указать в очереди максимальное, чтоб без потери производительности. Например: 999 открываемых ордеров можно назначить в очереди. Buy, Buy, Sell, Sell или в любой другой очередности. Добавить параметр Wait (ждать). Чтоб Wait мог настраиваться.

В настройках Wait: ждать указанное количество секунд/минут/часов/дней/недель/месяцев от секунды открытия "фантомного ордера" которому присвоен Wait ("фантомный ордер" - место где должен был открыться ордер с указанным параметром TP/SL/временем через которое должен закрыться этот ордер, но в очередности этому ордеру присвоен ни Buy/Sell, а Wait, это значит, ордер не открывается, а советник ждет условий по этому значению Wait, и откроется следующий ордер Buy/Sell или "фантомный ордер" со значением Wait из списка очередности лишь после срабатывания одного из условий текущего Wait, который сейчас открывается. В настройках параметров Wait могут быть условия в пипсах в TP/SL, или количество единиц времени которые указано прождать этому Wait'у (под единицами измерения времени имею в виду все стандартные периоды доступные для работы ордера).

Если указали Wait без присвоенного времени и отличного количества пипсов от числа установленного в TP, чтоб Wait принимал значение "ждать количество пунктов из TP", если не сложно, сделать переключатель где указать откуда Wait'у считывать значение по умолчанию, а именно: если принудительно не написали после символа "=" что Wait'у именно ждать - значение из TP или из SL или времени ожидания, то можно чтоб Wait считывал из TP. Это чтоб долго не заморачиваться с выборкой для Wait'а (из SL или TP или значением времени), можно прямо из TP считывать. Но, конечно, лучше настраиваемый выбор откуда Wait'у ждать по умолчанию.

Поясню еще раз: Если принудительно кроме самого "Wait" никаких других символов в строке где указывается очередность типа ордеров не написали (например, написали просто "1. Wait" - тогда по умолчанию читать, если 2. Wait=5 TP Pips and 15 Sec - тогда присваивать указанное условие для текущего Wait'а в этой очередности).

Настроенный Wait в очередности из других ордеров чтоб выглядел как-то так: номер ордера. Wait=5 TP(SL) Pips and 5 Sec (Min/Hour/Day и другие стандартные периоды).

Чтоб в итоге эта очередь из указанных открытий ордеров выглядела, примерно, так: 1. Buy, 2. Sell, 3. Buy, 4. Sell, 5. Wait, 6. Buy, 7. Wait=5 SL Pips, 8. Wait=5 TP Pips, 9. Wait=2 Min and 7 SL Pips... и далее.

Встроенный множитель Мартингейл по единицам в валюте депозита/по Volume в ордере (чтоб можно было указать по чем увеличивать, по Volume в ордере или по единицам в валюте депозита, например в USD 1, 2, 4, 8 и т.д.).
Если можно, то надо чтоб советник понимал текущую цену в объеме и выставлял объем по Мартингейлу адаптивно цене.

Вроде бы все "хотелки" касаемо этого алгоритма. Если что не ясно то в личку или мне на почту в письме вопросы - vesalex "собака" gmail.com (без пробелов)

https://www.forex4you.com/ru/traders-calculator/#account=classic_ndd&instrument=fx - Калькулятор трейдера брокер Forex4you на нем можно ориентироваться, например.

Очень верю и надеюсь на их реализацию. Этот алгоритм торговли - как будто симуляция торговли на бинарных опционах, но на классическом форексе с применением Мартингейла =) Это будет грандиозной помощью, если получится это воплотить в реальность. Это значит, что при работе на 1м графике в сутки может открываться достаточно немало ордеров. Всего лучшайшего!)
 
Последнее редактирование:

el_Venso

Активный участник
Добрый день !

Прошу Вас написать советника на основе индикатора.
При появлении сигнала (стрелки) открытие по направлению.
Выставление тэйка - стопа.

Вынести в советник:
все настройки (кроме алертов)

Важное условие - работоспособность на всех типах графиков Renko.

Заранее благодарю.
 

Вложения

Understanding

Активный участник
Забыл про обрыв связи с серверами ÷( Надо тоже сов настроить на поведение при обрыве связи. Чтоб понимал что связь прервалась. Чтоб можно было в настройках выбрать как сову вести при обрыве связи. При подключении связи чтоб советник вел себя согласно настройкам которые можно настроить заранее.

При появлении связи если были открытые ордера - сравнить текущую цену в ордерах, если она изменилась согласно условию по времени или по SL/TP то закрывать ордер/ордера. Если нет, то ждать пока условия не сойдутся. Если был разрыв связи и не удалось установить ордер из очередности, надо иметь возможность указать на какой секунде открывать ордер/ордеры после восстановления связи.
Например: Когда появилась связь открывать ордер на 1 (или на 2, 3 и т.д., до 59 секунд) секунде новой минуты после появления связи; Открывать ордер/ордера через 1 (2, 3, и т.д. секунды/минуты/часы и т.д.).

Думаю, эта возможность не будет лишней. Было бы хорошо, если сов понимал бы качество связи с серверами по индикатору у брокера в МТ4 если слабое и ордеров открытых нет - ждать хорошего качества связи с серверами. VPS конечно, но мало ли. Брокеры часто любят делать подлости в виде разрыва связи с серверами. Успеха!)
 
Последнее редактирование:

xiritu

Активный участник
Важное условие - работоспособность на всех типах графиков Renko.

Если это график есть чарт МТ4 (пусть даже построенный искусственно, но обновляется регулярно), то эксперту все равно что за бары на нём (ренко, секунды, несуществующий инструмент и тд). Значит озвученное "условие" лишнее.

Если же не чарт, то никакой индикатор (и как следствие эксперт) работать на таком не будет.
 

xiritu

Активный участник
3) Указывать общее количество открытых ордеров: 1, 2, 3 или 17...;
Указывать на какой секунде открывать ордер: на 1 секунде, на 2, или на 3, или на 4 и т.д секунде.
Например: Открывать ордер на 59 секунде;
Открывать следующий ордер через ХХ секунд/минут/часов/дней/недель/месяцев...

4) Возможность создать очередь из типов открываемых ордеров (Buy/Sell/Wait). Какое число ордеров можно указать в очереди максимальное, чтоб без потери производительности. Например: 999 открываемых ордеров можно назначить в очереди. Buy, Buy, Sell, Sell


опишите пожалуйста рабочий пример со всем этим функционалом
Чтоб обязательно было понятно как делать:
- пример как выглядит внешний параметр список-последовательности ордеров
- внешний параметр, отвечающий за "на какой секунде открывать ордер" и как он связан со списком
- внешний параметр, "Открывать следующий ордер через ХХ секунд/минут/часов/дней/недель/месяцев..." и как он связан со списком
- зачем "Какое число ордеров можно указать в очереди максимальное", и покажите как оно связано со списком
- "В настройках Wait" - конкретно что за настройки, какие из них выносится во внешние параметры.

А вообще пождалуйста, перепишите ТЗ, чтоб это было задание, а не "Возможность" что то сделать. Так как все что вы пишите - конечно имеется такая возможность в МТ4.
Но я не понимаю, функционал вам надо реально или вы просто узнаете есть ли такая возможность или нет.
Если вам нужен какой то внешний параметр, или от параметра что то зависит, то распишите что конкретно происходит с этим параметром.

1. Список внешних параметров
2. Когда открывать первый оредр
3. Когда открывать второй ордер
4. Когда не надо ничего открывать а делать Wait
5. Когда закрывать ордер
6. Когда закрывать все ордера
итд
Пишите полностью конкретно. Что в каждом случае брать из параметров, что анализировать и как принимать решение для открытия/закрытия оредра.

Так как пока даже не представляю как ваш текст структурировать и выдать ТЗ на утверждение.
 

Understanding

Активный участник
Всем здравствовать!)

Постарался максимально точно алгоритм записать. С названием настроек (можно укорачивать или изменять иначе название настройки, более коротко, главное, чтоб было ясно что оно меняет).

Советник понимает работу на 4 и 5 знаках
Считывает Limit & Stop Levels у брокера .
Чтоб выдавал уведомление что текущий TP (SL) нельзя выставить, потому что Limit & Stop Levels не позволяют.
Выдавал запрос на изменение TP/SL по минимально-доступному числу, которое Limit & Stop Levels позволяют выставить в TP/SL
В общем, чтоб присекал недопустимую установку в TP/SL, например, на 1 пипс, если лимит и стоп на 2 пипса
Множитель Мартингейл согласно валюте депозита или объему.

Вижу все настройки так:

В одном выдвигающемся списке написаны такие строки:
Устанавливать TP в пипсах
Устанавливать TP в валюте депозита
Далее настройка "Трейлинг стоп" принимает значение вкл/выкл.
Далее настройка "Общее количество открытых ордеров" и число от 1 до 99 допустим
Далее настройка "Открывать ордера" принимает значения "Только Buy", "Только Sell", "Buy+Sell", "Buy+Sell+Wait"
Далее настройка "Очередность типа ордеров":
Наверное, здесь лучше реализовать поле для ввода текста вручную (чтоб можно было сколь угодно ну или 99 или 999 открытий ордеров прописать).
А записывалось чтоб так:
1. - это значит, что под символом 1. идет первый открывающийся ордер с момента старта работы советника и так до 99/999.
Далее тип ордера:
Buy - покупка
Sell - продажа
Wait-Sell или Wait-Buy - ждать "продажные" или "покупные" пункты в TP/SL
Чтоб из строки очередности считывались записи времени.
Где Sec это секунда, Min это минута, Hour это час, Day это день, Week это неделя, Month это месяц
Все-таки сделать "Фантомное открытие ордера" в виде Wait, Wait-Buy, и Wait-Sell,
Если указано в очередности Wait-Sell это значит, что нужно прождать пока цена не подешевеет на указанное в TP количество пипсов (или по SL)
Если указано в очередности Wait-Buy это значит, что нужно прождать пока цена не подорожает на указанное в TP количество пипсов (или по SL)
Если указано SL/TP или TP/SL этот символ "/" значит, что любое движение в указанное количество пунктов считается.
То есть, пункты роста, или пункты падения от начала ожидания (в любую сторону, главное условие - что произошло движение в размере 5 пунктов вверх/вниз)
Если Wait в строке выглядит как Wait-Buy=5 TP Pips Or=5 Sec
значит на текущем Wait ждать пока 5 пунктов не пройдут в Buy-прибыль от начала цены ожидания (было 1.1000 стало 1.1005)
или пока не пройдет 5 секунд, что раньше произойдет - по тому условию и закрывать.
Если Wait без приписки "-Buy" или без "-Sell" значит ждать движения цены в любую сторону на указанное количество пипсов
Или просто сделать чтоб понимал такую запись: Wait-Buy=5 TP/SL (чтоб понимал написание и SL/TP и TP/SL) Pips
это тоже значит что должно пройти движение в 5 пунктов после открытия либо по SL либо по TP "фантомного ордера" Buy либо вниз, либо вверх
В общем, если Wait без указания TP/SL или SL/TP то значит, любое движение цены в любую сторону на указанное количество пунктов и + время. Пример: 1. Wait=5 Pips Or=5 Min - 5 пипсов вниз или вверх или 5 минут ожидания

Еще пример:
1. Buy; 2. Sell; 3. Wait=5 Pips Or=5 Sec; 4. Wait-Buy=5 TP Pips; 5. Wait-Sell 5 SL Pips Or=1 Min; 6. Wait-Sell=10 TP/SL Pips; 7. Wait-Sell=15 TP Pips
Более подробное описание:
Оператор "Or" записывается так: Or=15 Min после имени оператора в данном случае это Or, идет символ равно = после равно идет число количество единиц времени, в этом примере это 15 минут
количество единиц времени указывается сразу после равно в стандартных значениях (Sec, Min, Hour, Day, Week, Month где Sec - секунда, Min - минута и далее)

Здесь вначале указал настройку "На какой секунде открывать ордер" и цифра от 1 до 59, но понял, что будут конфликты с условиями по TP/SL и времени. Потому, эта настройка важна в момент запуска советника при открытии первого ордера и при обрыве связи. В обычное рабочее время эта настройка не учитывается, а работают условия TP/SL и единиц количества времени. Потому верным будет настройка с именем Открывать первый ордер на хх секунде - где хх цифра от 1 до 59. Значит, считается от новой минуты если написано 13, а 13 секунд текущей минуты уже прошли.

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

При появлении связи после обрыва, если были открытые ордера до разрыва связи - сравнить текущее время с временем открытия в ордерах, если согласно условию по времени ордера уже не должны быть в работе, то немедленно закрывать эти ордер/ордера.
Если вдруг произошел "лишний" убыток, то учесть этот "лишний убыток" и открыть новый ордер + этот накопившийся убыток.
Если был "лишний" выигрыш, то можно не учитывать этот "лишний выигрыш", который произошел в момент обрыва связи. Честно говоря, никогда не видел такой "лишний выигрыш".
Хотя, у брокера всегда ордера по указанным параметрам закрываются, это нам не видно когда связи нет, а там условия по TP и времени сработают и без работы советника, кажется...
Если условия в указанное количество пунктов или единиц времени не произошли, и ордера еще в работе, то просто ждать, пока условия не сойдутся (обычная работа, иными словами - не предпринимать никаких действий).

Настройка поведения при обрыве связи:
После стабилизации связи с сервером открывать ордер на ХХ (где ХХ - число от 1 до 59 секунд) СЕКУНДЕ НОВОЙ МИНУТЫ;
После стабилизации связи с сервером открывать ордер ЧЕРЕЗ УКАЗАННОЕ ВРЕМЯ - окошко где можно вписать цифру и выбор времени в виде Sec, Min, Hour, Day, Week, Month ХХ (2, 3, и т.д. секунды/минуты/часы и т.д. любое из допустимого от минимального до максимального значения).
Возможность одновременного включения/отключения выбора "галочками" этих двух настроек касаемо обрыва связи.

Было бы хорошо, если сов понимал бы качество связи с серверами по индикатору у брокера в МТ4 если слабое качество связи и ордеров открытых нет - ждать хорошего качества связи с серверами.
Думаю, эта возможность не будет лишней.
Вроде, все. Всех благ!) Пишите, что да как. Рад ответить.
 
Последнее редактирование:

Understanding

Активный участник
Можно поменять название с "Очередность типа ордеров" на "Цикл типов ордеров".
Важно добавить еще 3 настройки в виде выбора в выпадающем меню:

После окончания цикла ордеров начинать всегда цикл
С первого ордера (с 1. Ордера)
С последнего ордера (например, с 99. Ордера)
Чередовать цикл (при чередовании начинать после окончания цикла с последнего ордера в очереди, когда закончится и этот цикл - начинать с первого, потом опять с последнего и так циклично по-кругу).
 
Последнее редактирование:

Vitus910

Интересующийся
Всем привет! Кто нибудь сможет написать советника по условиям- задается диапазон времени, вычисляется цена максимум и минимум этого диапазона. И выставляются 2 ордера 1- байстоп намаксимум. 2. Селстоп на минимум. Если нет возможности выставить отложник то открываем бай или селл (смотря где цена) после срабатывания первого ордера второй убираем Тп ставим ТП1- регилируем в настройках, CL = цене другой границе диапазона. И сразу на эту цену CL устанавливается отложенный ордер с мартином . Если в рынке бай то на CL будет селлстоп и наоборот. ТП у переворотного ордера = ТП 2 - так же настраивается в настройках и опять ТП = ТП2 а CL = границе противоположенной диапазона а ТП = ТП2 При ТП ждем следующий диапазон. И в рынке может быть только один ордер пока по ТП не закроется ордера за тот диапазон. Настройки- ТП1. ТП2. Коэф. Мартингейла. Начальный лот. Магик. Время открытия диапазона. Время закрытия диапазона... Такая неваляшка, только с отложенными ордерами. Заранее благодарю
 

xiritu

Активный участник
Understanding, очень извиняюсь, :disappointed: но помочь с вашим ТЗ не смогу.
 

Vitus910

Интересующийся
Спасибо, что заинтересовало тех задание. Все правильно, кроме одного. В настройках нужно вынести'' ' от времени' '' 00:00"' и в коде это одно из условий - настраиваемый диапазон= не с "00:00", а допустим с "00:45" изменеия указал в файле.
 

Вложения

Последнее редактирование:

xiritu

Активный участник
Все правильно, кроме одного. В настройках нужно вынести'' ' от времени' '' 00:00"' и в коде это одно из условий - настраиваемый диапазон= не с "00:00", а допустим с "00:45" изменеия указал в файле.

добавил. Вижу у вас логика не продумана полностью (вероятно вы не торговали по данной стратегии). Поэтому взял смелость добавить от себя лично - удаление ордера при закрытии одного по ТП. Добавил бы еще и учет нового дня но трейдинг это все же не моя сфера деятельности, поэтому удержался )

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

Вложения

Vitus910

Интересующийся
Спасибо. Посмотрю. Вначале в тестере, затем на реале. И вы не правы. Но я выше писал что в рынке должен быть только один ордер . Я по данной стратегии торгую на реале,, алпари 4 знак,, есть такой сов NEVALYSHKA, он торгует только рыночными ордерами и поэтому он меня не устраивает, так как в альпари бывают провалы по связи и ордер может открыться с разницей пунктов 20. А это много, сами понимаете. И само собой вмэтом коде (который я попросил) указаны не все параметры и настройки. Я их сам допишу. У меня проблемы с написанием отложеных ордеров. Так что, большое спасибо и если захотите поучаствовать в полном написании советника, то прошу в личку. Поделюсь и настройками и своими наблюдениями торговли по данной системе на реальном счете
 
Последнее редактирование:

Vitus910

Интересующийся
Привет. Проверил. Работает чуть не правильно. 1 открывает сделки - допустим бай= если выставил диапазон 16- 21, и если цена в 18 была 1.4240, а в 21 стала 1.4220. То он поставит отложку на 1.4220. А не по минимуму и максимуму цены этого диапазона и в день закрытия по ТП больше сделок открываться не должно, а он после закрытия по ТП и возврате цены в диапазон, и после последующего выхода из диапазона (и только свечей 16 и 21, а не всего диапазона) опять открывает сделку, а не ждет следующего дня. Заранее благодарю. Будет желание и возможность. То поэксперементируем. И ещё рпз, спасибо. За уделенное время
 
Последнее редактирование:
Верх