Ошибки, баги, вопросы - страница 3669

 
Anton #:

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

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

Почему они перестали что-то писать в свои логи - это сложно сказать.

Оооооочень долго общался с поддержкой Бинанса. Итог: мои IP не в бане, дело не в них. В сухом остатке сейчас получается, что, с одного и того же сервера:

-- команда curl https://fapi.binance.com/fapi/v1/ticker/bookTicker?symbol=ETHUSDT возвращает успех

-- WebRequest из MT5 https://fapi.binance.com/fapi/v1/ticker/bookTicker?symbol=ETHUSDT вот с таким кодом возвращает 503 Service Temporarily Unavailable (разумеется, все URL в белом списке терминала).

Получается, проблема либо в моем коде, либо в МТ5. Мой код дважды проверяли разные люди в саппорте, сказали все в порядке.

 
Kristian Kafarov #:

возвращает 503 Service Temporarily Unavailable (разумеется, все URL в белом списке терминала).


int OnInit()
  {
//---
   string cookie=NULL, /*headers,*/ resultstr, res_headers;  
   char   post[], result[], post0[];      
   string url="https://fapi.binance.com/fapi/v1/ticker/bookTicker?symbol=ETHUSDT";//+Symbol()
 
   ResetLastError(); 
   int code=WebRequest("GET", url, cookie, NULL, 500, post0, 0, result, res_headers);
        
   if(code==-1)Print("WebRequest error. Error code = "+(string)GetLastError()); 
                              else {
                                   resultstr=CharArrayToString(result);  
                                   Print(resultstr);            
                                   } 
//---
   return(INIT_SUCCEEDED);
  }

2025.09.23 18:33:04.968 test (USDCHF,M5) {"symbol":"ETHUSDT","bidPrice":"4184.71","bidQty":"180.815","askPrice":"4184.72","askQty":"62.373","time":1758641587412,"lastUpdateId":8665646461391}

(это MT5)

 
trader6_1 #:

2025.09.23 18:33:04.968 test (USDCHF,M5) {"symbol":"ETHUSDT","bidPrice":"4184.71","bidQty":"180.815","askPrice":"4184.72","askQty":"62.373","time":1758641587412,"lastUpdateId":8665646461391}

(это MT5)

Спасибо! А с какой машины запускали? У меня дома (Win 10) тоже работает. А сервер (Швейцария, Win Server 2012 R2) нет.
 
Kristian Kafarov #:
Спасибо! А с какой машины запускали?
2025.09.23 19:20:16.135 Terminal Windows 7 Service Pack 1 build 7601, ...
 
seldes #:

Действительно, опираясь на SYMBOL_TRADE_CALC_MODE, стало понятно, что маржа за лот высчитывается по формуле Margin: Lots * InitialMargin * Margin_Rate

Библиотечная функция MaxLotCheck прекрасно работает, когда начальная маржа равна 1. 

А если взять, например, GOLD, то по спецификации начальная маржа там 0.000001 а лот 0.38. Простое перемножение дает 0,00000038.

Нужно умножать начальную маржу на размер контракта. В данном случае он 100. Сумма взята из спецификации символа.

И только после этого мы можем правильно запросить OrderCalcMargin, который честно вернет цену около 3700, которая является 1.0 лотом при покупке.

Препарировал MaxLotCheck, вывалив его в OnTick() и слегка доработав напильником под сложившуюся ситуацию.


Возможно, я изобрел велосипед. Подскажите, пожалуйста, готовое решение, если оно есть.

Вот это всё неправильно. Прошу прощения, если кого-то ввёл в заблуждение. Не используйте этот код.
 
seldes #:
Вот это всё неправильно. Прошу прощения, если кого-то ввёл в заблуждение. Не используйте этот код.

Вы молодец.

Вообще про то как рассчитывается маржа очень хорошо описано в учебнике и примеры там лучше чем в справке.

 

Что за фигня  [Disk error] - такого еще не видел:

Это на MQ-терминале.

2025.09.26 00:01:00.714    Trades    '81707222': market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761    Trades    '81707222': accepted market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761    Trades    '81707222': failed market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071 [Disk error]

 
Dmitriy Skub #:

Что за фигня  [Disk error] - такого еще не видел:

Это на MQ-терминале.

2025.09.26 00:01:00.714    Trades    '81707222': market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761    Trades    '81707222': accepted market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071
2025.09.26 00:01:00.761    Trades    '81707222': failed market sell 0.01 EURUSD, close #4728882562 buy 0.01 EURUSD 1.17071 [Disk error]

Что-то с демо-сервером?


 
Dmitriy Skub #:

Что-то с демо-сервером?


у всех похоже так
 

В кодобазе не появляется кнопка "Опубликовать".