Код подредактировал и выложу в ближайшее время новую версию. Суть в том, что стоимость пункта у валютных пар рассчитывается по следующему алгоритму:
Цена пункта по валютным парам рассчитывается, исходя из текущего курса валютной пары.
Ниже приведены формулы для расчёта стоимости пункта по валютным парам:
Расчёт стоимости для 1 пункта (1 pips):
1. XXX/USD
c.п. = 1 * (объём сделки)
2. USD/XXX
c.п. = 1/(USD/XXX) * (объём сделки)
Для USD/JPY c.п. = 100/(USD/JPY) * (объём сделки)
3. AAA/BBB
c.п. =(AAA/USD)/ (AAA/BBB) * (объём сделки)
В процессе создания алгоритма я исходил из следующих соображений. Пусть
ML - максимальный убыток в сделке (у.е.);
SL - стоплосс;
spred - спред данного актива;
X - стоимость 1 пнт. (у.е.);
Тогда,
ML = X * (SL + spred) (1)
Из (1) видно, что стоимость 1 пнт. будет:
X = ML / (SL + spred) (2)
1) Для ***/USD:X = 1 * Y, где
Y - объем сделки (то, что мы и ищем). =>
Y = ML / (SL + spred)
2) USD/***Y = [ML / (SL + spred)] * (USD/***)
Для USD/JPY:
Y = [ML / (SL + spred)] * (USD/JPY) * (1 / 100)
3) AAA/BBBY = [ML / (SL + spred)] * [(AAA/BBB) / (AAA/USD)]