Был в КодеБазе ProfitStat - прилагаю. Переделывал. Попробуйте сделать по-своему
Был в КодеБазе ProfitStat
Спасибо за помощь!
Просмотрел код, немного не то что мне нужно... Наверное просто не совсем точно обьяснил что хочу )))....
Нужен отдельный блок который будет вставлен в советник, который будет считать разницу всех минусов и плюсов по своим ордерам которые на данный момент еще открыты и на выходе говорить какой сейчас результат...
Но все равно спасибо за помощь!
Спасибо за помощь!
Просмотрел код, немного не то что мне нужно... Наверное просто не совсем точно обьяснил что хочу )))....
Нужен отдельный блок который будет вставлен в советник, который будет считать разницу всех минусов и плюсов по своим ордерам которые на данный момент еще открыты и на выходе говорить какой сейчас результат...
Но все равно спасибо за помощь!
Пробуй, думаю все понятно.
int Magic = 100;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Alert("Общий профит = ",GetProfitOpenPosInCurrency());
Alert("Общий профит покупок = ",GetProfitOpenPosInCurrency("",OP_BUY,-1));
Alert("Общий профит продаж = ",GetProfitOpenPosInCurrency("",OP_SELL,-1));
Alert("Общий профит по симвоу = ",GetProfitOpenPosInCurrency(Symbol(),-1,-1));
Alert("Общий профит по симвоу только покупок = ",GetProfitOpenPosInCurrency(Symbol(),OP_BUY,-1));
Alert("Общий профит по симвоу только продаж = ",GetProfitOpenPosInCurrency(Symbol(),OP_SELL,-1));
Alert("Общий профит по симвоу с магиком = ",GetProfitOpenPosInCurrency(Symbol(),-1,Magic));
Alert("Общий профит по симвоу покупок с магиком = ",GetProfitOpenPosInCurrency(Symbol(),OP_BUY,Magic));
Alert("Общий профит по симвоу продаж с магиком = ",GetProfitOpenPosInCurrency(Symbol(),OP_SELL,Magic));
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 19.02.2008 |
//| Описание : Возвращает суммарный профит открытых позиций в валюте депозита |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1) {
double p=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
p+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
}
return(p);
}
Пробуй, думаю все понятно.
int Magic = 100;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Alert("Общий профит = ",GetProfitOpenPosInCurrency());
Alert("Общий профит покупок = ",GetProfitOpenPosInCurrency("",OP_BUY,-1));
Alert("Общий профит продаж = ",GetProfitOpenPosInCurrency("",OP_SELL,-1));
Alert("Общий профит по симвоу = ",GetProfitOpenPosInCurrency(Symbol(),-1,-1));
Alert("Общий профит по симвоу только покупок = ",GetProfitOpenPosInCurrency(Symbol(),OP_BUY,-1));
Alert("Общий профит по симвоу только продаж = ",GetProfitOpenPosInCurrency(Symbol(),OP_SELL,-1));
Alert("Общий профит по симвоу с магиком = ",GetProfitOpenPosInCurrency(Symbol(),-1,Magic));
Alert("Общий профит по симвоу покупок с магиком = ",GetProfitOpenPosInCurrency(Symbol(),OP_BUY,Magic));
Alert("Общий профит по симвоу продаж с магиком = ",GetProfitOpenPosInCurrency(Symbol(),OP_SELL,Magic));
}
//+------------------------------------------------------------------+
//+----------------------------------------------------------------------------+
//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Версия : 19.02.2008 |
//| Описание : Возвращает суммарный профит открытых позиций в валюте депозита |
//+----------------------------------------------------------------------------+
//| Параметры: |
//| sy - наименование инструмента ("" - любой символ, |
//| NULL - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
double GetProfitOpenPosInCurrency(string sy="", int op=-1, int mn=-1) {
double p=0;
int i, k=OrdersTotal();
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
p+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
}
return(p);
}
Вот это было прям в точку! Спасибо... то что нужно!

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Ни как не могу разобраться в том как определить общий профит по все ордерам открытым именно одним советником со своим магическим числом...
Вроде задача не сложная, но проблема в том что на счету торгует несколько советников, у всех свои магики, и все советники могут торговать одновременно по 72 позиции....
Задача в том чтобы советник искал свои ордера (все) и складывал их профиты и выдавал общий PL по своим ордерам...
Может кто нибудь пользуется таким...
Может кто нибудь поделится информацией?
Спасибо!