
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
в ордере же есть инфа ORDER_PRICE_OPEN про цену установки.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
сделка от ордера
fxsaber, 2016.10.23 10:08
Ставим SellLimit по цене OrderPrice1 на 3 лота. Открылась сделка по DealPrice1 на 1 лот (из-за частичного исполнения).
Изменили цену оставшейся части лимитника на OrderPrice2. Открылась сделка по DealPrice2 на оставшуюся часть (2 лота).
По итогу инфа об OrderPrice1 (цена ордера, породившего первую сделку) утеряна.
Она может меняться.
для сделки 2 - цена ордере = OrderPrice2
для сделки 1 - цена оредра = OrderPrice1
где тут видите противоречие?
для сделки 2 - цена ордере = OrderPrice2
для сделки 1 - цена оредра = OrderPrice1
где тут видите противоречие?
таки да.
значит надо вам писать в СД обоснованну заявку, чтоб добавить в сделку цену родительского ордера.
таки да.
значит надо вам писать в СД обоснованну заявку, чтоб добавить в сделку цену родительского ордера.
Да подумал примазаться к Вашей заявке. Все равно же она касается ENUM_DEAL_PROPERTY_DOUBLE
к моей не получится ) я прошу данные которые есть в МТ5, а для вашей задачи их надо еще туда добавить.
поэтому, как сказал, надо обосновано описать в Сд суть проблемы, которая появляется без знаний цены ордера
к моей не получится ) я прошу данные которые есть в МТ5, а для вашей задачи их надо еще туда добавить.
поэтому, как сказал, надо обосновано описать в Сд суть проблемы, которая появляется без знаний цены ордера
Оформил.
К сожалению, отказали. Поэтому история останется неполноценной.
сабж
Всем, привет.
Я считаю так:
//| Возвращает профит за текущий день в пунктах (из истории) |
//+------------------------------------------------------------------+
double GetDayPoint()
{
ulong deal_ticket=0; // тикет сделки
ulong deal_order_last=0; // ордер последней сделки
double day_point = 0; // дневной профит в пунктах
MqlDateTime dt_struct; // переменная типа структуры даты-времени
TimeCurrent(dt_struct);
dt_struct.hour=10;
dt_struct.min=0;
if(HistorySelect(StructToTime(dt_struct),TimeCurrent()))
{
uint hist_count=HistoryDealsTotal();
// считаем профит за текущий день
for(uint i=0; i<hist_count; i++)
{
if((deal_ticket = HistoryDealGetTicket(i))>0)
{
ulong deal_order=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
long deal_entry=HistoryDealGetInteger(deal_ticket,DEAL_ENTRY);
if(deal_entry==DEAL_ENTRY_OUT && (deal_order!=deal_order_last || deal_order==0))
{
deal_order_last=deal_order;
double deal_profit = HistoryDealGetDouble(deal_ticket, DEAL_PROFIT);
double deal_volume = HistoryDealGetDouble(deal_ticket, DEAL_VOLUME);
double tick_value=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE);
double tick_size=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
day_point=day_point+deal_profit/deal_volume/tick_value*tick_size;
}
}
}
}
else
PrintFormat("%s: %s: Не удалось получить историю сделок!",EXPERT_NAME,__FUNCTION__);
return(day_point);
}
Вроде работает. Но у меня эксперт для ФОРТС и торгует только фьючерс на индекс RTS, поэтому на других инструментах не проверял.