Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2734

 
Aleksandr Slavskii #:

Мне тоже хочется конкретики, но если бы она у меня была, я бы не задавал вопрос на форуме. 

Тогда, если, у Вас, нет конкретного решения, решения, то помолчите, умней будите! Человек, спросил, я ответил, то что знал ! Если, Вы, кинули не согласие в правильности, данного решения, то Вы обязаны !!!!!!!!!!!!!!!!, предоставить, правильное решение, данного вопроса. В противном, случае, проссто не засоряйте чат, своими, домысломи.
 
VVT # :

@Artyom Trishkin  и желающие подсказать

Доброго времени 

Подскажите пожалуйста как это классифицировать: своп - не своп, комиссия - не комиссия 

Стандартные double  Swap() const  или  PositionGetDouble (POSITION_SWAP)  не работают

Провайдер называет  это корректировка справедливой стоимости

Чем эту коррекцию считать?

Заранее благодарю

Извините, но я не понимаю, о чём вы спрашиваете?

Всё выглядит нормально.

 
Alain Verleyen #:

Извините, но я не понимаю, о чём вы спрашиваете?

Всё выглядит нормально.

Бывший ежедневный своп переименован провайдером как FVA, идентификатора которого не существует

Возможно ли его добавить?

https://www.mql5.com/ru/forum/160683/page2681#comment_58603395

 
Aleksandr Slavskii #:

Мне тоже хочется конкретики, но если бы она у меня была, я бы не задавал вопрос на форуме. 

Я ответил, так как я понимаю). А вы, получили ответ, да и ещё нагадили на ето. Кто, вам, после этого, писать будет.
 
VVT #:

Бывший ежедневный своп переименован провайдером как FVA, идентификатора которого не существует

Возможно ли его добавить?

https://www.mql5.com/ru/forum/160683/page2681#comment_58603395

Алиса, вот, что говорит, по этому поводу.

" Вы столкнулись с распространенной ситуацией в работе с внебиржевыми инструментами (OTC), особенно с CFD на акции (CFD on Stocks) или на другие базовые активы. То, что провайдер называет «корректировкой справедливой стоимости» (Fair Value Adjustment), действительно не является стандартным валютным свопом (FX Swap), и стандартные функции терминала (типа PositionGetDouble(POSITION_SWAP) ) не будут возвращать это значение.

Вот как классифицировать и считать эту корректировку.

1. Классификация: Своп или нет?

С точки зрения механики торгового терминала, это не своп.

  • Своп (Swap/Overnight Financing): Это плата за перенос маржинальной позиции через ночь. Он начисляется или списывается со счета за использование кредитного плеча. В терминале это значение обычно доступно через POSITION_SWAP или Swap() и отображается в спецификации контракта.
  • Корректировка справедливой стоимости (Fair Value Adjustment / Dividend Adjustment): Это не плата за кредитное плечо. Это техническая корректировка, призванная уравнять стоимость CFD-контракта с ценой базового актива (акции) на бирже. Она возникает из-за того, что держатель CFD не является владельцем акции и не получает дивиденды напрямую, но цена акции на бирже падает на размер дивиденда в день "отсечки" (ex-dividend date).

Вывод: Это не своп. Это отдельная статья корректировок, связанная с дивидендами.

2. Классификация: Комиссия или нет?

С точки зрения терминологии, это не комиссия.

  • Комиссия: Это плата брокеру за исполнение сделки (открытие/закрытие).
  • Корректировка справедливой стоимости: Это отражение экономических прав и обязанностей по контракту. Если вы держите длинную позицию (Buy) по CFD на акцию в момент выплаты дивидендов, вам начисляется сумма, эквивалентная дивиденду. Если вы держите короткую позицию (Sell), с вас списывается эта сумма.

Вывод: Это не комиссия. Это корректировка баланса счета, моделирующая получение или выплату дивидендов.

3. Как считать эту коррекцию?

Поскольку стандартные функции не работают, рассчитывать эту величину необходимо самостоятельно, опираясь на данные от провайдера ликвидности или из спецификации контракта.

Логика расчета для одной акции в вашем портфеле:

  1. Для длинной позиции (Buy / Long): На ваш баланс начисляется сумма, равная Дивиденд на акцию * Размер лота .

    • Пример: Вы купили 100 CFD на акции компании "X". Компания объявила дивиденд $1.50 на акцию. В день выплаты на ваш счет будет начислено: 100 * $1.50 = $150 .
  2. Для короткой позиции (Sell / Short): С вашего баланса списывается та же сумма.

    • Пример: Вы продали в шорт 100 CFD на акции компании "X". В день выплаты с вашего счета будет списано: 100 * $1.50 = $150 .

Алгоритм для автоматизации:

Вам необходимо реализовать собственный механизм учета этих корректировок.

  1. Получение данных: Подписаться на поток данных от провайдера, который содержит информацию о корпоративных событиях (Corporate Actions). Ищите поля, связанные с дивидендами ( Dividends , Cash Dividends , Fair Value Adjustment ).
  2. Фильтрация: Отслеживать только те события, которые относятся к инструментам в ваших открытых позициях.
  3. Расчет:
    • При поступлении события о выплате дивидендов по инструменту "A" в размере D :
      • Получить текущий объем позиции по инструменту "A" ( Volume ).
      • Если Volume > 0 (длинная позиция), рассчитать прибыль от корректировки: Profit = Volume * D .
      • Если Volume < 0 (короткая позиция), рассчитать убыток от корректировки: Loss = |Volume| * D .
  4. Отображение: Эту сумму нужно отображать в отчете о состоянии счета отдельной строкой, например: "Dividend Adjustment" или "Fair Value Adjustment", чтобы она не смешивалась со свопами и комиссиями.

Таким образом, для корректного учета вы должны игнорировать стандартные функции получения свопа и самостоятельно обрабатывать данные о корпоративных событиях от вашего поставщика ликвидности, применяя к ним описанную выше логику расчета.

"
 
Igor Nagorniuk #:
Алиса, вот, что говорит, по этому поводу.

Спасибо Алисе)

 

Уважаемые знатоки MQL4!

Допустим, некий индикатор или советник накинут на ТФ 1H. На открытии каждого нового бара данные принудительно обновляются при помощи функции RefreshRates(), работа индикатора/советника продолжается только после отдачи этой функцией значения true. Вопрос: будет ли произведено обновление данных в этот момент И ДЛЯ ДРУГИХ, младших ТФ? То есть, например, для М30, М15 и т.д. Или для каждого младшего ТФ также надо вызывать эту функцию отдельно? Ну и, чтобы два раза не вставать: если нет, то как можно максимально оперативно обновить данные для рабочего и младших ТФ, условно говоря, "одним махом"? Спасибо.

И второй вопрос из "другой оперы", по форуму (поскольку людей в техподдержке, судя по всему, здесь не осталось, а с электронными болванами я не общаюсь): я могу удалить свои старые сообщения, к кому мне следует обратиться с этой просьбой?

 
VVT #:

Спасибо Алисе)

Незачто, обращайтесь ))
 
Оссильяновец #:
RefreshRates()
Не надо обновлять данные функцией RefreshRates() после каждого нового бара. Данные обновляются автоматически.
 
В МТ5 открыл график с пользовательским символом SBER, график не вытягивается вверх и вниз, бары зажаты в центре экрана.
Можно ли это исправить?