Как мт считает прибыль? - страница 2

 

Скрипт, расчитан только на форекс

 
vladevgeniy писал (а) >>
Странно просто, сам мт везде правильно считает у любого брокера. А вот в советнике не удается сделать что-либо универсальное. Может даже у одного брокера считать правильно а у другого нет. Возможно чего-то не учитываю.


Необходимо учитывать плечо(AccountLeverage), размер стандартного лота (MarketInfo(...)), валюту депозита (AccountCurrensy), значение курса для валюты котирования на момент закрытия сделки.

 
vladevgeniy писал (а) >>
Rosh 23.06.2008 17:31
Возможно, эта ветка поможет - 'AccountStopout.. : опубликуйте пожалуста более подробную документацию'

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

ПОПРОБУЙ ВОТ ЭТО - ЕСЛИ ПОНРАВИТСЯ ПОКАЖУ ФОРМУЛЫ finansovyj-dozor@narod.ru. ПЕРЕДВИГАЙ ЛИНИИ МЫШКОЙ НА НИХ УВИДИШЬ ПРИБЫЛЬ В ПУНКТАХ А В ТЕКСТЕ НА ЭКРАНЕ В БАКСАХ. ЕСЛИ Я НИЧЕГО НЕ ПОПУТАЛ.

Файлы:
 
Geronimo писал (а) >>

ПОПРОБУЙ ВОТ ЭТО - ЕСЛИ ПОНРАВИТСЯ ПОКАЖУ ФОРМУЛЫ finansovyj-dozor@narod.ru. ПЕРЕДВИГАЙ ЛИНИИ МЫШКОЙ НА НИХ УВИДИШЬ ПРИБЫЛЬ В ПУНКТАХ А В ТЕКСТЕ НА ЭКРАНЕ В БАКСАХ. ЕСЛИ Я НИЧЕГО НЕ ПОПУТАЛ.


Форекс показывает, а остальное лажает сильно. Поставь на спотовое золото, там вообще не то пишет.

 
Rosh писал (а) >>


Необходимо учитывать плечо(AccountLeverage), размер стандартного лота (MarketInfo(...)), валюту депозита (AccountCurrensy), значение курса для валюты котирования на момент закрытия сделки.

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

 

 

"Реальные данные" для расчёта стоимости пункта на форексе в формулах:

Все валютые пары можно условно разделить на три категории - пары с прямой котировкой (EURUSD, GBPUSD), пары с обратной котировкой (USDJPY, USDCHF) и кросс-курсы (GBPCHF, EURJPY и т.п.).

Для валютных пар с прямой котировкой стоимость пункта, выраженная в долларах, расчитывается по формуле
[pip] = [lot size] × [tick size]
где [lot size] - размер лота; [tick size] - размер тика, например для EURUSD он составляет 0.0001. Для валют с прямой котировкой стоимость пункта постоянна и не зависит от текущей котировки.
Пример.
Для EURUSD размер лота 100000, tick - 0.0001. [pip] = 100000 * 0.0001 = $10.00

Для валютных пар с обратной котировкой:
[pip] = [lot size] × [tick size] / [current quote]
где [current quote] - текущая котировка. Для валютных пар с обратной котировкой стоимость пункта меняется в зависимости от текущей котировки.
Пример.
Для USDJPY размер лота 100000, tick - 0.01. При котировке 129.20, [pip] = 100000 * 0.01 / 129.20 = $7.74

Для кросс-курсов:
[pip] = [lot size] × [tick size] × [base quote] / [current quote]
где [base quote] - текущая котировка базовой (первой) валюты к доллару США.
Пример.
для GBPCHF размер лота составляет 100 тыс. фунтов, базовая валюта GBPUSD; при котировке 2.3000 и базовой котировке 1.4550 стоимость пункта составит 100000 * 0.0001 * 1.4550 / 2.3000 = $6.33.

 
Вообще весь форекс считается вроде по простой формуле. Берем колличество пунктов по валюте, допустим дневной максимум и дневной минимум.Делим на тиксайз и умножаем на тиквалю, эти данные есть в маркетинфо. Кроме XAU по споту должно считаться правильно.
 
