Jump to content
Vipro

Советник: Коррекция объема 2

Recommended Posts

Vipro

Необходимость корректировки позиций на ПАММе для меня представлялась сплошным кошмаром по сравнению с полным отсутствием данной проблемы на Zulu. Там провайдер торгует только на собственные средства (демо или реальные), а каждый инвестор открывает пропорциональный своему вкладу объем. Поэтому на работе провайдера открытие или закрытие позиций инвестора никак не отражается. Хотелось обеспечить такую возможность и на ПАММах, и данный советник, как мне кажется, может в этом сильно помочь.

 

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

Данный советник отслеживает появление новых открытых позиций и открывает аналогичные позиции с объемом, рассчитанным исходя из инвесторских средств на текущий момент.

При закрытии управляющим своих (ведущих) позиций данный советник закрывает соответствующие инвесторские (ведомые) позиции.

При вводе/выводе средств инвесторами данный советник увеличивает/уменьшает объем всех инвесторских позиций, не трогая позиции управляющего.

 

На реале еще не тестировалась, погонял только на демо.

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

 

Успехов всем!

VC.mq4

Edited by Vipro

Share this post


Link to post
Share on other sites
Vipro

Добавляю пояснения по поводу данного советника из другой ветки

 

... Ваш советник способен разрулить "пирамидинг" из допустим 10-15 ордеров?? Если стартовый лот равен 0,01???

Советнику нет разницы сколько будет открыто ордеров управляющим. Для каждого из них будет открыт свой инвесторский ордер.

Размер минимального лота тоже не важен - я тестировал как раз на 0.01

 

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

Советник для каждого ордера берет ценовую информацию по его паре. А как взаимодействуют между собой ордера управляющего при данном подходе тоже не важно. Данный советник просто будет открывать и закрывать аналогичные ордера, повторяя действия управляющего. Если два ордера хеждируют друг друга, то при выводе средств инвестором два соответствующих хеджирующих инвесторских ордера уменьшатся на одинаковый объем и будут дальше хеджироваться.

Как-то так...

 

Хм... Что я запутался, а как он откорректирует 0,01 лота??? Можно уточнить?? Видимо, совсем я плох стал...

Допустим вот в этом примере???

 

Вот пример.

Минимальный лот (minLot) = 0.01

Средства управляющего (baseBalance) = 1000

Прирост баланса для корректироваки объема на минимальный лот (minLotBalance) = 1000

Пусть общий баланс равен 10000.

Тогда cредства инвесторов составляют 10000 - 1000 = 9000 = 9*minLotBalance.

 

Управляющий открывает позицию 0.01 лота, => VC автоматически открывает ведомую позицию на 0.09 лота (9*0.01).

 

Инвестор добавляет 2000 (средства инвесторов = 11000)

VC закрывает позицию 0.09 и открывает 0.11 лота. Позиция управляющего на 0.01 так и остается.

 

Затем инвестор выводит 10000 (средства инвесторов = 1000)

VC закрывает позицию 0.11 и открывает 0.01 лота. Позиция управляющего на 0.01 так и остается.

 

Затем инвестор выводит еще 600 (средства инвесторов = 400)

Это меньше, чем допустимо для торговли минимальным лотом, поэтому VC закрывает инвесторскую позицию на 0.01. Позиция управляющего на 0.01 так и остается. В данный момент инвесторских средств не достаточно для открытия минимальной позиции, поэтому для новых позиций управляющего позиции инвесторов открываться не будут до тех пор, пока инвесторы не пополнят хотя бы до 1000 инвесторских.

 

Осталось только в оферте сделать минимальный ввод и вывод равный параметру minLotBalance (в данном примере 1000), и при любом вводе-выводе гарантированно можно будет изменить объем инвесторских позиций как минимум на минималный лот.

 

Как мне откорректировать допустим лот в 0,01, открытый по золоту на селл по цене 1000.00...

Не будем вдаваться откуда он, не суть, мне что его перенесут, на 1300,00..

