var lastMidPrice=0;
calculateMidPrice(); // Вызываем функцию при старте, чтобы не дожидаться изменения индикаторов
function calculateMidPrice()
{
// var midPrice=(trader.get("BidPrice")+trader.get("AskPrice"))/2;
**var midPrice=(trader.get("AsksPrice",0.1) + trader.get("BidsPrice",0.1))/2
// в Вашем примере модифицирована только предыдущая строка
//Если в аргументе указан объем "0.1", то в консоль пишет "WARNING..."
//Если большое значение(например "100"), то все нормально
if(midPrice==lastMidPrice)return; // Останавливаемся если значение не изменилось
lastMidPrice=midPrice; // Сохраняем последнее значение
trader.sendEvent("MidPrice",midPrice); // Транслируем наше событие
}
Ето не ошибка а предупреждение.
Для того чтобы весь ордербук стал доступен скриптовому языку, надо в интерфейсе выбрать больше количество строк для отображения.
Пока нет отдельной настройки ордербука для интерфейса и скриптов.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Данные на сайте от данных отображаемых в программе могут отличаться так как биржа ограничивает количество запросов в секунду. И чтобы обновить все данные надо отправить 6 запросов по очереди.
Выведите в лог ask и bid, и если повторится ситуация скажите значения.
Про 0.1 изучу и исправлю, спасибо.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Берем пример отсюда:
http://forum.centrabit.com/viewtopic.php?f=3&t=4168&sid=c53bdd2c668cddb96cc1356746770271
------------------------------------------------------------------------------------------------------
var lastMidPrice=0;
calculateMidPrice(); // Вызываем функцию при старте, чтобы не дожидаться изменения индикаторов
function calculateMidPrice()
{
// var midPrice=(trader.get("BidPrice")+trader.get("AskPrice"))/2;
**var midPrice=(trader.get("AsksPrice",0.1) + trader.get("BidsPrice",0.1))/2
// в Вашем примере модифицирована только предыдущая строка
//Если в аргументе указан объем "0.1", то в консоль пишет "WARNING..."
//Если большое значение(например "100"), то все нормально
if(midPrice==lastMidPrice)return; // Останавливаемся если значение не изменилось
lastMidPrice=midPrice; // Сохраняем последнее значение
trader.sendEvent("MidPrice",midPrice); // Транслируем наше событие
}
trader.on("BidPrice").changed()
{
calculateMidPrice();
}
trader.on("AskPrice").changed()
{
calculateMidPrice();
}
//добавим логирование в консоль
trader.on("MidPrice").changed()
{
trader.log("Средняя цена изменилась:", value);
}
----------------------------------------------------------------------------------------------------------------
Пример неправильной работы:
17:49:39> Warning! OrderBook info is out of range. OrderBook information is limited to rows count limit.
17:49:39> Средняя цена изменилась: 236.6625
Last edit: Alexander 2015-09-30
Ето не ошибка а предупреждение.
Для того чтобы весь ордербук стал доступен скриптовому языку, надо в интерфейсе выбрать больше количество строк для отображения.
Пока нет отдельной настройки ордербука для интерфейса и скриптов.
Так а пример я к чему привел? ;)
Он предупреждает на минимальном объеме:
//Если в аргументе указан объем "0.1", то в консоль пишет "WARNING..."
Но при большом объеме, который требует большей глубины ордербука, этого не делает:
//Если большое значение(например "100"), то все нормально
Last edit: Alexander 2015-10-07
Самое интересное, что раньше считало правильно. А сегодня - вот так...
v1.10.01
Last edit: Alexander 2015-10-07
Last edit: Alexander 2015-10-07
Данные на сайте от данных отображаемых в программе могут отличаться так как биржа ограничивает количество запросов в секунду. И чтобы обновить все данные надо отправить 6 запросов по очереди.
Выведите в лог ask и bid, и если повторится ситуация скажите значения.
Про 0.1 изучу и исправлю, спасибо.
Ситуация с неправильным отображением стакана продолжалась несколько минут, я специально следил - DOM API lag многократно обнулялся.
Но если замечу, обязательно попробую запротоколировать и сохраню https://btc-e.com/api/2/btc_usd/depth/2000 для текущей валюты.
Значение лага ордербука или лага глобального?
оба API lag были как обычно, оба обнулялись.
Срабатывает на первое изменение "исТОРии моих сделок" - т.е. один раз всего. Причем неважно покупка/продажа.
trader.on("MyLastTrade").changed()
Разглючивает при смене пары, но только на одну сделку.
ПС: я еще не утомил? :)
Last edit: Alexander 2015-10-24