Vladimir Deryagin #: Magic сделки выхода это magic ордера который закрыл позицию. Вы закрыли её вручную поэтому у сделки выхода magic = 0. Чтобы не зависеть от того кто закрыл позицию, для каждой сделки выхода найдите в той же выборке сделку входа с тем же DEAL_POSITION_ID и проверяйте magic уже у неё.
Хороший вариант. Попробывал не помогает. Мож не так реализовал мысль?
// Блок контроля фин.результ за тек. день++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++datetime timeBar5 = iTime(NULL,PERIOD_D1,0); // Указатель времени от начала дняHistorySelect(timeBar5,TimeCurrent()); // От начального времени до текущегоdouble total_profit=0;
ulong ticket_out = 0;
for (int i=0; i<HistoryDealsTotal(); i++) //создаю цикл проверяет с начала истории
{
ulong deal_ticket = HistoryDealGetTicket(i);
ulong deal_ticket2 = HistoryDealGetTicket(i); // Перебор тикетов (входа)if ( HistoryDealGetInteger(deal_ticket2, DEAL_ENTRY) == DEAL_ENTRY_IN// Тип вход
&& HistoryDealGetInteger(deal_ticket, DEAL_ENTRY) == DEAL_ENTRY_OUT// Тип выход
&& HistoryDealGetInteger(deal_ticket, DEAL_POSITION_ID)
&& HistoryDealGetInteger(deal_ticket2, DEAL_POSITION_ID)
&& HistoryDealGetInteger(deal_ticket2, DEAL_MAGIC)==1530 )
{
ticket_out = deal_ticket;
total_profit += HistoryDealGetDouble(ticket_out, DEAL_PROFIT)/_Point/1000; // суммарный фин.результ за тек. день
}
}
Print("Фин.рез дня === ",total_profit);
Хороший вариант. Попробывал не помогает. Мож не так реализовал мысль?
Мысль правильная но реализация нет. deal_ticket и deal_ticket2 берутся по одному и тому же индексу i , то есть это одна и та же сделка, одна сделка не может быть одновременно входом и выходом
Vladimir Deryagin #: Мысль правильная но реализация нет. deal_ticket и deal_ticket2 берутся по одному и тому же индексу i , то есть это одна и та же сделка, одна сделка не может быть одновременно входом и выходом
Деление на _Point/1000 я убрал DEAL_PROFIT это уже результат в деньгах.
Magic сделки выхода это magic ордера который закрыл позицию. Вы закрыли её вручную поэтому у сделки выхода magic = 0. Чтобы не зависеть от того кто закрыл позицию, для каждой сделки выхода найдите в той же выборке сделку входа с тем же DEAL_POSITION_ID и проверяйте magic уже у неё.
Хороший вариант. Попробывал не помогает. Мож не так реализовал мысль?
Хороший вариант. Попробывал не помогает. Мож не так реализовал мысль?
Деление на _Point/1000 я убрал DEAL_PROFIT это уже результат в деньгах.
Мысль правильная но реализация нет. deal_ticket и deal_ticket2 берутся по одному и тому же индексу i , то есть это одна и та же сделка, одна сделка не может быть одновременно входом и выходом
Деление на _Point/1000 я убрал DEAL_PROFIT это уже результат в деньгах.