Не сразу увидел этот пример... Конечно, позицию на минмально возможный лот при выводе средств инвестором остается только закрыть. Но в предлагаемой схеме работы ни одна совокупная позиция управляющего и инвестора не будет иметь размер меньше чем 2 минимальных лота - один открыт управляющим на свою долю средств, другой - на долю инвестора. Захотел инвестор вывести - его позиция закроется, он зафиксировал свой убыток. Управляющий свою позицию по золоту оставил и, допустим, она вернулась с 1300 к 1000, где управляющий ее и закрыл. Таким образом, убыток управляющего - 0, прирост средств памма за период - тоже 0!!!

Ведь инвестор внес, для простоты, 1000, на нее открылась его позиция. На убытке в 300 пунктов (и для простоты 300 у.е.) он вывел остаток средств: 700 и потерял 300. Таким образом на ПАММ от инвестора пришла 1000 и ушла 1000 (300+700), соответственно на показателях доходности действия инвестора не отразились!

 

Написал, читаю и думаю, неужели это правда так красиво получается? :)

Share this post


Link to post
Share on other sites
Rubinovi4
Добавляю пояснения по поводу данного советника из другой ветки

Это все прекрасно, я вас понял, да красиво.. Да супер.. Советник может подкорректировать, поставить свою лотность в зависимости от инвесторских сумм, но повторю, это не панацея, пример, пожалуйста.. Я в понедельник еду в Москву, беру с собой кпк, и тут инвестору приспичило вывести сумму... Что тогда, мне с кпк сидеть, считать на листочке, 50 ордеров открытых, по 10 парам??? Или ломится в офис к альпам, с требованием выдать мне срочно терминал, что б запустить советника.. 8-)

 

Это все хорошо, для Сухова и для тех кто торгует стандартно, стоп-профит на одной паре..

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

Вы понимаете о чем я.

Edited by Rubinovi4

Бог, устал нас любить...

Бог, просто устал...

Share this post


Link to post
Share on other sites
Rubinovi4
Не сразу увидел этот пример... Конечно, позицию на минмально возможный лот при выводе средств инвестором остается только закрыть.

 

А почему я должен закрывать??? Это противоречит условиям ТС.. Или сейчас можно??? А понял, у нас противоречит когда счет сливаешь, тогда плохо, ты не трейдер, ты ушел от условий своей же ТС, а сейчас, типо, закроем на это глаза. и сделаем вид что все хорошо??? :1111483289:

 

Правильно сказал кто -то, это все КОСТЫЛИ для ТС...


Бог, устал нас любить...

Бог, просто устал...

Share this post


Link to post
Share on other sites
Rubinovi4
А ведь можно проще, пришел инвестор, на те Рубик 10000, на месяц, все, я знаю, что месяц я работаю спокойно.. Настраиваю советника на эту сумму, лотность ставлю.. Тружусь, и он меня не дергает... И знаю точно, что в конце месяца, нужно закрыть позиции, и быть готовым к выводу средств..

 

И ваши КОСТЫЛИ не нужны...:fly2::fly2::fly2:


Бог, устал нас любить...

Бог, просто устал...

Share this post


Link to post
Share on other sites
Vipro

Я в понедельник еду в Москву, беру с собой кпк, и тут инвестору приспичило вывести сумму... Что тогда, мне с кпк сидеть, считать на листочке, 50 ордеров открытых, по 10 парам???

Да, собственно говоря, я не описал этот момент, считая его очевидным: советник должен висеть на терминале постоянно. Не на КПК, а на своем постоянно подключенном компе или VDS. Последний вариант, на мой взгляд, предпочтительнее, а стоит немного - порядка $250 в год.

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

 

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

Вы понимаете о чем я.

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

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

Edited by Vipro

Share this post


Link to post
Share on other sites
Vipro
А ведь можно проще, пришел инвестор, на те Рубик 10000, на месяц, все, я знаю, что месяц я работаю спокойно.. Настраиваю советника на эту сумму, лотность ставлю.. Тружусь, и он меня не дергает... И знаю точно, что в конце месяца, нужно закрыть позиции, и быть готовым к выводу средств..

Не поверите, но я тоже хотел бы чтобы можно было делать именно так. Открывая ПАММ, я точно не знал, как можно решить проблему с инвесторами-прыгунами, одна из надежд была на то, что вернут штрафы... но реальность такая, какая есть.

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

Share this post


Link to post
Share on other sites
Igonter

Локи и стопы. Полная аналогия... :) Судя по описанной логике работы (текст не смотрел), в любой момент времени суммарная поза будет одинаковой, что в "моем" варианте, что в Вашем. Разница только в двух существенных моментах:

