Скачать MetaTrader 5

расчет стоимости корзины

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
На MQL5.community есть возможность хранить исходные коды в MQL5 Storage. Попробуй сам!
NIkolay2000
624
NIkolay2000 2011.11.09 12:05 

Всем привет.

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

Получается вот такой индикатор.


NIkolay2000
624
NIkolay2000 2011.11.09 12:07  

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

Прибыль по каждому инструменту отдельно считаю вот такими функциями

double clop(string para, int x)
{
double rez;
rez=0;

    rez=(iClose(para,0,x)-iOpen(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

return(rez);
}
double clopH(string para, int x)
{
double rez;
rez=0;


  rez=(iHigh(para,0,x)-iOpen(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

return(rez);
}
//--------------
double clopL(string para, int x)
{
double rez;
rez=0;

  rez=(iOpen(para,0,x)-iLow(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

return(rez);
}
NIkolay2000
624
NIkolay2000 2011.11.09 12:08  
соотвественно 3 функции чтобы найти минимальное значение корзины, максимальное и текущее.
NIkolay2000
624
NIkolay2000 2011.11.09 14:24  
я саму формулу расчета в обещем виде взял из форума, ибо эта тема подымалась не раз. Меня смущает то что значения рассчитываются не корректно.
shadowmana
714
shadowmana 2011.11.09 14:36  

rez=(iClose(para,0,x)-iOpen(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

Пиши конкретный инструмент

И потом вот такую вещь ранее писали

MarketInfo("EURUSD", MODE_TICKVALUE)

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

Vladimir Paukas
4099
Vladimir Paukas 2011.11.09 14:50  
M_Dimens:

rez=(iClose(para,0,x)-iOpen(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

Пиши конкретный инструмент

И потом вот такую вещь ранее писали

MarketInfo("EURUSD", MODE_TICKVALUE)

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

тестер в четвёрке одновалютный
shadowmana
714
shadowmana 2011.11.09 14:59  
paukas:
тестер в четвёрке одновалютный

Вы меня спрашиваете, это надо у автора спросить чего он считает может и многовалютный
NIkolay2000
624
NIkolay2000 2011.11.09 15:37  
M_Dimens:

rez=(iClose(para,0,x)-iOpen(para,0,x))/MarketInfo(para,MODE_POINT)* MarketInfo(Symbol(), MODE_TICKVALUE);

Пиши конкретный инструмент

И потом вот такую вещь ранее писали

MarketInfo("EURUSD", MODE_TICKVALUE)

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


ну у меня целый список инструментов, вообщем от 5 до 10 штук.

Для это мне и нужна функция.

p1[i] =clop(pair1,i)+clop(pair2,i)+clop(pair3,i)+clop(pair4,i)+clop(pair5,i)

вот так считаю сумму портфеля

NIkolay2000
624
NIkolay2000 2011.11.09 15:41  
M_Dimens:

Вы меня спрашиваете, это надо у автора спросить чего он считает может и многовалютный

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

Портфель много валютный есть и мажоры в нем а есть и кросы. Могу исключить кросы если слышком это критично для расчетов.

PapaYozh
3768
PapaYozh 2011.11.09 15:57  
NIkolay2000:

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

Прибыль по каждому инструменту отдельно считаю вот такими функциями


Внимательно на свои формулы посмотрите.
NIkolay2000
624
NIkolay2000 2011.11.09 16:21  
смотрел. Много раз. Понимаю что гдето ошибка, но локализовать не могу. Формулы все описал на форуме.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий