Страницы: 1
Ответить

Переделайте индикатор

 
Уважаемые, просьба переделать индикатор (пишет сколько в сумме открыто позиций, каким объемом, и какой суммарный профит по ним на данный момент по паре на которой висит, Х,Y - координаты на поле терминала).
Мне необходимо, что б он показывал не фактический профита в $, а прибыльубытки в пипсах по каждой отдельно позе на инструменте где висит.
Заранее спасибо.
//+------------------------------------------------------------------+
//| VolumeLots_indicator.mq4 |
//| Copyright © 2007, Aleksandrov Igor. |
//| 9038233462@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Aleksandrov Igor."
#property link "9038233462@rambler.ru"
#property indicator_chart_window

//---------------------Параметры индикатора------------------------
extern int Coordinate_X=10; //Координата начала надписи по Х
extern int Coordinate_Y=300; //Координата начала надписи по У
//-----------------------------------------------------------------
string Buy_volume;//
string Sell_volume;//
int deinit()
{
ObjectDelete("Buy_volume");
ObjectDelete("Sell_volume");
// удаляем все объекты

return(0);
}
int start()
{
//------------------------Обьявляем переменные----------------------------
int Total; //Общее кол-во открытых ордеров
int Total_buy; //Кол-во открытых ордеров Бай
int Total_sell; //Кол-во открытых ордеров Селл
double Lot_buy; //Общий обьем лотов Бай
double Lot_sell; //Общий обьем лотов Селл
double Profit_buy; //Общий обьем профита по бай
double Profit_sell;//Общий обьем профита по Селл
string Buy_volume;//
string Sell_volume;//
string Text_Buy = "Всего ордеров Buy = ";
string Text_Sell = "Всего ордеров Sell = ";
//----
for(int i =0; i<=OrdersTotal(); i++)//Выбираем общее кол-во открытых и отложенных ордеров
{//Начало цикла перебора ордеров
if (OrderSelect(i,SELECT_BY_POS)==true) // Если есть следующий
{//Начало анализа ордеров
if (OrderSymbol()!=Symbol())continue; // Не наш фин. инструм.
if (OrderType()==OP_BUY) //Перебираем все рабочие ордера BUY
{
Total++;
Total_buy++;
if(Total_buy>0)
{
Lot_buy=Lot_buy+OrderLots(); //Запоминаем кол-во лотов ордеров Бай
Profit_buy=Profit_buy+OrderProfit()+OrderCommission()+OrderSwap();//Профит ордеров Бай
Text_Buy = "По "+Symbol()+" открыто "+Total_buy+" ордеров Buy = "+DoubleToStr(Lot_buy,2)+" лотов, профит = "+DoubleToStr(Profit_buy,2);
}
}
if(OrderType()== OP_SELL) //Перебираем все рабочие ордера Селл
{
Total++;
Total_sell++;
if(Total_sell>0)
{
Lot_sell=Lot_sell+OrderLots(); //Запоминаем кол-во лотов ордеров Селл
Profit_sell=Profit_sell+OrderProfit()+OrderCommission()+OrderSwap();//Профит ордеров Селл
Text_Sell = "По "+Symbol()+" открыто "+Total_sell+" ордеров Sell = "+DoubleToStr(Lot_sell,2)+" лотов, профит = "+DoubleToStr(Profit_sell,2);
}
}
}//Завершение анализа ордеров
}//Конец цикла перебора ордеров
//----------------------Вывод информации на экран----------------------------------
if(Total>0)//Если есть открытые ордера, то начинаем вывод информации на экран
{//++++++++++++++++++++++++++++++++++++++++++++++
if(Total_buy>0)
{
ObjectCreate("Buy_volume",OBJ_LABEL,0, 0, 0,0,0,0,0);
ObjectSet("Buy_volume",OBJPROP_XDISTANCE,Coordinate_X);
ObjectSet("Buy_volume",OBJPROP_YDISTANCE,Coordinate_Y);
ObjectSetText("Buy_volume",Text_Buy,9,"Tahoma", Red);
}
if(Total_sell>0)
{
ObjectCreate("Sell_volume",OBJ_LABEL,0,0,0,0,0,0,0);
ObjectSet("Sell_volume",OBJPROP_XDISTANCE,Coordinate_X);
ObjectSet("Sell_volume",OBJPROP_YDISTANCE,Coordinate_Y+20);
ObjectSetText("Sell_volume",Text_Sell,10,"Tahoma", Red);
}
}//++++++++++++++++++++++++++++++++++++++++++++
if(Total_buy==0)
{
ObjectDelete("Buy_volume");
}
if(Total_sell==0)
{
ObjectDelete("Sell_volume");
}

//---------------------Конец вывода информации на экран ---------------------------

return(0);
}
//+------------------------------------------------------------------+
Страницы: 1
Ответить
Читают тему (гостей: 1)

Вход