1) У Вас психологически удобнее, это важно для тех Управляющих, кто не дружит с математикой :)

2) За психологическое удобство платится денежка, как и в случае с локами. Потому что закрытие/переоткрытие ПОЛНОЙ инвесторской позиции приводит к гораздо бОльшим затратам на спред, чем при добавлении/закрытии лишь дельты.

Share this post


Link to post
Share on other sites
Vipro

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

По поводу 2) Вы правы, наверное, стоит немного изменить схему открытия/закрытия, сделать так, чтобы каждой ведущей позиции соответствовала группа ведомых. При добавлении объема тогда открываем дополнительную ведомую позицию на размер дельты, при уменьшении объема - закрываем ведомые ордера таким образом, чтобы уменьшить объем на как можно более близкое к необходимому значение, а на оставшуюся разницу открываем новую дополнительную ведомую позицию.

Вообще-то, если проводить аналогию с Zulu, то при добавлении средств инвестором там не происходит увеличения объема уже открытых позиций. Новые средства учитываются только при открытии последующих позиций. В данном советнике, и в Вашем тоже, если запретить корректировку уже открытых позиций при пополении баланса инвестором, то никаких потерь на спред не будет. Хотя потенциально мы теряем часть возможной прибыли от открытия дополнительного объема... или убытка :)

Share this post


Link to post
Share on other sites
Igonter
В данном советнике, и в Вашем тоже, если запретить корректировку уже открытых позиций при пополении баланса инвестором, то никаких потерь на спред не будет. Хотя потенциально мы теряем часть возможной прибыли от открытия дополнительного объема... или убытка :)
К сожалению, нельзя запретить маржинкол. :) Если при открытых позах вывести существенную часть капитала, то хочешь-не хочешь, а надо корректировать объемы.

Кроме того, если не делать корректировку при вводах-выводах, это вносит случайную компоненту в работу системы, которой там быть не должно. По теории вероятности, конечно, мелкие плюсы будут компенсироваться мелкими минусами. Но возможны и резкие отклонения, и не факт что в пользу трейдера... Так что лучше все-таки корректировать. ;)

Share this post


Link to post
Share on other sites
Vipro
Если при открытых позах вывести существенную часть капитала, то хочешь-не хочешь, а надо корректировать объемы.

Будьте внимательнее, пожалуйста! Я писал только про отключение корректировки при вводах средств (пополнении баланса инвестором).

Share this post


Link to post
Share on other sites
Rubinovi4
Да, собственно говоря, я не описал этот момент, считая его очевидным: советник должен висеть на терминале постоянно. Не на КПК, а на своем постоянно подключенном компе или VDS. Последний вариант, на мой взгляд, предпочтительнее, а стоит немного - порядка $250 в год.

А не проще так???? И не надо огород городить?? Я не пойму, что тут не логичного??

Допустим, создается оферта, мин. сумма 1000, вознаграждение 30% на 70% срок месяц??? или бессрочная оферта..

 

P.S А советника я могу и сам написать... Так что.. Считать я тоже умею.. )))

 

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


Бог, устал нас любить...

Бог, просто устал...

Share this post


Link to post
Share on other sites
Vipro

А не проще так? ... создается оферта, мин. сумма 1000, вознаграждение 30% на 70% срок месяц? или бессрочная оферта...

Пока данной возможности не реализовано в Alpari - не проще. Добиваться ее реализции никто не запрещает, но лично для меня предпочтительнее не дожидаться, а работать уже сейчас в имеющихся условиях. В предложенном варианте тоже есть свои подводные камни, о которых Вам уже упоминали, например, разные инвесторы входят в разные даты => сроки окончания месяца для каждого инвестора тоже будут разные.

 

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

А что вы там ожидали увидеть? Признаки грааля? :) Я не хвалился, что данный советник "жедживый". Я написал, что если несколько ордеров управляющего открытые на разных парах хеждируют друг друга, то данный советник, открыв аналогичные ордера на средства инвесторов, добавит ордера, которые будут хеджировать друг друга так же, как и ордера управляющего. При одинаковом изменении их объема при выводе средств инвестором эти ордера уменьшатся на одинаковый объем и будут дальше хеджировать друг друга. Значение термина хеджирование соотносилось с контекстом Ваших слов "... я писал недавно советника, который ставит ордера на нескольких парах... И что б он понимал, что они друг друга хеджат", хотя термин хеджирование подразумевает более широкое толкование.

 

... А советника я могу и сам написать...

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

  • Thanks 1

Share this post


Link to post
Share on other sites
Alfi

А можно чтоб в советнике было заложено объем сделки % от депо??И скажите он работает этот советник???

Share this post


Link to post
Share on other sites
Vipro

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

 

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

 

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

 

Если надо, чтобы корректировщик запускался только в ролловеры, то для этого можно использовать советник Игонтера. Кажись, он как раз это позволяет, поскольку при его использовании Вы сами открываете позицию исходя из всех имеющихся на данный момент средств. Пример:

 

Ваш КУ - 1000 и еще 9000 инвесторских средств

Ваша система ММ предполагает, что капиталу 1000 соответствует размер открываемой позиции 0.1 лота

 

Тогда при использовании советника Игонтера Вы открываете позицию для суммарного депо 10000 размером 0.1 * (10000/1000) = 0.1 * 10 = 1 лот

и затем именно эту позицию будет изменять в объеме советник Игонтера в моменты ввода/вывода средств, т.е. в ролловеры.

 

При использовании данного советника для тех же условий ММ, Вы открываете позицию размером только 0.1 лота, исходя только из своего КУ. Данный советник, если он запущен, обнаруживает новую позицию, смотрит, сколько средств инвесторов еще имеется (9000), и открывает еще одну позицию размером 0.1 * (9000/1000) = 0.1 * 9 = 0.9 лота. Именно ее он затем будет изменять в объеме при вводах/выводах в моменты ролловера. Ваша позиция в 0.1 лота им не трогается. Но когда Вы ее закрываете, корректировщик отслеживает это, и тут же закрывает свою позицию на 0.9 лота, связанную с Вашей.

 

В этом основная разница.

 

Наверное, для ручной торговли советник Игонтера более предпочтителен, но точно сказать не могу. Надо Вам самому попробовать, тогда поймете что удобнее исходя из Вашего стиля торговли.

 

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

  • Thanks 1

Share this post


Link to post
Share on other sites
TarasBY
Судя по описанной логике работы (текст не смотрел), в любой момент времени суммарная поза будет одинаковой, что в "моем" варианте, что в Вашем.

Мне, как управляющему, важно знать, что корректор при открытии сделки основной ТС, тут же адекватно среагирует открытием "ведомой" сделки на объём лота, соответствующий размеру инвест-капитала относительно моего капитала. Коррекция должна быть адресна - на ПАММе могут работать несколько ТС с разными процентами рисков, и усреднённая коррекция (математическая) меня не устраивает!!! :no:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
TarasBY
Со своей стороны, предложенного в данной ветке советника ни Вам, никому другому, не навязываю, поскольку писал его, как уже говорилось, для себя.

Ну, народ - мало того, что за чужой труд "спасибо" не скажет, так ещё и обгадить норовит... :stop:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
Vipro
Коррекция должна быть адресна - на ПАММе могут работать несколько ТС с разными процентами рисков

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

Share this post


Link to post
Share on other sites
Vipro
Спасибо! =D>

Именно в таком ключе я тоже вижу решение задачи коррекции объёма.

Единственно, что Ваш вариант не подходит под мою ТС, так как не предусматривает частичное закрытие ордеров, от которого я отказываться не собираюсь (по крайней мере пока :no:...). :-\"

Я пока плохо знаком со спецификой частичного закрытия ордеров на ПАММе для того чтобы взяться за реализацию отслеживания связей м\у родительским и дочерними ордерами. Может Вы сможете меня просвятить о "подводных камнях" в этом вопросе? :roll:

На ПАММах нет "чистого" частичного закрытия, поэтому я не реализовывал в корректировщике отслеживание события изменения объема ведущей позиции. На ПАММах если при закрытии ордера мы указываем меньший объем, то позиция сначала закрывается полностью, а затем открывается новая на оставшуюся разницу в объемах. Такой сценарий корректировщик должен обрабатывать как надо, т.е. переоткрывать ведомую позицию (это проверил только что на реале) с меньшим объемом (это лучше точно проверить хоть на демо, а то у меня ведомая позиция и так была минимального объема, поэтому переоткрылась таким же объемом).

