Move parameter to return value of sma()

This commit is contained in:
Sik Yoon 2023-07-16 17:25:04 +09:00
parent a0ede8e8be
commit b978a9038f
2 changed files with 5 additions and 9 deletions

View File

@ -997,16 +997,14 @@ pub async fn execute_strategist_for_test_temp(
} }
// 3rd filtering: BollingerBand (length 10, stddev: 3.0, 30m close price) the current price should be under the lowerband of BB. // 3rd filtering: BollingerBand (length 10, stddev: 3.0, 30m close price) the current price should be under the lowerband of BB.
let mut sma_30m_data: Vec<(String, Vec<SmaData>)> = Vec::new(); let sma_30m_data: Vec<(String, Vec<SmaData>)> = value_estimation_team::indicators::sma::sma(
value_estimation_team::indicators::sma::sma(
30, 30,
&alldata.rt_price_30m_vec, &alldata.rt_price_30m_vec,
&mut sma_30m_data,
&alldata.valid_symbol_vec, &alldata.valid_symbol_vec,
) )
.await?; .await?;
let mut bb10_30m_data: Vec<(String, Vec<BollingerBandData>)> = value_estimation_team::indicators::bollingerband::bollingerband( let bb10_30m_data: Vec<(String, Vec<BollingerBandData>)> = value_estimation_team::indicators::bollingerband::bollingerband(
10, 10,
3.0, 3.0,
&sma_30m_data, &sma_30m_data,
@ -1014,7 +1012,7 @@ pub async fn execute_strategist_for_test_temp(
&alldata.valid_symbol_vec, &alldata.valid_symbol_vec,
) )
.await?; .await?;
let mut bb10_30m_vec: Vec<BollingerBandData> = Vec::new(); let mut bb10_30m_vec: Vec<BollingerBandData> = Vec::new();
let mut filtered_4th_symbols: Vec<(String, i64)> = Vec::new(); // (symbol, closetime) let mut filtered_4th_symbols: Vec<(String, i64)> = Vec::new(); // (symbol, closetime)
for element in filtered_3rd_symbols { for element in filtered_3rd_symbols {
let bb10_30m_option = bb10_30m_data.iter().position(|x| *x.0 == element.0); let bb10_30m_option = bb10_30m_data.iter().position(|x| *x.0 == element.0);

View File

@ -27,9 +27,8 @@ impl SmaData {
pub async fn sma( pub async fn sma(
moving_number: usize, moving_number: usize,
input_rt_data: &Vec<(String, Vec<RealtimePriceData>)>, input_rt_data: &Vec<(String, Vec<RealtimePriceData>)>,
output_sma_data: &mut Vec<(String, Vec<SmaData>)>,
valid_usdt_trades: &Vec<String>, valid_usdt_trades: &Vec<String>,
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> { ) -> Result<Vec<(String, Vec<SmaData>)>, Box<dyn std::error::Error + Send + Sync>> {
let instant = Instant::now(); let instant = Instant::now();
let mut sma_data_wrapper: Vec<(String, Vec<SmaData>)> = Vec::new(); let mut sma_data_wrapper: Vec<(String, Vec<SmaData>)> = Vec::new();
@ -65,7 +64,6 @@ pub async fn sma(
None => {} None => {}
} }
} }
*output_sma_data = sma_data_wrapper;
// println!(" indicators/sma{} 완료 elapsed:{:.2}s", moving_number, instant.elapsed().as_secs_f32()); // println!(" indicators/sma{} 완료 elapsed:{:.2}s", moving_number, instant.elapsed().as_secs_f32());
Ok(()) Ok(sma_data_wrapper)
} }