Fix wrong calculation

This commit is contained in:
Sik Yoon 2023-12-18 01:53:21 +09:00
parent b09edb9796
commit 832ebd76fb
3 changed files with 10 additions and 9 deletions

View File

@ -46,7 +46,7 @@ pub async fn execute_list_up_for_buy(
// strategist_004(all_data).await?; // strategist_004(all_data).await?;
// strategist_005(all_data).await?; // strategist_005(all_data).await?;
// strategist_006(all_data).await?; // strategist_006(all_data).await?;
crate::strategy_team::strategy_test::strategist_test(all_data_c4); crate::strategy_team::strategy_test::strategist_test(all_data_c4).await;
// try_join_all(task_vec).await?; // try_join_all(task_vec).await?;
Ok(()) Ok(())

View File

@ -15,15 +15,15 @@ pub async fn strategist_test(
// 1st filtering: lookup tables if the tradepair is already there // 1st filtering: lookup tables if the tradepair is already there
let mut symbol_1 = FilteredData::new(); let mut symbol_1 = FilteredData::new();
let mut symbol_2 = FilteredData::new(); // let mut symbol_2 = FilteredData::new();
let mut symbol_3 = FilteredData::new(); // let mut symbol_3 = FilteredData::new();
symbol_1.symbol = String::from("BTCUSDT"); symbol_1.symbol = String::from("BTCUSDT");
symbol_2.symbol = String::from("XRPUSDT"); // symbol_2.symbol = String::from("XRPUSDT");
symbol_3.symbol = String::from("ETHUSDT"); // symbol_3.symbol = String::from("ETHUSDT");
let mut test_symbols: Vec<FilteredData> = Vec::new(); let mut test_symbols: Vec<FilteredData> = Vec::new();
test_symbols.push(symbol_1); test_symbols.push(symbol_1);
test_symbols.push(symbol_2); // test_symbols.push(symbol_2);
test_symbols.push(symbol_3); // test_symbols.push(symbol_3);
let a = adx(10, 10, &alldata.rt_price_30m_vec, &test_symbols).await?; let a = adx(10, 10, &alldata.rt_price_30m_vec, &test_symbols).await?;
println!("{:?}", a); println!("{:?}", a);

View File

@ -94,9 +94,10 @@ filtered_symbols: &Vec<FilteredData>,) -> Result<Vec<(String, Vec<AdxData>)>, Bo
// step 4: calculate ADX // step 4: calculate ADX
let mut initial_adx_vec: Vec<AdxData> = Vec::new(); let mut initial_adx_vec: Vec<AdxData> = Vec::new();
for di_data in di_data_vec { for di_data in di_data_vec {
let sum = di_data.di_plus - di_data.di_minus; let sum = di_data.di_plus + di_data.di_minus;
let difference = (di_data.di_plus - di_data.di_minus).abs();
let divisor = if sum <= 0.00000001 { 1.0 } else { sum }; let divisor = if sum <= 0.00000001 { 1.0 } else { sum };
let adx_data = AdxData { adx: sum.abs()/divisor, close_time: di_data.close_time }; let adx_data = AdxData { adx: difference.abs()/divisor, close_time: di_data.close_time };
initial_adx_vec.push(adx_data); initial_adx_vec.push(adx_data);
} }
let partial_vec1 = initial_adx_vec.get(..adx_len).unwrap(); // for calculation of initial value let partial_vec1 = initial_adx_vec.get(..adx_len).unwrap(); // for calculation of initial value