Ещё вопрос к создателю (я про "VC"):

- Бегло просмотрев код, сразу напрашивается вопрос сохранения некоторых переменных (например, lastBalanceTime), а также данных из массивов (например, T), хотя в Вашем варианте он и перезаполняется, НО не правильнее в него вносить только новые данные и избавляться от "отработанных"???

Это сделано специально, что бы корректировщик не "вспоминал" прошлые изменения баланса и не преоткрывал бы уже имеющиеся ведомые позиции такого же объема. Насчет массива T, на мой взгляд, не проще. Чтобы обнаружить новые и лишние данные все равно придется перелопатить весь массив и все ордера. А заполняя его заново - гораздо надежнее. По сравнению с тем количеством ресурсов, которое отъедают торговые советники, если тут и можно что-то сэкономить, то настолько мало, что оно того не стоит.

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

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

- вариант использования VPS, не выход - я его уже и так использую... :casha:

Не совсем понял, почему не выход, если Вы его уже используете? Добавляете в любой терминал еще один график с любым таймфремом, вешаете на него VC с отличающимся магиком от Ваших советников и все. Инструмент для графика желательно взять тот же, что и для торговых советников, чтобы не было ситуации, когда по торгуемому инструменту пришло уже 10 тиков, а по тому, где висит корректировщик, только один.

Share this post


Link to post
Share on other sites
TarasBY
На ПАММах нет "чистого" частичного закрытия, поэтому я не реализовывал в корректировщике отслеживание события изменения объема ведущей позиции. На ПАММах если при закрытии ордера мы указываем меньший объем, то позиция сначала закрывается полностью, а затем открывается новая на оставшуюся разницу в объемах. Такой сценарий корректировщик должен обрабатывать как надо, т.е. переоткрывать ведомую позицию (это проверил только что на реале) с меньшим объемом (это лучше точно проверить хоть на демо, а то у меня ведомая позиция и так была минимального объема, поэтому переоткрылась таким же объемом).

 

Хочу уточнить: "Если я на ПАММе задаю размер закрываемого лота меньше, чем размер OrderLots() - что произойдёт?" - как всегда (появится ордер с новым тикетом и уменьшенным размером на CloseLots), или нужно переписывать код, чтобы обеспечить процесс сначала закрытия всего ордера, а затем открытия нового с уменьшенным лотом?!

 

Это сделано специально, что бы корректировщик не "вспоминал" прошлые изменения баланса и не преоткрывал бы уже имеющиеся ведомые позиции такого же объема. Насчет массива T, на мой взгляд, не проще. Чтобы обнаружить новые и лишние данные все равно придется перелопатить весь массив и все ордера. А заполняя его заново - гораздо надежнее. По сравнению с тем количеством ресурсов, которое отъедают торговые советники, если тут и можно что-то сэкономить, то настолько мало, что оно того не стоит

 

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

 

Посмотрел более детально Ваш код, насколько это возможно без детальных комментов - всё просто и в то же время очень функционально!!! =D>

И частичное закрытие тоже должно без проблем обрабатываться: родительский ордер закрылся - закрылся его ведомый ордер; затем открылся дочерний ордер - на него открылся новый ведомый ордер.

Трейллинг тоже обрабатывается!

И если, уж, к чему придраться, а точнее чего не хватает мне - это учёт результатов торговли (статистика) по инвест-капиталу, что можно решить добавлением к комменту ведомого ордера Magic ведущего для (т.к. в рамках одной ТС используются несколько Магиков) последующего считывания и отображения в ТС, а также (для маньяков) отсутствие распределения доступа к торговому потоку и анти-реквотной системы для торговых операций... :casha:

Хорошая работа - спасибо!!!

 

Не совсем понял, почему не выход, если Вы его уже используете? Добавляете в любой терминал еще один график с любым таймфремом, вешаете на него VC с отличающимся магиком от Ваших советников и все. Инструмент для графика желательно взять тот же, что и для торговых советников, чтобы не было ситуации, когда по торгуемому инструменту пришло уже 10 тиков, а по тому, где висит корректировщик, только один.

 

Приму к сведению.

Edited by TarasBY

Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
TarasBY
У меня на ПАММе так и есть, причем используется несколько экземпляров советников-корректоров - каждый для определенной группы экспертов с разным значением капитала для открытия позиции минимального размера.

А не проще ли эту задачу решить в рамках одного советника-корректора - просто "добавочный" объём считать из соотношения КУ к размеру открытого ведущего ордера?!

Пример:

КУ 1000

ИК 10000

Balance = 1000 + 10000 = 11 000;

размер лота ведущего ордера 0.1

0.1 - 1000

x - 10 000

x = 10 000 * 0.1 / 1000 = 1.0 лот

Таким образом, мы учтём размер риска конкретной ТС, которая формирует размер лота своего ордера исходя из отмеченного фактора?!

P.S. И как Вы управляетесь в рамках одного терминала с таким количеством одновременно работающего кода без распределения доступа к торговому потоку?!

P.P.S. А можно попробовать (нужно обмозговать) организовать "Портфельный менеджмент" м\у ТС (если их несколько), подсчитывая результат работы за какой-то промежуток времени и беря соотношение результата работы к размеру КУ, передавая эту инфу корректору через GlobalVariable.

Edited by TarasBY
Дополнение

Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
TarasBY
А можно попробовать (нужно обмозговать) организовать "Портфельный менеджмент" м\у ТС (если их несколько), подсчитывая результат работы за какой-то промежуток времени и беря соотношение результата работы к размеру КУ, передавая эту инфу корректору через GlobalVariable.

 

Развитие изложенной идеи, где-то так:

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|        Рассчитываем коэффициент формирования "добавочного" лота                   |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_KoefResultTrade (string sf_prefName,    // префикс имени GV-переменной для передачи Magic
                          int& ar_MG[],          // возвращаемый массив рабочих стратегий\"портфелей"
                          double fd_KY,          // размер капитала управляющего
                          datetime fdt_Begin)    // начальная дата подсчёта результатов работы стратегий
{
   int    li_MG, cnt = 0, li_size;
   double ld_Profit, lda_Profit[], ld_K,
          ld_K_Begin = 0.5;      // начальная величина коэффициента формирования "добавочного" лота
   string ls_Name, lsa_NameGV[];
//----
   ArrayResize (ar_MG, 50);
   ArrayResize (lsa_NameGV, 50);
   //ArrayInitialize (ar_MG, 0);
   //---- Формируем массив стратегий по Magic
   for (int li_GV = GlobalVariablesTotal() - 1; li_GV >= 0; li_GV--)
   {
       ls_Name = GlobalVariableName (li_GV);
       if (StringFind (ls_Name, sf_prefName) >= 0)
       {
           ar_MG[cnt] = GlobalVariableGet (ls_Name);
           lsa_NameGV[cnt] = ls_Name;
           cnt++;
       }
   }
   ArrayResize (ar_MG, cnt);
   ArrayResize (lsa_NameGV, cnt);
   ArrayResize (lda_Profit, cnt);
   ArrayInitialize (lda_Profit, 0);
   //---- За отчётный период подсчитываем результаты работы по каждому Magic
   for (int li_int = OrdersHistoryTotal() - 1; li_int >= 0; li_int--)
   {
       if (OrderSelect (li_int, SELECT_BY_POS, MODE_HISTORY))
       {
           for (li_MG = 0; li_MG < cnt; li_MG++)
           {
               if (OrderMagicNumber() == ar_MG[li_MG])
               {
                   if (fdt_Begin < OrderCloseTime())
                   {
                       ld_Profit = OrderProfit() + OrderCommission() + OrderSwap();
                       lda_Profit[li_MG] += ld_Profit;
                   }
               }
           }
       }
   }
   //---- Формируем коэффициент "добавочного" лота и передаём значение в GV-переменную
   for (li_MG = 0; li_MG < cnt; li_MG++)
   {
       ld_K = lda_Profit[li_MG] / fd_KY;
       if (ld_K < 0)      // убыток
       {ld_K = 0;}        // инвест-капитал не задействуем
       else
       if (ld_K == 0)     // примем за начало работы
       {ld_K = ld_K_Begin;}
       else               // прибыль
       {ld_K += ld_K_Begin;}
       GlobalVariableSet (StringConcatenate (lsa_NameGV[li_MG], "#Koef"), ld_K);
   }
//----
}


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
Vipro
Хочу уточнить: "Если я на ПАММе задаю размер закрываемого лота меньше, чем размер OrderLots() - что произойдёт?" - как всегда (появится ордер с новым тикетом и уменьшенным размером на CloseLots), или нужно переписывать код, чтобы обеспечить процесс сначала закрытия всего ордера, а затем открытия нового с уменьшенным лотом?!