Xupypr писал (а) >>

"Реальные данные" для расчёта стоимости пункта на форексе в формулах:

Все валютые пары можно условно разделить на три категории - пары с прямой котировкой (EURUSD, GBPUSD), пары с обратной котировкой (USDJPY, USDCHF) и кросс-курсы (GBPCHF, EURJPY и т.п.).

Для валютных пар с прямой котировкой стоимость пункта, выраженная в долларах, расчитывается по формуле
[pip] = [lot size] × [tick size]
где [lot size] - размер лота; [tick size] - размер тика, например для EURUSD он составляет 0.0001. Для валют с прямой котировкой стоимость пункта постоянна и не зависит от текущей котировки.
Пример.
Для EURUSD размер лота 100000, tick - 0.0001. [pip] = 100000 * 0.0001 = $10.00

Для валютных пар с обратной котировкой:
[pip] = [lot size] × [tick size] / [current quote]
где [current quote] - текущая котировка. Для валютных пар с обратной котировкой стоимость пункта меняется в зависимости от текущей котировки.
Пример.
Для USDJPY размер лота 100000, tick - 0.01. При котировке 129.20, [pip] = 100000 * 0.01 / 129.20 = $7.74

Для кросс-курсов:
[pip] = [lot size] × [tick size] × [base quote] / [current quote]
где [base quote] - текущая котировка базовой (первой) валюты к доллару США.
Пример.
для GBPCHF размер лота составляет 100 тыс. фунтов, базовая валюта GBPUSD; при котировке 2.3000 и базовой котировке 1.4550 стоимость пункта составит 100000 * 0.0001 * 1.4550 / 2.3000 = $6.33.

Т.Е. для EURUSD pip = MarketInfo (Symbol(),MODE_LOTSIZE)*MarketInfo (Symbol(),MODE_TICKSIZE) ; а если плечо 1:10, а лот 0,01, а Point ??? Формулу можно написать для EURUSD? ---------------------------------------- А ЗАГЛЯНИТЕ СЮДА https://www.mql5.com/en/code/mt4

 
Geronimo писал (а) >>

Т.Е. для EURUSD pip = MarketInfo (Symbol(),MODE_LOTSIZE)*MarketInfo (Symbol(),MODE_TICKSIZE) ; а если плечо 1:10, а лот 0,01, а Point ??? Формулу можно написать для EURUSD? ---------------------------------------- А ЗАГЛЯНИТЕ СЮДА https://www.mql5.com/en/code/mt4

Да, для стандартного лота стоимость пункта будет именно такой. Размер плеча влияет только на маржу. Действительно, вместо TICKSIZE лучше использовать POINT, т.к. он показывает размер пункта, а TICKSIZE - минимальное изменение цены (может быть десятки пунктов как на GOLD). Для форекса TICKSIZE и POINT равны.

Формула для EURUSD:

double Lot = 0.01;
double pip = Lot*MarketInfo("EURUSD",MODE_LOTSIZE)*MarketInfo("EURUSD",MODE_POINT);

Индикатор посмотрел - автор попытался учесть не только рынок форекс, но и CFD и фьючерсы. А вот на золоте не работает.

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

 
Xupypr писал (а) >>

Да, для стандартного лота стоимость пункта будет именно такой. Размер плеча влияет только на маржу. Действительно, вместо TICKSIZE лучше использовать POINT, т.к. он показывает размер пункта, а TICKSIZE - минимальное изменение цены (может быть десятки пунктов как на GOLD). Для форекса TICKSIZE и POINT равны.

Формула для EURUSD:

Индикатор посмотрел - автор попытался учесть не только рынок форекс, но и CFD и фьючерсы. А вот на золоте не работает.

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


спасибо буду проверять pip = Lot*MarketInfo(Symbol(),MODE_LOTSIZE)*MarketInfo(Symbol(),MODE_POINT);

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