Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1473

 
Alexey Viktorov #:

Для определения суммы которую трейдер готов потерять в случае неудачи. Убыток = Loss*стоимость пункта*лот. Отсюда — лот = допустимый убыток/(Loss*стоимость пункта) Формула примерная.

Понятно. Подумаю на досуге, как это реализовать. Спасибо за совет!

С уважением, Владимир.

 

Как узнать время закрытия позиции в тестере?

Открываю позиции 1, 2, 3

Закрываю позиции 3, 2, 1

Ни в отчёте тестера ни в самом тестере я так и не разобрался как узнать время закрытия конкретной позиции.

То же самое и в отчёте который записывает тестер, там тоже нет возможности узнать время закрытия позиции.


Мне нужно как то узнать время открытия и закрытия позиции. Как?

fxsaber   в одной из своих библиотек пишет:  "Спасибо разработчикам за создание кешей Тестера и помощь в раксрытии его форматов."

В самой библиотеке я разобраться не могу.

Я смог найти только формат opt  файлов.

Если кто знает где на форуме раскрывают tst-файлы - формат одиночного прохода, киньте ссылочку пожалуйста,  может быть в них смогу найти position_ID.

fxsaber если читаешь, ответь пожалуйста.

 
Aleksandr Slavskii #:

Как узнать время закрытия позиции в тестере?

Открываю позиции 1, 2, 3

Закрываю позиции 3, 2, 1

Ни в отчёте тестера ни в самом тестере я так и не разобрался как узнать время закрытия конкретной позиции.

То же самое и в отчёте который записывает тестер, там тоже нет возможности узнать время закрытия позиции.


Мне нужно как то узнать время открытия и закрытия позиции. Как?

fxsaber   в одной из своих библиотек пишет:  "Спасибо разработчикам за создание кешей Тестера и помощь в раксрытии его форматов."

Я смог найти только формат opt  файлов.

Если кто знает где на форуме раскрывают tst-файлы - формат одиночного прохода, киньте ссылочку пожалуйста,  может быть в них смогу найти position_ID.

fxsaber если читаешь, ответь пожалуйста.

Ищите сделку выхода из рынка

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией

и по тикету этой сделки ищите ID позиции

DEAL_TICKET

Тикет сделки. Уникальное число, которое присваивается каждой сделке

long

DEAL_ORDER

Ордер, на основание которого выполнена сделка

long

DEAL_TIME

Время совершения сделки

datetime

DEAL_TIME_MSC

Время совершения сделки в миллисекундах с 01.01.1970

long

DEAL_TYPE

Тип сделки

ENUM_DEAL_TYPE

DEAL_ENTRY

Направление сделки – вход в рынок, выход из рынка или разворот

ENUM_DEAL_ENTRY

DEAL_MAGIC

Magic number для сделки (смотри ORDER_MAGIC)

long

DEAL_REASON

Причина или источник проведения сделки

ENUM_DEAL_REASON

DEAL_POSITION_ID

Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.

long


А в общем-то время сделки выхода из рынка, это и есть время закрытия позиции.

 
Alexey Viktorov #:

Ищите ...

Спасибо. Но это совсем не то, что мне нужно.

Видимо я опять не смог, правильно сформулировать вопрос  :(

Меня интересует как вытащить информацию о позиции из отчёта тестера ReportTester.xlsx или .tst файла.

То что вы предложили в отчёте нет.

[Удален]  
MrBrooklin #:

   //лот = процент риска от баланса / (размер стоплосса * Размер минимального изменения цены в валюте депозита / Минимальный шаг изменения цены в пунктах)
   eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(MathAbs(ePrice-eStopLoss)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Спасибо, Алексей, за код! Завтра более детально вникну в Вашу формулу.

С уважением, Владимир.

[Удален]  
Пожалуйста)
Здесь прайс и лосс - цены. Если у Вас лосс в пунктах, используйте поинт.
 
Aleksei Stepanenko #:
Пожалуйста)
Здесь прайс и лосс - цены. Если у Вас лосс в пунктах, используйте поинт.

Алексей, если стоп-лосс переведу в поинт, то получается ерунда. Дело в том, что в скрипте использовал формулу, найденную на просторах интернета. Не помню уже где, просто очень давно это было. Сделал по этой формуле таблицу в Exel и при необходимости пользовался ею. Вот как она выглядит:

Поэтому и обратился к сообществу, чтобы уточнить насколько она соответствует действительности. Сама формула в Exel таблице выглядит так:

лот = (баланс * риск (в %) * 0,01) / (стоп-лосс (в пунктах) * курс валюты (в моем случае в руб.))

С уважением, Владимир.

[Удален]  

Владимир, всё работает

input int eLoss=2000;
input double eRisk=5.0;

double eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(eLoss*SymbolInfoDouble(eSymbol,SYMBOL_POINT)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Владимир, всё работает

Алексей, извините, но мы друг друга не поняли. В больше степени недопонимание было с моей стороны. Подумал, что Вы рекомендуете применить поинт в моей функции. ))

С уважением, Владимир.