Пишу бота для торговли. Мне нужно получить разницу цен во временных интервалах. Допустим, на 00:00:00:0000 GMT цена пары 100.0000, а на 00:00:00:0005 GMT цена 101.0000, я хочу получить эту разницу.
Я использую планировщик загрузки Spring, когда я запускаю приложение, оно всегда возвращает, что цена невелика. Я хочу, чтобы он постоянно проверял, не влияет ли разница в цене на цену.
Это проверка каждые 5 минут
@Scheduled(fixedRate = (10*60*1000))
private double getInitialPrice(){
try {
initialPrice = Double.parseDouble(String.valueOf(api.pricesMap().get("BTCUSDT")));
} catch (BinanceApiException e) {
e.printStackTrace();
}
return initialPrice;
}
Это проверка каждые 5 миллисекунд
@Scheduled(fixedRate = (5))
private double getInstancePrice(){
try {
instancePrice = Double.parseDouble(String.valueOf(api.pricesMap().get("BTCUSDT")));
} catch (BinanceApiException e) {
e.printStackTrace();
}
return instancePrice;
}
Сейчас я проверяю, надеясь, что метод getInstancePrice() всегда будет проверяться, пока не станет правдой. Он не прошел тест, так как всегда возвращает, что цена не выше, тогда как при ручной проверке она выше. Как мне заставить его постоянно проверять, пока он не даст разницу во времени?
if( getInstancePrice() > getInitialPrice() ){
//do this
}
private static double initialPrice = 0; private static double instancePrice = 0;
Что вы думаете? - person ken4ward   schedule 05.12.2019