Здравствуйте, знаю что вы не правите чужой код но всё же, нужен индикатор который будет выводить закрытые сделки, нашёл готовый индюк но в нем удаляются все стрелки при нанемении на график, нужно это устранить и в тоже время чтобы тогда работало удаление всех этих сделок после удаления индюка!
Могли бы либо исправить это либо кинуть индюк в котором это уже исправлено
Посути нужен индюк который выведет закрытые сделки из ИСТОРИИ СЧЕТА, всё по стандарту, без лишнего, может вы делали такое уже? обыскался в базе у вас, вроде нету, малоли… Спасибо
//+------------------------------------------------------------------+
//| Show history.mq4 |
//| Valmars |
//| valmars@bk.ru |
//+------------------------------------------------------------------+
#property copyright "Valmars"
#property link "valmars@bk.ru"
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
// Удаление всех стрелок сделок с графика
ObjectsDeleteAll(0,OBJ_ARROW);
// Удаление всех линий закрытых позиций с графика
for(int i = 0; i < ObjectsTotal(); i++)
{
if(ObjectType(ObjectName(i)) == OBJ_TREND)
if(!ObjectGet(ObjectName(i), OBJPROP_RAY))
ObjectDelete(ObjectName(i));
}
string name; // Имя объекта-стрелки
int Arrow; // Код стрелки
double Color; // Цвет стрелки
// Проверка для всех открытых и отложенных ордеров
for(i = 0; i < OrdersTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS);
// Символы ордера и графика не совпадают
if(OrderSymbol() != Symbol())
continue; // Следующий ордер
switch(OrderType()) // Параметры стрелок
{
case OP_BUY: Arrow = 1; Color = Aqua;
name = OrderTicket() + " buy " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at "+
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELL: Arrow = 2; Color = Red;
name = OrderTicket() + " sell " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYLIMIT: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buylimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYSTOP: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buystop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
name = OrderTicket() + " selllimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELLSTOP: Arrow = 2; Color = Yellow;
name = OrderTicket() + " sellstop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
}
// Стрелка открытия ордера
ObjectCreate(name, OBJ_ARROW, 0, OrderOpenTime(), OrderOpenPrice());
ObjectSet(name, OBJPROP_ARROWCODE, Arrow);
ObjectSet(name, OBJPROP_COLOR, Color);
}
// Проверка для всех закрытых и удалённых ордеров
for(i = 0; i < HistoryTotal(); i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
// Символы ордера и графика не совпадают
if(OrderSymbol() != Symbol())
continue; // Следующий ордер
switch(OrderType())
{
case OP_BUY: Arrow = 1; Color = Aqua;
name = OrderTicket() + " buy " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELL: Arrow = 2; Color = Red;
name = OrderTicket() + " sell " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYLIMIT: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buylimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYSTOP: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buystop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
name = OrderTicket() + " selllimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELLSTOP: Arrow = 2; Color = Yellow;
name = OrderTicket() + " sellstop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
}
// Стрелка открытия ордера
ObjectCreate(name, OBJ_ARROW, 0, OrderOpenTime(), OrderOpenPrice());
ObjectSet(name, OBJPROP_ARROWCODE, Arrow);
ObjectSet(name, OBJPROP_COLOR, Color);
switch(OrderType())
{
case OP_BUY: Arrow = 1; Color = Aqua;
name = OrderTicket() + " buy " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELL: Arrow = 2; Color = Red;
name = OrderTicket() + " sell " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYLIMIT: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buylimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_BUYSTOP: Arrow = 1; Color = Yellow;
name = OrderTicket() + " buystop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
case OP_SELLLIMIT: Arrow = 2; Color = Yellow;
name = OrderTicket() + " selllimit " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS)); break;
case OP_SELLSTOP: Arrow = 2; Color = Yellow;
name = OrderTicket() + " sellstop " +
DoubleToStr(OrderLots(), 2) + " " +
OrderSymbol() + " at " +
DoubleToStr(OrderOpenPrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
break;
}
// Стрелка закрытия ордера
ObjectCreate(name, OBJ_ARROW, 0, OrderCloseTime(), OrderClosePrice());
ObjectSet(name, OBJPROP_ARROWCODE, 3);
ObjectSet(name, OBJPROP_COLOR, Color);
// Прорисовка линий закрытых позиций
name = OrderTicket() + DoubleToStr(OrderOpenPrice(), MarketInfo(OrderSymbol(),
MODE_DIGITS)) + "->" + DoubleToStr(OrderClosePrice(),
MarketInfo(OrderSymbol(), MODE_DIGITS));
ObjectCreate(name, OBJ_TREND, 0, OrderOpenTime(), OrderOpenPrice(),
OrderCloseTime(), OrderClosePrice());
ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
ObjectSet(name, OBJPROP_WIDTH, 1);
ObjectSet(name, OBJPROP_RAY, false);
ObjectSet(name, OBJPROP_COLOR, Color);
}
return(0);
}
//+------------------------------------------------------------------+
Комментарии (16)
еще один: www.opentraders.ru/downloads/1503/
сделки выделяются в истории и кидаются на график. так вообще без индюков.
35 AM2 Сообщений: 16252 - Андрей
я понимаю что можно перебросить, но могли бы вы найти или же сделать индикатор который показывает закрытые сделки. Пожалуйтста
7 divelse Автор Сообщений: 152
35 AM2 Сообщений: 16252 - Андрей
8 Kofa Сообщений: 42
Редактирован: 23 сентября 2018, 22:39
8 Kofa Сообщений: 42
сейчас при перетаскивании стрелки не удаляются, скрипт висит на графике, после удаления исчезают все стрелки и линии: www.opentraders.ru/downloads/2102/
35 AM2 Сообщений: 16252 - Андрей
7 divelse Автор Сообщений: 152
35 AM2 Сообщений: 16252 - Андрей
7 divelse Автор Сообщений: 152
А удалять по префиксу(может чушь написал)
7 divelse Автор Сообщений: 152
в этом скрипте удаляются вообще все стрелки:
Пожалуйста задайте как то своё личное, бин не знаю как написать, но в скрипте удаляются сразу все стрелки и линии а мне нужно чтобы удалялись только те стрелки и те линии которые работают от индикатора, пожалуйста разберитесь что я написал) Спасибо!
7 divelse Автор Сообщений: 152
35 AM2 Сообщений: 16252 - Андрей
35 AM2 Сообщений: 16252 - Андрей
7 divelse Автор Сообщений: 152
как можно задать имя? Пожалуйста посмотрите))
пытался пытался ругается if и else Редактирован: 29 сентября 2018, 19:03
7 divelse Автор Сообщений: 152
7 divelse Автор Сообщений: 152
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий