Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а если нет интернета, тиков же не будет. Функция OnTick не сработает ?
Тоже верно. Я как-то зациклился на связи с торговым сервером. Конечно Вы правы - нет у Вас интернета, нет тиков - никто никуда не торгует.
Даа, спасибо)
Еще вопрос. Не подскажите как выбрать из истории ордера за последнюю неделю ?
Даа, спасибо)
Еще вопрос. Не подскажите как выбрать из истории ордера за последнюю неделю ?
Кто ордерами то пользуется сейчас? Лучше анализировать сделки. Вот пример запроса сделок из истории:
//| HistoryDealGetTicket.mq5 |
//| Copyright 2016, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.000"
#property script_show_inputs
//---
input datetime from_date=D'2016.09.20 11:11:00';
input datetime to_date=D'2016.09.20 11:40:00';
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
ulong deal_ticket; // тикет сделки
ulong order_ticket; // тикет ордера,по которому была совершена сделка
datetime transaction_time; // время совершения сделки
long deal_type; // тип торговой операции
long deal_entry; // направление сделки
long position_ID; // идентификатор позиции
string deal_description; // описание операции
double volume; // объем операции
string symbol; // по какому символу была сделка
////--- установим начальную и конечную дату для запроса истории сделок
// datetime from_date=0; // с самого начала
// datetime to_date=TimeCurrent();// по текущий момент
//--- запросим историрю сделок в указанном интервале
HistorySelect(from_date,to_date);
//--- общее количество в списке сделок
int deals=HistoryDealsTotal();
//--- теперь обработаем каждую сделку
for(int i=0;i<deals;i++)
{
deal_ticket=HistoryDealGetTicket(i);
volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
order_ticket=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
deal_entry=HistoryDealGetInteger(deal_ticket,DEAL_ENTRY);
symbol=HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
position_ID=HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
deal_description=GetDealDescription(deal_entry,deal_type,volume,symbol,order_ticket,position_ID);
//--- сделаем красивое форматирование для номера сделки
string print_index=StringFormat("% 3d",i);
//--- выведем информацию по сделке
Print(print_index+": deal #",deal_ticket," at ",transaction_time,deal_description);
}
}
//+------------------------------------------------------------------+
//| Возвращает строковое описание операции |
//+------------------------------------------------------------------+
string GetDealDescription(long deal_entry,long deal_type,double volume,string symbol,long ticket,long pos_ID)
{
string descr;
//---
switch(deal_entry)
{
case DEAL_ENTRY_IN: descr="Вход в рынок, "; break;
case DEAL_ENTRY_OUT: descr="Выход из рынка, "; break;
case DEAL_ENTRY_INOUT: descr="Разворот, "; break;
case DEAL_ENTRY_OUT_BY: descr="Закрытие встречной позицией, "; break;
}
//---
switch(deal_type)
{
case DEAL_TYPE_BALANCE: return ("balance");
case DEAL_TYPE_CREDIT: return ("credit");
case DEAL_TYPE_CHARGE: return ("charge");
case DEAL_TYPE_CORRECTION: return ("correction");
case DEAL_TYPE_BUY: descr+="buy"; break;
case DEAL_TYPE_SELL: descr+="sell"; break;
case DEAL_TYPE_BONUS: return ("bonus");
case DEAL_TYPE_COMMISSION: return ("additional commission");
case DEAL_TYPE_COMMISSION_DAILY: return ("daily commission");
case DEAL_TYPE_COMMISSION_MONTHLY: return ("monthly commission");
case DEAL_TYPE_COMMISSION_AGENT_DAILY: return ("daily agent commission");
case DEAL_TYPE_COMMISSION_AGENT_MONTHLY: return ("monthly agent commission");
case DEAL_TYPE_INTEREST: return ("interest rate");
case DEAL_TYPE_BUY_CANCELED: descr+="cancelled buy deal"; break;
case DEAL_TYPE_SELL_CANCELED: descr+="cancelled sell deal"; break;
}
descr=StringFormat("%s %G %s (order #%d, position ID %d)",
descr, // текущее описание
volume, // объем сделки
symbol, // инструмент сделки
ticket, // тикет ордера,вызвавшего сделку
pos_ID // ID позиции, в которой участвовала сделка
);
return(descr);
//---
}
//+------------------------------------------------------------------+
Кто ордерами то пользуется сейчас? Лучше анализировать сделки. Вот пример запроса сделок из истории:
Спасибо, но мне на mql4 надо. Не хочу еще переходить на mql5. Как-то к МТ4 привык.
Для ленивцев и тех кому чужден прогресс: MQL4 и MetaTrader 4
ахах... спасибо. Еще очень много людей остаются на MT4. Что кому нравиться... Не спорю, на МТ5 есть полезные функции, но мне не нравиться тот факт, что нельзя открыть две разные позиции в разных направлениях с разными тикетами по одному символу.
Откуда такой нигилизм? Прежде чем говорить, нужно открыть терминал MetaTRder 5 :). В терминале MetaTrader 5 уже давно ДВА вида торговых счетов: неттинг и хедж (хедж - это и есть "две разные позиции в разных направлениях с разными тикетами по одному символу").
Откуда такой нигилизм? Прежде чем говорить, нужно открыть терминал MetaTRder 5 :). В терминале MetaTrader 5 уже давно ДВА вида торговых счетов: неттинг и хедж (хедж - это и есть "две разные позиции в разных направлениях с разными тикетами по одному символу").
я не знал об хедж. Спасибо. Сейчас посмотрю
Как открывать хедж-счета: хеджинговой системы учета позиций,
не доступна галочка "Использовать хеджирование" ...( Может старый терминал?