Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ром:
Может фейк гонит? Закажу историю всех заявок у биржи, чтобы решить загадку.
Хотя, я привык, что когда я нахожу косяк в чем-то - то оказывается, что это он мой, а подозрения -чушь моей фантазии.
Хотите, чтобы МКЛ выступили конкурентом для биржи, которая торгует данными?)) Мысль хорошая, но вряд ли осуществимая.ИМХО.
Квик располагает за последние сутки и не более. Думаю, по той же причине.
Квик показывает всю историю ОИ действующего на данный момент контракт фьючерса
Квик показывает то, что брокер разрешает показывать. В Открытии показывают за текущие сутки.
Нет, показывает все, или почти все, несколько недель точно, скрин надо, или на слово поверите.
Нет, показывает все, или почти все, несколько недель точно, скрин надо, или на слово поверите.
На МТ снапшот стаканов примерно втрое быстрей чем при получении через коннектор смартком .Мои советники по стратегиям арбитража, написанные на сишарпе, работающие через смартком в 6 раз прибыльнее аналогичнычных, написанных на MQL, работающих в "открытии".
Ну и как такое может быть?
Сколько примеров уже было логов, где показано, что даже выставление заявки может длиться секунды. Разрабы стрелки переводят на биржу. Биржа - у нас все OK.
На смарткоме бывают такие тормоза? Если не бывают и еще и прибыльней, значит, однозначно, MT кривой в части исполнения.
В частности для чего бы еще пригодилось добавление ОИ к данным по тикам: сейчас не представляется возможным провести синхронизацию ОИ с временем прихода торговых тиков. Тики приходят с точностью до мс, а время прихода нового значения ОИ можно вычислить только приближенно.
Либо, как вариант, хотя бы добавить в свойства SymbolInfoInteger() флаг, показывающий время прихода последнего значения ОИ (с точностью до мс).
Уважаемые разработчики (@Renat Fatkhullin, @Slawa), скажите пожалуйста, есть ли возможность реализовать:
1. Возможность доступа к истории ОИ (квик же может!);
2. Возможность получать значения ОИ с точностью до мс?
Вообще, функция получения ОИ, насколько я понимаю, асинхронная? Т.е., чтобы как можно быстрее получить актуальный ОИ из индикатора, нужно пользоваться таймером?
Для сравнения времени получения ОИ из таймера и OnCalculate() набросал тестовый индикатор:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Включаем таймер
EventSetMillisecondTimer(1);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
const datetime oiTime= TimeCurrent();
static double oiPrev = 0;
//---
const double oi=SymbolInfoDouble(_Symbol,SYMBOL_SESSION_INTEREST);
if(oiPrev!=oi)
{
oiPrev=oi;
Print(__FUNCTION__,": ("+TimeToString(oiTime,TIME_SECONDS)+"): oi = ",DoubleToString(oi,0));
}
else
Print(__FUNCTION__,": ПОВТОР! "+TimeToString(oiTime,TIME_SECONDS)+" oi = "+DoubleToString(oi,0));
//---
return(rates_total);
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
const datetime oiTime= TimeCurrent();
static double oiPrev = 0;
//---
const double oi=SymbolInfoDouble(_Symbol,SYMBOL_SESSION_INTEREST);
if(oiPrev!=oi)
{
oiPrev=oi;
Print(__FUNCTION__,": ("+TimeToString(oiTime,TIME_SECONDS)+"): oi = ",DoubleToString(oi,0));
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
EventKillTimer();
}
//+------------------------------------------------------------------+
Результат показывает, что из таймера гораздо быстрее можно получить актуальные значения ОИ:
2017.01.11 16:31:25.146 test_SpeedOI (RTS-3.17,M1) OnCalculate: (14:31:24): oi = 570212
2017.01.11 16:31:25.155 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.156 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.157 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.157 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.158 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.159 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.160 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.161 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.161 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.162 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:24 oi = 570212
2017.01.11 16:31:25.365 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:25 oi = 570212
2017.01.11 16:31:25.376 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:25 oi = 570212
2017.01.11 16:31:25.874 test_SpeedOI (RTS-3.17,M1) OnTimer: (14:31:25): oi = 570234
2017.01.11 16:31:30.035 test_SpeedOI (RTS-3.17,M1) OnTimer: (14:31:29): oi = 570236
2017.01.11 16:31:30.036 test_SpeedOI (RTS-3.17,M1) OnCalculate: (14:31:29): oi = 570236
2017.01.11 16:31:30.815 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:30 oi = 570236
2017.01.11 16:31:31.212 test_SpeedOI (RTS-3.17,M1) OnCalculate: ПОВТОР! 14:31:30 oi = 570236
Причем, похоже, что OnCalculate() еще и пропустить может обновление ОИ.
На МТ снапшот стаканов примерно втрое быстрей чем при получении через коннектор смартком .Мои советники по стратегиям арбитража, написанные на сишарпе, работающие через смартком в 6 раз прибыльнее аналогичнычных, написанных на MQL, работающих в "открытии". И снапшот (sleep) уменьшал в функции EventSetMillisecondTimer(sleep); Но нет.. Тут загадка. Может, "так получилось" . Может особенности исполнения? итп