[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 689

 
chief2000:

Призадумался - от чего отталкиваться при расчете риска для новой сделки, если главный критерий - наименьший риск? -

AccountFreeMargin(), AccountEquity(), AccountBalance() ..?

- AccountBalance() - не учитывает открытых сделок.

- AccountEquity() - это то что мы видим на графике баланса? - в таком случае мы будем опираться на деньги, которые еще нам не принадлежат.

- AccountFreeMargin() - может использовать это? (допускаю что могу неверно понимать что это такое)

- AccountEquity() - это наши средства... Посмотрите на график, который строит тестер. Там две линии - одна (синяя) - баланс, другая (зелёная) - средства.

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

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

Поэтому как раз AccountBalance() - это вашими словами "... то что мы видим на графике баланса... ... деньги, которые еще нам не принадлежат..."

Принадлежат нам средства - эквити.

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

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

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

И ещё... я заметил интересную особенность инд. A/D. Если провести трендовые линии на нём (опять-таки через его экстремумы), то при пересечении графиком A/D этих линий следует ожидать разворота или коррекции основной тенденции на графике цены. Никак не могу понять как сиё реализовать в коде. Даже картиночку приложу:

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

в какую-либо упорядоченную структуру и последовательность действий...

Не дайте засохнуть коллеге по цеху... :)

 
artmedia70:

- AccountEquity() - это наши средства... Посмотрите на график, который строит тестер. Там две линии - одна (синяя) - баланс, другая (зелёная) - средства.

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

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

Поэтому как раз AccountBalance() - это вашими словами "... то что мы видим на графике баланса... ... деньги, которые еще нам не принадлежат..."

Принадлежат нам средства - эквити.

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

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

Я имел в виду что мы видим линию Equity = Средства (зеленую) на графике баланса.

.

Не согласен с утверждением что Средства это то чем мы уже располагаем. Если я открыл сделку с Таке Профит = 300 пипс, цена прошла в +200 пипс и это отображается линией Equity. Допустим, в этот момент я хочу открыть новую сделку и провожу расчет риска (один из вариантов -> от Equity). Если после этого цена развернется и уйдет в ноль или минус то риск, взятый от Equity окажется выше риска, взятого от Баланса - и вообще будет неверным, т.к. Прибыль по незакрытой сделке это виртуальная Прибыль.

Второй случай - если бы прибыль по первой сделке ушла в минус и надо было бы открыть новую сделку, то риск, рассчитанный от Баланса (который не видит текущей=незакрытой убыточной сделки) оказался бы завышенным.

Напрашивается Вывод - надо рассматривать наименьшее значение от обоих. Вот здесь я бы хотел получить информацию об AccountFreeMargin() - что это такое и решает ли это проблему или может это вообще не в тему.

 

Можно ли перенастроить МТ4, чтобы Просадки рассчитывались по Балансу, а не по Эквити?

(Кажется так было когда-то? В какой версии и где ее взять?)

 
chief2000:

Я имел в виду что мы видим линию Equity = Средства (зеленую) на графике баланса.

.

Не согласен с утверждением что Средства это то чем мы уже располагаем. Если я открыл сделку с Таке Профит = 300 пипс, цена прошла в +200 пипс и это отображается линией Equity. Допустим, в этот момент я хочу открыть новую сделку и провожу расчет риска (один из вариантов -> от Equity). Если после этого цена развернется и уйдет в ноль или минус то риск, взятый от Equity окажется выше риска, взятого от Баланса - и вообще будет неверным, т.к. Прибыль по незакрытой сделке это виртуальная Прибыль.

Второй случай - если бы прибыль по первой сделке ушла в минус и надо было бы открыть новую сделку, то риск, рассчитанный от Баланса (который не видит текущей=незакрытой убыточной сделки) оказался бы завышенным.

Напрашивается Вывод - надо рассматривать наименьшее значение от обоих. Вот здесь я бы хотел получить информацию об AccountFreeMargin() - что это такое и решает ли это проблему или может это вообще не в тему.

ОК, а если мы будем плясать от баланса, то что??? Баланс - вообще показывает совершенно нереальное положение дел на нашем счёте...

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

Итак...


Открыли первую позу и продвинулись на 12пп в профит; баланса нет, средства уже показывают увеличение...


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

Если сейчас закрыть все позы, то баланс сравняется с эквити...


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


А теперь смотрим на баланс и эквити...


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


 
Исходя из приведённого скажите мне что всё-таки показывает реальное положение счёта - баланс, постоянно вверх уходящий, иль всё-таки средства???
 
artmedia70:
1. Пытаюсь сделать ф-цию, которая будет искать экстремумы на графике любого индикатора.

..

2. Если провести трендовые линии на нём (опять-таки через его экстремумы), то при пересечении графиком A/D этих линий следует ожидать разворота или коррекции основной тенденции на графике цены. Никак не могу понять как сиё реализовать в коде.

1. С поиском экстремумов никаких проблем - просто подаёте индикатор на вход какого-нибудь ЗЗ вместо цены. Разумеется, необходимо отдавать себе отчёт, что процедура определения экстремумов принципиально неоднозначна. Помнится когда-то давно я на этом форме картинку показывал, ... оо, нашёл :)



2. Картинку изобретать не буду, но уже несколько лет собираюсь и никак не соберусь сделать так: прямая задаётся двумя коэффициентами, пусть А и В. Заводите два массива, А[] и В[] и счетчик линий, i. При создании новой линии заносите А и В в А[i] и В[i] и увеличиваете счётчик линий. Если счётчик линий превысит размер массивов, наращиваете их или обнуляете счётчик (то есть начинаете выбрасывать старые линии в порядке их создания). Дальше всё просто, в цикле по массивам А[] и В[] вычисляете текущее положение точки каждой линии и проверяете пересечение с линией индикатора.

С вас, кстати, экземплярчик будущего индикатора, в качестве гонорара :)

 
В завершение приведу пример закрытия таких сделок по увеличению эквити на заданное кол-во процентов. Там у меня стояло увеличение на 5%

График, спустя 16 дней. Хорошо видно как линия баланса падает до линии эквити при закрытии всех позиций при его увеличении на 5%


Это называется совокупной прибылью всех позиций...

 
artmedia70:
Исходя из приведённого скажите мне что всё-таки показывает реальное положение счёта - баланс, постоянно вверх уходящий, иль всё-таки средства???

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

Чтобы не сильно отклоняться от главной темы - меня больше интересует вопрос об AccountFreeMargin() - что это и решит ли это описанную мною выше проблему.

 
chief2000:

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

Чтобы не сильно отклоняться от главной темы - меня больше интересует вопрос об AccountFreeMargin() - что это и решит ли это описанную мною выше проблему.

double AccountFreeMargin( )
Возвращает значение свободных средств, разрешенных для открытия позиций на текущем счете.
Пример:
Print("Свободная маржа счета = ",AccountFreeMargin());
Причина обращения: