showordersonchart.mq4
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «showordersonchart.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для MetaTrader 4 отображает открытые и закрытые ордера на графике в виде графических объектов. Он использует функции работы с ордерами MQL4 для сбора данных о текущих позициях и истории ордеров по текущему символу, а затем создаёт на графике вертикальные линии, стрелки и текстовые метки.
Для каждого открытого ордера отрисовывается пунктирная вертикальная линия во времени открытия, стрелка по цене открытия и текст с типом ордера, ценой, временем и информацией о текущем эквити. Для закрытых ордеров дополнительно отображаются цена и время закрытия, баланс и маркер в виде креста по цене закрытия.
Объекты раскрашиваются в зависимости от результата: зелёный цвет при положительном результате, тёмно-красный — при отрицательном. Индикатор автоматически обновляет отображение при изменении количества ордеров, проверяя это в функции start(). Параметры не определены, индикатор работает с настройками по умолчанию, фильтруя ордера только по текущему символу графика и типам OP_BUY и OP_SELL.
Поиск по коду файла
#property indicator_chart_window
int iOrdersTotal = 0;
int iOpenedOrders = 0; // ?????????? ???????? ??????? ?? ??????? ???????????
int aOpenedOrderTypes[0];
string aOpenedOrderSymbols[0];
datetime aOpenedOrderOpenTimes[0];
double aOpenedOrderOpenPrices[0];
int aOpenedOrderTickets[0];
double aOpenedOrderProfits[0];
double aOpenedOrderSwaps[0];
double aOpenedOrderLots[0];
int iOrdersHistoryTotal = 0;
int iClosedOrders = 0;
int aClosedOrderTypes[0];
string aClosedOrderSymbols[0];
datetime aClosedOrderOpenTimes[0];
datetime aClosedOrderCloseTimes[0];
double aClosedOrderOpenPrices[0];
double aClosedOrderClosePrices[0];
int aClosedOrderTickets[0];
double aClosedOrderProfits[0];
double aClosedOrderSwaps[0];
double aClosedOrderLots[0];
string sSymbol;
int init() {
// код доступен только после оплаты
}
int deinit() { fDeleteOrderObjects (); }
void fInitOrders(bool bAll=true) {
int iOrderType;
int iCounter = 0;
string sOrderSymbol;
/* ???????? ?????? */
iOrdersTotal=OrdersTotal();
if (iOpenedOrders>0) {
ArrayResize(aOpenedOrderTypes,0);
ArrayResize(aOpenedOrderSymbols,0);
ArrayResize(aOpenedOrderOpenTimes,0);
ArrayResize(aOpenedOrderOpenPrices,0);
ArrayResize(aOpenedOrderTickets,0);
ArrayResize(aOpenedOrderProfits,0);
ArrayResize(aOpenedOrderSwaps,0);
ArrayResize(aOpenedOrderLots,0);
iOpenedOrders=0;
}
for(int i=0;i<iOrdersTotal;i++)
if (OrderSelect(i,SELECT_BY_POS)==true) {
iOrderType=OrderType();
sOrderSymbol=OrderSymbol();
if (sOrderSymbol==sSymbol && (iOrderType == OP_BUY || iOrderType == OP_SELL)) {
iOpenedOrders++;
ArrayResize(aOpenedOrderTypes,iOpenedOrders);
ArrayResize(aOpenedOrderSymbols,iOpenedOrders);
ArrayResize(aOpenedOrderOpenTimes,iOpenedOrders);
ArrayResize(aOpenedOrderOpenPrices,iOpenedOrders);
ArrayResize(aOpenedOrderTickets,iOpenedOrders);
ArrayResize(aOpenedOrderProfits,iOpenedOrders);
ArrayResize(aOpenedOrderSwaps,iOpenedOrders);
ArrayResize(aOpenedOrderLots,iOpenedOrders);
aOpenedOrderTypes[iOpenedOrders-1]=iOrderType;
aOpenedOrderSymbols[iOpenedOrders-1]=sOrderSymbol;
aOpenedOrderOpenTimes[iOpenedOrders-1]=OrderOpenTime();
aOpenedOrderOpenPrices[iOpenedOrders-1]=OrderOpenPrice();
aOpenedOrderTickets[iOpenedOrders-1]=OrderTicket();
aOpenedOrderProfits[iOpenedOrders-1]=OrderProfit();
aOpenedOrderSwaps[iOpenedOrders-1]=OrderSwap();
aOpenedOrderLots[iOpenedOrders-1]=OrderLots();
}
}
/* ???????? ?????? */
if (bAll) {
iOrdersHistoryTotal=OrdersHistoryTotal();
if (iClosedOrders>0) {
ArrayResize(aClosedOrderTypes,0);
ArrayResize(aClosedOrderSymbols,0);
ArrayResize(aClosedOrderOpenTimes,0);
ArrayResize(aClosedOrderCloseTimes,0);
ArrayResize(aClosedOrderOpenPrices,0);
ArrayResize(aClosedOrderClosePrices,0);
ArrayResize(aClosedOrderTickets,0);
ArrayResize(aClosedOrderProfits,0);
ArrayResize(aClosedOrderSwaps,0);
ArrayResize(aClosedOrderLots,0);
iClosedOrders=0;
}
for(int j=0;j<iOrdersHistoryTotal;j++)
if (OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)==true) {
iOrderType=OrderType();
sOrderSymbol=OrderSymbol();
if (sOrderSymbol==sSymbol && (iOrderType == OP_BUY || iOrderType == OP_SELL)) {
iClosedOrders++;
ArrayResize(aClosedOrderTypes,iClosedOrders);
ArrayResize(aClosedOrderSymbols,iClosedOrders);
ArrayResize(aClosedOrderOpenTimes,iClosedOrders);
ArrayResize(aClosedOrderCloseTimes,iClosedOrders);
ArrayResize(aClosedOrderOpenPrices,iClosedOrders);
ArrayResize(aClosedOrderClosePrices,iClosedOrders);
ArrayResize(aClosedOrderTickets,iClosedOrders);
ArrayResize(aClosedOrderProfits,iClosedOrders);
ArrayResize(aClosedOrderSwaps,iClosedOrders);
ArrayResize(aClosedOrderLots,iClosedOrders);
aClosedOrderTypes[iClosedOrders-1]=iOrderType;
aClosedOrderSymbols[iClosedOrders-1]=sOrderSymbol;
aClosedOrderOpenTimes[iClosedOrders-1]=OrderOpenTime();
aClosedOrderCloseTimes[iClosedOrders-1]=OrderCloseTime();
aClosedOrderOpenPrices[iClosedOrders-1]=OrderOpenPrice();
aClosedOrderClosePrices[iClosedOrders-1]=OrderClosePrice();
aClosedOrderTickets[iClosedOrders-1]=OrderTicket();
aClosedOrderProfits[iClosedOrders-1]=OrderProfit();
aClosedOrderSwaps[iClosedOrders-1]=OrderSwap();
aClosedOrderLots[iClosedOrders-1]=OrderLots();
}
}
}
}
void fDrawOrders(bool bAll=true) {
for(int i=0;i<iOpenedOrders;i++) {
ObjectCreate("rukukiLine"+aOpenedOrderTickets[i],OBJ_VLINE,0,aOpenedOrderOpenTimes[i],0,0,0,0,0);
ObjectSet("rukukiLine"+aOpenedOrderTickets[i],OBJPROP_BACK,true);
ObjectSet("rukukiLine"+aOpenedOrderTicketsПоказано первые 50% кода (символов: 8461)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.