Я когда использовал частичное закрытие, то делал это в самом советнике закрытием всей позиции, а затем открытием меньшей. Причина - в этом случае я могу поставить такой же комментарий и у новой позиции. При использовании только закрытия части объема, исходный комментарий теряется (заменяется стандартным #from 13256153).

... чего не хватает мне - это учёт результатов торговли (статистика) по инвест-капиталу, что можно решить добавлением к комменту ведомого ордера Magic ведущего

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

... а также (для маньяков) отсутствие распределения доступа к торговому потоку и анти-реквотной системы для торговых операций...

Если я правильно понял, о чем идет речь, то из-за того, что корректировщик на каждом тике просматривает полную картину, если на данном тике он не смог открыть ведомую позицию (нет доступа к потоку или реквота), то он будет продолжать пытаться открыть ее на следующем, и на следующем,... пока не откроет :) Так что схема роботы корректировщика уже сама по себе - антиреквотная.

Share this post


Link to post
Share on other sites
Vipro
А не проще ли эту задачу решить в рамках одного советника-корректора - просто "добавочный" объём считать из соотношения КУ к размеру открытого ведущего ордера?!

В корректировщике это так и реализовано. Чем больший объем ведущей позиции, тем большей будет и ведомая. Но это можно использовать в том случае, когда для открытия минимального объема ведомой позиции для разных экспертов пердполагается одинаковый размер депо. Если для разных экспертов использовать разный размер депо для открытия позиции минимального объема, то проще использовать несколько экземпляров корректировщика. Можете глянуть этот пост.

P.S. И как Вы управляетесь в рамках одного терминала с таким количеством одновременно работающего кода без распределения доступа к торговому потоку?!

Как правило на на одном терминале у меня висит 4-6 советников. Просто они ведь не все время торгуют. Ну а если какой-то не смог послать свою команду на данном тике, то пошлет ее на следующем.

P.P.S. А можно попробовать (нужно обмозговать) организовать "Портфельный менеджмент" м\у ТС (если их несколько), подсчитывая результат работы за какой-то промежуток времени и беря соотношение результата работы к размеру КУ, передавая эту инфу корректору через GlobalVariable.

Можете свободно модифицировать и добавлять любую функциональность с одним единственным пожеланием: если решите опубликовать свою версию, то для избежания путаницы, создайте отдельную ветку. С момента выкладывания изменений никаких я не вносил.

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

Share this post


Link to post
Share on other sites
TarasBY
В корректировщике это так и реализовано. Чем больший объем ведущей позиции, тем большей будет и ведомая. Но это можно использовать в том случае, когда для открытия минимального объема ведомой позиции для разных экспертов пердполагается одинаковый размер депо. Если для разных экспертов использовать разный размер депо для открытия позиции минимального объема, то проще использовать несколько экземпляров корректировщика. Можете глянуть этот пост.

 

Как правило на на одном терминале у меня висит 4-6 советников. Просто они ведь не все время торгуют. Ну а если какой-то не смог послать свою команду на данном тике, то пошлет ее на следующем.

 

Можете свободно модифицировать и добавлять любую функциональность с одним единственным пожеланием: если решите опубликовать свою версию, то для избежания путаницы, создайте отдельную ветку. С момента выкладывания изменений никаких я не вносил.

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

 

Читая два Ваших последних поста, создаётся впечатление, что мы с Вами из "разных вселенных"... Диалога не получилось - просто два монолога, ну, да ладно - проехали - каждый в своей вселенной... :roll:

Не будете возражать, если я на основе Вашего советника сделаю библиотека с учётом своего видения расчёта лота, и, может быть, выложу на CodeBase (естессно упомянув Ваше авторство)? :-&#092;"

Почему библиотеку? - её можно покрутить в тестере, а для работы на ПАММе, конечно правильно и удобно именно советник.


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

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

  • Recently Browsing   0 members

    No registered users viewing this page.

×