|
|
@@ -21,7 +21,7 @@ pub struct RangeInterval {
|
|
|
pub interval_text: String,
|
|
|
}
|
|
|
|
|
|
-pub async fn export_ticker(symbol: &str, exchange: &str, range_interval: &str) {
|
|
|
+pub async fn export_ticker(symbol: &str, exchange: &str, range_interval: &str, range_limit: Decimal) {
|
|
|
// 从此刻往前算时间
|
|
|
let timestamp_seconds_now = Utc::now().timestamp();
|
|
|
let range_interval = parse_range_interval(range_interval);
|
|
|
@@ -30,7 +30,7 @@ pub async fn export_ticker(symbol: &str, exchange: &str, range_interval: &str) {
|
|
|
let end_at = timestamp_seconds_now;
|
|
|
|
|
|
let ticker_info = get_ticker_info(&exchange.to_uppercase(), start_at, end_at, symbol).await;
|
|
|
- let amplitude_map = get_amplitude(ticker_info);
|
|
|
+ let amplitude_map = get_amplitude(ticker_info, range_limit);
|
|
|
|
|
|
export_template::template_analyze::export_html(&range_interval.interval_text, &symbol.to_uppercase(), amplitude_map.keys().cloned().collect(), amplitude_map.values().cloned().collect())
|
|
|
}
|
|
|
@@ -69,12 +69,11 @@ pub fn parse_range_interval(range_interval: &str) -> RangeInterval {
|
|
|
}
|
|
|
|
|
|
// 计算最近range毫秒的的波动
|
|
|
-pub fn calc_gate_ticker_amplitude(ticker_map: BTreeMap<u64, Ticker>) -> BTreeMap<Decimal, Decimal> {
|
|
|
- let limit_range = dec!(100);
|
|
|
+pub fn calc_gate_ticker_amplitude(ticker_map: BTreeMap<u64, Ticker>, limit_range: Decimal) -> BTreeMap<Decimal, Decimal> {
|
|
|
let mut amplitude_map: BTreeMap<Decimal, Decimal> = BTreeMap::new();
|
|
|
|
|
|
// 每一个元素都遍历一遍
|
|
|
- info!("精确幅度计算执行中");
|
|
|
+ info!("精确幅度计算执行中……");
|
|
|
let keys: Vec<u64> = ticker_map.keys().cloned().collect();
|
|
|
for (index, create_time) in keys.iter().enumerate() {
|
|
|
let ticker = ticker_map.get(&create_time).unwrap();
|
|
|
@@ -164,9 +163,9 @@ pub async fn get_ticker_info(exchange: &str, start_at: i64, end_at: i64, symbol:
|
|
|
return ticker_map;
|
|
|
}
|
|
|
|
|
|
-pub fn get_amplitude(ticker_map: BTreeMap<u64, Ticker>) -> BTreeMap<Decimal, Decimal> {
|
|
|
+pub fn get_amplitude(ticker_map: BTreeMap<u64, Ticker>, range_limit: Decimal) -> BTreeMap<Decimal, Decimal> {
|
|
|
// 逻辑层执行
|
|
|
- let amplitude_map = calc_gate_ticker_amplitude(ticker_map);
|
|
|
+ let amplitude_map = calc_gate_ticker_amplitude(ticker_map, range_limit);
|
|
|
let amplitude_map_len = amplitude_map.len();
|
|
|
info!("逻辑层执行完毕,剩余有效波动条数:{}。", amplitude_map_len);
|
|
|
|