Ненавязчивый вопрос к Renat Fatkhullin - страница 3

 
Sergey Chalyshev:

Это есть на реале, в тестере не работает. OnBookEvent получает события от всех символов.


А вы уверены, что OnBookEvent у всех брокеров работает. Знаю что он в тестере не работает, и тогда каким способом проверить робот.

 
Alexey Volchanskiy:

Но нас так просто не возьмешь ))



Реальное плечо программно можно определить только при открытии или закрытии ордера.

 
Petros Shatakhtsyan:

Реальное плечо программно можно определить только при открытии или закрытии ордера.

Год назад тоже нужно было знать текущее плечо по символу, где-то на просторах форума находил что-то такое

   // --- получаем текущее плечо из маржинальных требований, стоимости пункта, тек.котировки
  double leverageSymb = MarketInfo(Symbol(),MODE_TICKVALUE) * Bid / MarketInfo(Symbol(),MODE_MARGINREQUIRED) / Point;
  leverageSymb = int(MathRound(leverageSymb));
  
   // --- если плечо по символу стало меньше плеча по счету отметим это.
  if(leverageSymb < percVar(AccountInfoInteger(ACCOUNT_LEVERAGE), -10))   
  {
    // Здесь закрываем ордера или выкидываем на график и в журнал сообщение
  }

Только пришлось доработать и сравнивать не в лоб плечо по символу и плечо по счету, так как у Экнесс, например, могло текущее плечо символа становиться 999 при плече по счету 1000.

Поэтому от плеча по счету минусовал 10% (функция percVar()) и уже сравнивал с текущим полученным плечом по символу.

 

Нас ждут новшества. Очень интересно и хочется узнать их список. За кастомные символы огромное, огромное спасибо. Еще бы найти где склейки с CME в минутках скачать можно.

 
Petros Shatakhtsyan:

А вы уверены, что OnBookEvent у всех брокеров работает. Знаю что он в тестере не работает, и тогда каким способом проверить робот.


У всех брокеов работает, у дилеров не знаю.

В тестере тоже есть способ, об этом все знают, заслать агентов на нужные символы.

Конечно это костыли, нужно штатное решение.

 
Petros Shatakhtsyan:

Реальное плечо программно можно определить только при открытии или закрытии ордера.


То есть SYMBOL_MARGIN_INITIAL, SYMBOL_MARGIN_HEDGED, SymbolInfoMarginRate(...), OrderCalcMargin(...) по вашему не работают в советниках? Мне плечо, как таковое и не нужно, мне нужно знать значение маржи для открываемого ордера.

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

 
Alexey Volchanskiy:

То есть SYMBOL_MARGIN_INITIAL, SYMBOL_MARGIN_HEDGED, SymbolInfoMarginRate(...), OrderCalcMargin(...) по вашему не работают в советниках? Мне плечо, как таковое и не нужно, мне нужно знать значение маржи для открываемого ордера.

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

Хотел-бы Я увидеть того профессионала и его код, который сможет послать ордер при помощи этих функций, вот тогда они действительно будут торговыми, а не информационными.

 
Vitaly Muzichenko:

Хотел-бы Я увидеть того профессионала и его код, который сможет послать ордер при помощи этих функций, вот тогда они действительно будут торговыми, а не информационными.


Да, тем более только OrderCalcMargin в справке находится в разделе Торговые функции, остальные в Получение рыночной информации. Я сейчас точно не помню, но какие-то функции не работали тогда (месяцев 8 назад) из индикаторов. Сейчас ситуацию не проверял.

 
Vasiliy Pushkaryov:

Год назад тоже нужно было знать текущее плечо по символу, где-то на просторах форума находил что-то такое

Только пришлось доработать и сравнивать не в лоб плечо по символу и плечо по счету, так как у Экнесс, например, могло текущее плечо символа становиться 999 при плече по счету 1000.

Поэтому от плеча по счету минусовал 10% (функция percVar()) и уже сравнивал с текущим полученным плечом по символу.


По моему это неправильный расчет. Это не так просто. В формуле надо учесть какой тип символа, а также учесть валюта счета.

Вот когда-то для определения реального плеча, воспользовался из этой таблицы.


 
Petros Shatakhtsyan:

А я думаю, что надо делать такие вещи, которые более всего полезны.

Например:

...

2. При создании Мультивалютника, не хватает событийную функцию, которая сработала при изменении от любого символа из Market Watch. Например можно ее назвать OnMultiTick.

    Это особенно нужно, когда Мултивалюник работает на реальных тиках.


  Прошу не критиковать и говорить что для этого есть OnTick, OnTimer или кастомный OnChartEvent.  Я о них хорошо знаю.

Можно попробывать написать такую функцию. Думаю, не сложно будет ее сделать...

Причина обращения: