Browse Source

(add): 增加获取dalao ATA

windowdog 5 months ago
parent
commit
ab58ca60c6

+ 138 - 0
src/code/40000_getATA_for_analysisToken.py

@@ -0,0 +1,138 @@
+
+from base_class import BaseVariableFunction
+from base_class import *
+baseclass = BaseVariableFunction(__file__)
+
+old_print = print
+ 
+
+def timestamped_print(*args, **kwargs):
+    old_print(datetime.datetime.utcnow().replace(
+        microsecond=0), *args, **kwargs)
+
+def makescreenurl( urlname,urlparam):
+    # pairAddress = series[address_str]
+    urlname = urlname + urlparam
+    return '=HYPERLINK("{}","{}")'.format(urlname, urlname)
+
+print = timestamped_print
+print('\n'*5)
+print(f"{'{:<6}'.format('enter')}  ----------------NOTE-----------NOTE---------------")
+ 
+
+
+url = "https://solana-mainnet.g.alchemy.com/v2/pxF-cEkEE1JxzxgotGyww5ra5w1IvAkJ"
+
+def init_payload():
+    
+    global payload_getTokenAccountsByOwner
+    payload_getTokenAccountsByOwner = {
+    "id": 1,
+    "jsonrpc": "2.0",
+    "method": "getTokenAccountsByOwner",
+     "params": [ "",
+                
+                {
+            "mint":str_tokenaddress
+        }, {
+            "encoding": "jsonParsed"
+        }
+                
+                ],
+}
+    
+    return
+
+
+payload_getTokenAccountsByOwner = {
+  
+}
+headers = {
+    "accept": "application/json",
+    "content-type": "application/json"
+}
+
+ 
+    
+
+
+
+
+def get_dalao_ata():
+    df_top_gmgn_sol = pd.DataFrame(columns=["Maker","ATA"])
+    df_holder_gmgn_sol  = pd.DataFrame(columns=["Maker","ATA"])
+    if (baseclass.analysis_token_path /str_tokenaddress/
+                       f"{str_tokenaddress}_top_gmgn_sol.csv").exists():
+        df_top_gmgn_sol = pd.read_csv(baseclass.analysis_token_path /str_tokenaddress/
+                       f"{str_tokenaddress}_top_gmgn_sol.csv", dtype=object)
+        if "ATA" not in df_top_gmgn_sol.columns:
+            df_top_gmgn_sol["ATA"] = "0"
+            
+        
+    if (baseclass.analysis_token_path /str_tokenaddress/
+                       f"{str_tokenaddress}_holder_gmgn_sol.csv").exists():
+        df_holder_gmgn_sol = pd.read_csv(baseclass.analysis_token_path /str_tokenaddress /
+                       f"{str_tokenaddress}_holder_gmgn_sol.csv", dtype=object)
+        if "ATA" not in df_holder_gmgn_sol.columns:
+            df_holder_gmgn_sol["ATA"] = "0"
+ 
+    df =  pd.concat([df_top_gmgn_sol[["Maker","ATA"]], df_holder_gmgn_sol[["Maker","ATA"]]], ignore_index=True)
+  
+ 
+    df=df[df["ATA"]=="0"].reset_index(drop=True)
+    arr_dalaoaddress = df["Maker"].drop_duplicates().tolist()
+ 
+ 
+    while len(arr_dalaoaddress)>0:
+        if len(arr_dalaoaddress)%10==0:
+            print(f"remainder len = {len(arr_dalaoaddress)}")
+        
+        str_dalaoaddress =arr_dalaoaddress[0]
+        print(f"str_dalaoaddress= {str_dalaoaddress} ")
+        payload_getTokenAccountsByOwner["params"][0] =str_dalaoaddress
+        
+        req_response = requests.post(url, json=payload_getTokenAccountsByOwner, headers=baseclass.headers,timeout=10)
+        if req_response.status_code != 200:
+            print(" req_response.status_code=", req_response.status_code)
+            time.sleep(2)
+            continue
+        arr_dalaoaddress.pop(0)
+        # if str_dalaoaddress !="4LQuLeQYrAsqHtsJ3s15dT8A4Jpbr6iEKnK2DJAL7ZNo":
+        #     continue
+        response_data = req_response.json() 
+        # response_data = req_response.json()
+        ata_addata_address = "-1"
+        if len( response_data["result"]["value"])==0:
+            ata_addata_address ="-1"
+        else:
+            ata_addata_address =  response_data["result"]["value"][0]["pubkey"]  
+            
+        df_top_gmgn_sol.loc[df_top_gmgn_sol["Maker"]==str_dalaoaddress,"ATA"] = ata_addata_address 
+        df_holder_gmgn_sol.loc[df_holder_gmgn_sol["Maker"]==str_dalaoaddress,"ATA"] = ata_addata_address
+        print(f"ata_addata_address= {ata_addata_address}")
+   
+        if len(arr_dalaoaddress)%5==0 or len(arr_dalaoaddress)<=2:
+            if (baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_top_gmgn_sol.xlsx").exists():
+                df_top_gmgn_sol.to_excel(baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_top_gmgn_sol.xlsx",index=False )
+                df_top_gmgn_sol.to_csv(baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_top_gmgn_sol.csv",index=False )
+            if (baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_holder_gmgn_sol.xlsx").exists():
+                df_holder_gmgn_sol.to_excel(baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_holder_gmgn_sol.xlsx", index=False )
+    
+                df_holder_gmgn_sol.to_csv(baseclass.analysis_token_path /str_tokenaddress/
+                            f"{str_tokenaddress}_holder_gmgn_sol.csv", index=False )
+    return
+
+
+
+str_tokenaddress = "4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump"
+ 
+init_payload()
+get_dalao_ata()
+
+print(f"{'{:<6}'.format('END')} {baseclass.scriptfilename} ----------------NOTE-----------NOTE---------------")
+

+ 2 - 0
src/code/base_class.py

@@ -60,6 +60,8 @@ class BaseVariableFunction:
         
         self.dalao_tran_defined_path = self.librarydata_path/"dalao_tran_defined/"
         
+        self.analysis_token_path  =self.library_path / "analysis_token/"
+        
         
  
         self.dalao_transfer_solanafm_path = self.librarydata_path / \

+ 44 - 41
src/code/tamper_get_topAholders_sol_gmgn.js

@@ -60,7 +60,7 @@ function get_thead_arr_toptrader() {
     return titlearr;
 }
 
- 
+
 async function get_tbody_data_toptrader() {
 
     let div_has_tran_table = document.querySelector("div.chakra-tabs__tab-panels.css-2zi8qu");
@@ -225,7 +225,7 @@ async function get_tbody_data_toptrader() {
 
 }
 
- 
+
 async function get_tbody_data_holders() {
 
     let div_has_tran_table = document.querySelector("div.chakra-tabs__tab-panels.css-2zi8qu");
@@ -251,7 +251,7 @@ async function get_tbody_data_holders() {
                 let a_element = arr_tds[i].querySelector("a");
                 let str_trader = a_element.href.split('/').pop();
                 tdtexts[0] = str_trader;
-                 
+
 
             }
             else if (i == 1) {
@@ -270,38 +270,38 @@ async function get_tbody_data_holders() {
                     }
                 }
                 tdtexts[1] = float_balance;
-               
+
 
             } else if (i == 2) {
                 // old bought
                 // Owned%
 
                 let str_owned = "0";
-          
+
                 let float_sol = 0;
 
                 let arr_owned_sol = arr_tds[i].children[0].children;
-              
+
                 str_owned = arr_owned_sol[0].innerText.trim().toLowerCase();
                 str_owned = str_owned.replace(/[%]/g, "").trim();
-               
+
                 float_sol = parseFloat(str_owned);
                 tdtexts[2] = float_sol;
-              
-              
+
+
 
 
             } else if (i == 3) {
                 // sold
                 // inflow/Amount
-         
+
                 let str_token_amount = "0";
                 let float_token_amount = 0;
 
                 let arr_sol_amount = arr_tds[i].children[0].children;
-           
+
                 str_token_amount = arr_sol_amount[1].innerText.trim().toLowerCase();
-             
+
                 float_token_amount = parseFloat(str_token_amount);
                 for (let number_char of number_chars_arr) {
                     if (str_token_amount.indexOf(number_char) != -1) {
@@ -309,7 +309,7 @@ async function get_tbody_data_holders() {
                     }
                 }
                 tdtexts[3] = float_token_amount;
-             
+
 
 
 
@@ -318,28 +318,28 @@ async function get_tbody_data_holders() {
                 // pnl
                 continue;
 
-           
- 
+
+
             } else if (i == 5) {
-               // Avg Cost/Sold
+                // Avg Cost/Sold
                 continue;
             }
             else if (i == 6) {
                 // Buy/Sell
 
-            
 
-              
-              let  str_buysell_counts = arr_tds[i].innerText.trim().toLowerCase();
-                str_buysell_counts = str_buysell.replace(/[\s+]/g, "").trim();
- 
-               let arr_buysell_counts = str_buysell_counts.split("/");
 
-               let str_buy_counts = arr_buysell_counts[0];
-             let   str_sell_counts =arr_buysell_counts[1];
 
-             let   float_buy_counts = parseFloat(str_buy_counts);
-             let    float_sell_counts = parseFloat(str_sell_counts);
+                let str_buysell_counts = arr_tds[i].innerText.trim().toLowerCase();
+                str_buysell_counts = str_buysell_counts.replace(/[\s+]/g, "").trim();
+
+                let arr_buysell_counts = str_buysell_counts.split("/");
+
+                let str_buy_counts = arr_buysell_counts[0];
+                let str_sell_counts = arr_buysell_counts[1];
+
+                let float_buy_counts = parseFloat(str_buy_counts);
+                let float_sell_counts = parseFloat(str_sell_counts);
 
                 for (let number_char of number_chars_arr) {
                     if (str_buy_counts.indexOf(number_char) != -1) {
@@ -356,7 +356,7 @@ async function get_tbody_data_holders() {
 
                 continue
 
-            }  else if (i == 7) {
+            } else if (i == 7) {
                 // Last Active
                 continue
 
@@ -381,6 +381,18 @@ function save_resdata_toptrader() {
     res_data_toptrader = [];
 
 }
+
+function save_resdata_holders() {
+    console.log("enter save_resdata_holders");
+    res_data_get_holders.forEach((val, index, arr) => { arr[index] = val.join() + "\n" });
+    let urlpathname = window.location.pathname.slice(1).split('/');
+    urlpathname = urlpathname.pop()
+
+    funcDownload(res_data_get_holders.join(""), urlpathname + "_holder_gmgn_sol" + "_" + parseInt(Date.now() / 1000) + ".csv");
+    res_data_get_holders = [];
+
+}
+
 function autoScroll_toptrader() {
     console.log("enter autoScroll_toptrader");
 
@@ -432,16 +444,7 @@ function autoScroll_toptrader() {
 }
 
 
-function save_resdata_holders() {
-    console.log("enter save_resdata_holders");
-    res_data_get_holders.forEach((val, index, arr) => { arr[index] = val.join() + "\n" });
-    let urlpathname = window.location.pathname.slice(1).split('/');
-    urlpathname = urlpathname.pop()
-
-    funcDownload(res_data_get_holders.join(""), urlpathname + "_top_gmgn_sol" + "_" + parseInt(Date.now() / 1000) + ".csv");
-    res_data_get_holders = [];
 
-}
 function autoScroll_holders() {
     console.log("enter autoScroll_holders");
 
@@ -516,7 +519,7 @@ var res_data_toptrader = [];
     button_holders.style.background = "#045710"; //按钮底色
     button_holders.style.border = "1px solid #045710"; //边框属性
 
-    
+
     var button_get_toptrader = document.createElement("button");//创建 获取 top trader 一个按钮
     button_get_toptrader.className = "tam-mybutton-gettran"
     button_get_toptrader.textContent = "top"; //按钮内容
@@ -527,7 +530,7 @@ var res_data_toptrader = [];
     button_get_toptrader.style.background = "#717171"; //按钮底色
     button_get_toptrader.style.border = "1px solid #717171"; //边框属性
 
-    mydivbox.appendChild(button_get_toptrader);    
+    mydivbox.appendChild(button_get_toptrader);
     mydivbox.appendChild(button_holders);
 
     mydivbox.style.position = "fixed";
@@ -559,12 +562,12 @@ async function clickButton_get_toptrader() {
         console.log("no tab_top_trader_click");
         return;
     }
-    console.log("  tab_top_trader_click click="   );
+    console.log("  tab_top_trader_click click=");
     await tab_top_trader_click.click();
     await sleep(7000);
 
     let div_has_tran_table;
-   
+
     let _thead;
 
     // chakra-tabs__tablist css-1p75jc5
@@ -609,7 +612,7 @@ async function clickButton_get_holders() {
 
     div_has_tran_table = document.querySelector("div.chakra-tabs__tab-panels.css-2zi8qu");
     _thead = div_has_tran_table.querySelector("div.css-1o2kb31 thead.g-table-thead");
-    
+
     let arr_th = _thead.querySelectorAll("th");
     let tab_click_USD_holder = arr_th[1].querySelector("div.css-1szs8yo");
     if (tab_click_USD_holder.innerText.includes("USD")) {

+ 1 - 1
src/code/tempCodeRunnerFile.py

@@ -1 +1 @@
-r
+0

+ 101 - 0
src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump_holder_gmgn_sol.csv

@@ -0,0 +1,101 @@
+Maker,SOL,Owned_per,Owned_amount,Buy_counts,Sell_counts,ATA
+5Q544fKrFoe6tsEbD7S8EmxGTJYAKtTVhAW5Q5pge4j1,6.16,13.21,132.1,0,0,D2VxygEjHuV4U7gCAkqPY9WYy4jZCmib1x2NwDpKMojW
+HdxkiXqeN6qpK2YbG51W23QSWj3Yygc1eEk2zwmKJExp,106.9,2.94,29.4,2,0,FUbtqZVQSkg4PPPvRr5R2pk2CW2WF4NEvx2y8Uq1XZDR
+A4nTzSw1oZKK846zGv8diWw6dGXqnGPJwbxyJ85WM4Sg,16149.999999999998,2.33,23.3,0,0,DMYb5VWk2M7KNK7v3Y5juPojXCHacm1LnZyzZHuEv3tc
+5m2rFD49qe6QoYih89mA5vgAs3br3qqXUtff5LRNxzsC,12.06,2.21,22.4,13,2,HaLgb2q9atoAr3Tyi2ejoftaBCF3XwGWsKXhVYj4UWTU
+FyNrn5ELHtimjCscVqRK11Q59VaH3knzahtcaPpcmSro,307.43,2.02,20.2,8,0,FXuKpwa31eopae1yKKHiH9DKsuFDpK582QdnZU67Jimi
+H2SfwK7QXCh7gsSg92VC37zyjfUWKaR87u2cs8wooBwu,0.497,1.83,18.3,1,0,6CpEMFsuvaQ3mB63igMLpiV7g7qmLvs5d2Y2vmQHezKw
+Fkrbt2h2xS9H75GQfepygf3vv9NctH1ccX3eaw3Wnbe5,169.7,1.77,27.7,9,8,Fw4AjEZ5HLCsmYSSDw77cbriXuCSejgQFr2GCq41Mjvm
+CqJ6aXvxp1fzR9xAVekLixTkq2Ez6pfGuz3yvWHAHu5Q,90.03,1.75,17.5,0,0,EwPaQUJzb1p3gquSKWtQgJpVNNo4V9mmELeznB1meFVk
+6u7AwDsnuvrpmkZGvTdcvnYBuCKM8meMXpkQfbfj1fbK,0.072,1.73,17.3,2,0,5TgFLAtRMnQkVjWpXv2kUEvifoN1HTMpS4GdKEnpG5vs
+HKGTPdGJmqS6WMvPctaKVN9aiTS4qDuABmh6fyAEkw2p,592,1.63,16.3,2,0,D2zhcjeg7EwHLbScYnWRPjKBtSugJy1hv2vziDagNZxH
+Ey8cvo7sUCt3y3znt9pmfeSfw5g11Za4RtiovTVpQ6KY,6.8,1.61,16.1,9,10,6cbpyWQzKZJpCekLFzWW8xHiY2VWxHjfG63UwhMohgRp
+Efqoo7tUd9bhrA8kEZ6YhtBbo2mhr6VLAKzQEsBTyUsk,22.44,1.57,25.7,5,0,9gYYghEbuqiUZPxWqsr6Tsod7vscmXBWYN5EykGAyrbR
+ExaMSEdwKheZULXQYNeaacCMqm8FMzBLTPZgvhheXM3m,0.098,1.52,15.2,1,0,CzVbC3DqLtREhZj2f81BQwAKeUFcgngUq2J554iEWvje
+EeS7DBots7zF7JA4iCPun1uA779aXCPCBhe4kGkuCuRA,0.008,1.5,15,0,0,9dnKxvrUrYrE1dbKcVm9zPUQjggXZDHnst4oz1iCEnSM
+AVz2AfmqYRYfUorw9zMijxLdxFFRy2i6nTGR94i9jqWc,438.35,1.43,14.3,1,0,AWWZd9bvuL1QtWqEL5fX35iSNEG7rDFCCt7baoTZcy2T
+5d2PUxoqCcRSThzgtHx8gEH3zeqZsWbAEpzaM5zmGFF5,172.75,1.39,13.9,4,7,GEkDzH8MmHt1dmHaS8wzKvQ3xEExTc9tAnwMUMoAfS6g
+88ux1j5Dmv9QrtBLxCVie5marpNv6iuocHjeUQs297ki,15.13,1.35,13.5,3,5,CtarUiJbF6GQRZBDqjGRWAASSRZLxWvQQDyD9WRXZPLY
+H5u2d7zDbkp9GKkyHXTJ1TBZvExwpQDTZqwNwewinner,194.06,1.31,13.1,5,0,HLu44e2t5J4iUWU96oncu5MqbKS5jY2yrjindZSocZaQ
+4XUt1qCfA11eSakcibiiiqSUK1NjH4gRNca3btYt1k3g,10.67,1.28,12.8,4,1,BWTCMxgmhLJ4oP4Vqx81F2sjx7feqGcnuppComCZ3oPa
+9LB364wgGh3Mc57Mvg9Vi2gzLFjc7sJBUkRgQ5sBfaej,3.89,1.24,12.4,27,12,DWEejRJYA5f4d2ySG8LMsHNPiCv9f9uGhnbEB1dydmVo
+8U19wrtzN6BkBhxbM2YtUgCcXrDdyzdjwLNE9RfLfsJb,33.86,1.17,11.7,1,0,49edVS9FhVUNFW2sbH5G4zVH9GzZcxNGC6EcvBdD5zgD
+FXKGnvhZxP27fyVMaSReXX5rkUHykR7Bhyt561gZq9EL,3.25,1.13,11.3,2,0,CWWumwni79rVRQjt8FFa2FgpRhxJLnFuZ5ad4RxixzzU
+S2AUw9VFw9mmfM5esPtYzu7E3tGoJytraBcPDu8kWct,0.212,1.06,10.7,13,1,D6vknN45hW4MerYfUA1aQKx4iZD6mPgYceCmsVh78xND
+DXwuuYFZiemZ3D63644ApaUUDxJ2CeVqLM1ijm5hSV5E,2.96,1.03,10.3,4,1,2hJJF7VKE9wsWiihPq7zfE3yNox451HNFDvgN4MuakB8
+mdGEc48jqm3quK74G7Fpz1GhPbHQXDidVcHugfSR7CC,18.49,1,10,9,7,DVTGyhc95ccdYKgo6Bzo4vMvRHYVXV9cgRZgLZGXFDEa
+ELeMLdqSaFF31SappKg4wrqBKmknguJrtAXRT8xbpWaP,0,1,10,0,0,HSCn7TMgmkT5mNCVP7CN7owp9xRH2gZY6eRKnCg9QDYA
+HeTCtaEyC4cNTaKsA5PM5QoveLiUemiEU6T9HW2tdbQp,94.81,1,10,1,0,ERM5QPQ7eEtnrUuLDXN9pzu3P5QqiYdEmvF6KH7oEdVR
+3v1qHVQt5p7fNNjnsJG12pGAMig5nUwmWx5p6ujAvJV9,100.1,1,10,0,0,2pXFJeCV4pnNyMRp54PySsyZzhfVnVAiUKynp17A9FAG
+DNfuF1L62WWyW3pNakVkyGGFzVVhj4Yr52jSmdTyeBHm,606.66,0.96,9.6,1,0,8ReDtqWQcjBtfS2GWTm8ztdWXT45LX3bRZ9TfJkUS9eZ
+98sGw1C2HNYvJTKvKfy7cDemgP8Xr3sKbesfwRmz2SRM,0.412,0.91,9.3,10,2,EqcZbUqxJ3U67Y4NHGHfXJxSJmsAQcuWqhogS9XuSL4k
+HoBf48qerqV2etkg1igKRVpHSR4mh6rkCs1BYpg6i1JP,90.89,0.89,8.9,2,0,6WzmLZXtc1hUN5iHnwUeZDkRyL5SNXXHEfGQxBZZAJEd
+A4F2VNmARbWJbWpNzCaaNvBTBvcmbxSpbuYVxoh1PKzG,90.06,0.84,8.4,1,0,CH9rxv2FoW3XqRW4QRAg5xKPGR9cztn8swGTYn8rjpvC
+9gpss8bMuEA5jfunfL3eCDJNZ5fpc3vY2phWFKpr1YwR,31.18,0.83,13.3,2,8,CwozM9Ew3ae7KvDdKHaqp3FyenC2GPRVF8pYti2NZB7P
+BxLrFCW9i6PesGYhX2pmDYxLy9bjWomtbu54dV7JvU77,7.63,0.82,13.2,9,2,3XvWP8jRg95EsHnTMTwxrx5kxBB5wrRXJPogGvcvD2Zd
+HXkaN7TAQYXsybY1UHLrn18cVa9jgM3mbReasbAoSjTv,8.29,0.81,8.1,5,1,G6yK91zhPvcJXKVgtHGYbNsj1JxkDfjNJF71WF4jjViK
+9m6TaKhba5PpogJNwLVLaiC5kGt6euNvyq3mf1ZQ8CSR,31.16,0.81,8.1,2,0,F1MDpDddUtQDTbTQNh4zYNDspieA7MdKpFJKQRF5wesV
+3PDgR3Ti6DJ4FRUxt9BGHvdxKjFdNMfkPm1duPaH6wH3,9.23,0.8,8,2,0,8JaJTRG3SVvbZ9VimyLynWEw6vACGYgwwZFegWoK5Vxk
+EkoZiPdDYiJTub4PhCZusWDujqgRSri1Euno7wp1MtyQ,11.83,0.79,17.9,6,2,DdXTtKGzFJ5Yekky7Nfo1qHEU9W8KvC12kHKTc5ciaMQ
+7gvXCVYzxNeTmq7yD4MGykQxxC9rLUAY49Rq9yJgf3SD,5.3,0.77,7.7,1,0,4ixk57TnNL5gvoCSmajHWdD1zpu3m3aeBsdvLpYdsCT4
+6F46dF6X3rAaXVVGJf9nc3Paikkx9X8WXKwuPGAjSpRN,36.71,0.76,7.6,1,0,ADA4URX9cgeCt23g33Er4Hp4xbWDHgGWHS8WuduchhdG
+Axp6aCsBKtj32sYr3RtYdSNBeRAbThCYDWAY6xpRVDo1,1.19,0.75,7.5,0,0,Mx6x3pa9Ht8Sx31F8Nf1Rt4Y8ebwtaJvoBcJkus72ug
+GWnbTAYZf7iHqFLQpTzL2acUfLFoU7G41TWw589NCg3C,0.029,0.74,7.6,14,5,4FP4Esr7anNDPqeeUkmhh5gpckRAicXY8F3VrUHvgKRj
+AasoHP85u95AygsQcUb4xF4eHzbwL8dCWMi2b6yoUSFu,74.01,0.72,7.2,4,2,3tgsnNzGc8Av2W7j9dGu9r4NWHb1dMB8NHw6YwkJ7AQc
+B4oZHmu8SGksWRQiMqxZjCmWregcXrNxHAQTbzNVNuv5,845.38,0.7,7,2,0,6kn83GC2s7NDK9C4AyjBttRkpKftiBiUzK7iMJWo9wYv
+3ZGh5qts9nSrsdTzzdi94P89veU7ArMDMqPC8db5CqGD,0.011,0.67,6.7,2,0,Drd7DfcS83NtmhuhSjjQFxLDymgpNh1UcVEPtwgCAgEe
+CPydqKcEEeKTR6wt3L15G8S5Ea4bxjS2vvjiW9vw1UwK,158.88,0.66,6.6,1,0,DYfoQQPcG1CGPZ7qBqTC1Vwk3QJgFho94hCsqDzz6Zi5
+5e7hxp63ieEguxTuN6xB2JJ88a42LHKEZ38XBcwrRPpt,0.064,0.64,6.4,2,0,3f3Do3BirivaWUX6dTd6kWBn7cjzTwUkSztNAnk9vTbc
+ApiVv77KJiSvpdm253EMqLpJdpC5VyQLvFjdYdQakVq1,0.694,0.64,6.4,4,0,CHm6WANGZJnoaMwQRKBxwFiXoRWsXsyAj3jKWLfvke4g
+BW9AxkLZkiBFnK5VHwxARkyJPuPTGveGzCEouD1ZQ6de,507.02,0.59,5.9,2,0,5NpMhnLWq41V34c8KVKkNRuHrEYvBnC1Xg8LZQPKYjpe
+CiRAHUqZCCexsEHZgmx6BzghnVcMhDByzckE1ToZAJF4,330.63,0.56,5.6,3,0,bHiYTet1m3FMGUw5egnHMAq2g35bJRNEhoaai7rqgff
+C73Yv9iHmTaf8SU2XFnGLt7QXUDqbeWNtUYza9WJhkae,17.75,0.54,5.4,2,0,8wn4xsTTRiZsXsCZ91T8KJZLaTs7JqgEJ25xUngKCFqJ
+AsPFcrsYRxrM5kPGKnrKrh8im62nEKJJaBNAKbrmFTsw,82.75,0.54,5.4,1,0,AbVyX5gTknzWx1Jcc4hkAr5sxR8QmLBxwgpzLqicUeRp
+BYs1Z15Hh2AdnqEEgRroKEUNmb2uC91Epk1RhuBhQQvp,441.49,0.52,5.2,4,4,3UNdWg55ZZuC3k3sUjQPdk5dpV1U1MRsTgiiiwX1NEEQ
+G3sYe2eKf1mWnkq7vDYNVvvzNGY4YG91d7ngNjkaP35u,0.02,0.52,5.2,2,2,8z3BGyS21idhxJZsi81rRnb4WxQLxoai8BBx9o6Zff6D
+BmYhgZr2n94bdgiAAMdTmSotCZThFjSsWcR4YpDrLAbL,2,0.51,5.1,9,11,FmE8VKRu3R1oCMDGhwYu1GFmWZShhfhtp2bdUPrZ44B3
+G1NRqmzEpXQichXzf6EQN33biWLZJMEYD2nd7H75rA9c,7.05,0.5,5,2,1,8t5Dc2nigei7Hj8R7Z1utDb1zB76PhUv6qQ7WT5iVDHn
+D9vd23oVuxkAaAnFgdjXwvGKV3cSxTKthWRGYhKNNhC9,1,0.5,5,1,0,CohZk9Ew6Tfztzv3BBdun3ST8LKfMsqagA1PHZ2CPX3o
+7h4MRS8ESTq79Zb8mnk89c7mvb9Ds8YSYsXazzMLxYEj,30.93,0.49,4.9,1,0,CqyjGDPhURw9FhwswWPss3wybVTGNrDwyQmnm9b8jfKS
+4jK8T5BnkNWEZWHukJ4e3NSDVDa7MmAMr9Vw6xp6PJer,2.67,0.47,4.7,2,0,J5cA98PmDVquBeNt5zKjeXMJ8MjNyfSXx8wZ2CtP4nFC
+5FZ6h28UnFkZ43PRFvMcwSE9kcdT4YNmcxvqdpHe6MuW,2.93,0.45,4.5,12,4,CjN55BDp9z8um3of4THmHXTcuPZTKGMDZ9sVrtEngoGN
+5ZzVj8FSusRQJtvVyQJxbsgiCRUqC7BzLY1WbNQU7eZ7,40.87,0.44,4.5,1,0,68b3jU3yZi9rAZ4DjgiEjhoqxkms6gERXPQvDAayiQQf
+9FmeS15VAZjtpY8VSvt2ThfLUFEzQYoGBD1ErHPYNsY4,38.81,0.42,4.2,1,0,5LD1Qm6JskhJKZNsgH3FcFqMvGjTeJ6RWmXgkPywtdyd
+BcPiq5Hb85o82Ur947NwmpNxsXxSgJiPWmseA7DGetmY,0.065,0.41,4.1,2,0,HMEcqCrGKVq7Bc6k9EqAyttZ5RYwo5ZNAjFncQuAfYzk
+DPM88u5nzCC532cCDsQPfkXYcdCNEauVFj9TEdaHvTSu,21.4,0.41,4.1,1,0,569MzyaF2SSEZ7w7sepM8LexvHs7LEkwUuFvbnX7a9Mo
+95Prc5fdD2nxo35nNdxLxiEENwEfegHRAi6aGjWNaUvb,30.89,0.38,3.8,4,3,HroML58JTAosWFZfEz3q88iDicw7orNGK28d6G7ib8sb
+9zckZP4aqjo8kqLJu2uaig8pZ7yDNmfTBKmjc86F4wfq,33.29,0.37,3.7,5,0,5Y8GMB4jnS813JnEtnT4gm1qgRzxnWywGFQ63FLWK72G
+7jVioPMErQMbCmbM1Hx8cXzecoc1jH9ZyvAJLKPTs9M6,3.18,0.36,3.6,11,3,aQttmqxqSJFVbFuUpsKi4rQnftmP5PGy7hiA9m85yYH
+217eqTqtPzHUm4gwW7Yj26dCdb6VPJ3ATPXD7sQvtitT,104.62,0.35,3.5,2,1,2qTVvNKABrAdfwGv2WwBgjTrbr8AbGVW8U3jeLWQ7vEn
+7tnMMzrNozoZNPUAEwZLETrrj9RdUwRncaV91PgdfKVU,0.105,0.35,3.5,7,3,ChKnYwMtJvUGixqwsaGedzwfmFUx1Z7CPkNhFUEqnkee
+5iDcom1jh9sMdgL3paauapRUyd2VS7C8AJCcXSD2DjFP,325.41,0.34,3.4,1,1,8LP1ugPjNFcaXRLkqT47JwWR3k4cHa7qhdFE5jjPvGWq
+7KQB8UiFYDhVuAsKDj7sLi5KjnzaLFcTkoFwkcX8jYp9,232.32,0.34,3.4,1,0,6XKw3u1X9RkHo2yDEpQm52miKWc53mGk1Ent4wEXExhn
+9E2wr5isM3TboqyLWs1ALMWDX6KRstTN9SbCppeDwcXB,0.33,0.32,3.2,0,0,GqjJNGTKjs2MgCS6NF1pafdijWzp12QLRyKGFqJtFKcq
+J8JFN9q8S2y74FkTXQbjJeAZ92kSkNHhW94KvsVK5n8N,1796.19,0.32,3.2,4,1,E6C6Z4myhGsmTeA3CFgWQbQwaEni3yoQryJcHUjka44d
+C4Gn4Y4TZxLNaRLR3sgqzHirJs3JxXpxwSuHoKiYtWM3,0.07,0.32,3.2,8,3,12LJJvYXxYRnnTwYWrTfn93PQh3C7JB3UgebA6fmX97b
+74pPtG3nzEabkg6EQvB9jMwowPcCs6jEGsCrk7thxLe7,0.017,0.32,13.2,1,0,FtiZsKUir4W24a3PGduydSeHGhVJ52uqwhoBSWPdQ4cJ
+5rqML55D4aL2J1c4ufDd27USty4Qd8qfor8yNoL8AyxJ,25.31,0.31,3.1,2,0,-1
+CoXccZ3RqJGHQspgei4NdMCW2No1EtTCgevy9CYwaNey,6.52,0.3,3,2,2,7iSEEijWf1sXjTLPHQ76jC5a7vZG5G4kaXQ97nA2xgTT
+G8fbPgDPieQZGLuMPhNYX8iR5XLN1H1WU6TRwPBYTfoP,0.051,0.3,3,0,0,GdM3yTrsp5gnsTJkgd7UQiJTgRCpr3AnPBN34zpGhiZ9
+7PXAh12kVHji6FRdtpnZprZog9zC5aboVZRt5UnP961n,9.05,0.3,3,5,2,3qXhNxPFJ8WEtyZsMaXXqGBZve3jtwg547FCQSjV4Jig
+BodPAcQsBE55C5jYn2UwpKK232YdLnhDaWYamshzvX5t,0.045,0.3,3,11,5,9z6SavwuUhRDaPmPKninBu1UZhsYFDBgzFWgP7ZTBFeo
+EnYgYT5Gd5kCkZQYcgXkjPNn2RFF1HmcNAsNxGxwEgBA,115.82,0.28,2.8,0,0,AzSLwysHJZUVrRLg3FaEV8vHheWJZacM3C2GSsE2DWj1
+9U2nDnZEHADzrJHzzBVU3eJQKmf1tQ3pWh7zCKKyj18s,10.77,0.28,2.8,29,8,2N8cuioaqTzsTnKvf7WuQibRMgzvNa7VxgauBcxJ8FsA
+Drzy3ykcKWtMpXxSwTNR4Azt49zsNhWMoscH47gr74i9,0.274,0.26,2.6,1,0,31eXQ6wvoNtjAfaVkDeLMJxhdXWSLQvSqG2Te1Bbb2AZ
+DeiRGwrTiPt76TQerYTvPCddQ9xJ2tgLDRLaFPGwDHbh,23.6,0.26,2.6,9,2,BksHDyUV3EQMPhyqAdBbABYYQYZQu1JpKzrh14RimAhw
+2USP1tGqGKXizhSJ1JQMia4u9VmkCswpZmQiGRyeA5Lz,10.01,0.26,2.6,4,1,8VfEjnUdRg5mr4cwqFKzQRiR1JyPrShZ2LLcTP8RwfgG
+2cMTx28rcNVTmSJvzvZLEWaNg1SKsKyL3Yz6tpkJc9mn,1.4,0.25,2.5,2,0,EdJEfbPFihU4Mv7MMwsokrgoRnaEwfSBHpA7jQ3kR7CC
+5hr33H3tkY2AhB4osHxW7motENWSPxcUgW5KKza8Vgzq,148.26,0.25,2.5,1,0,Wmva6aYyEpKLjTicyJEqkD6HRc6eurb2Q8BTsSJGhL5
+57qQksGSZbEYqGEiFedBDsmuGbBdVXRuAEUj64gZGuo8,0.081,0.24,2.4,1,0,H2NmHa7Yc5mGu3uqAoPq6iRFPr8Asukuk3sc4iAeCTyZ
+GUEPCSjcDLG16bE1gbrhEyhLaDcXdV4WPvKterwFp7T9,0,0.24,2.4,0,0,4VPv9M9FC3wHqgTat9nTNohXQWPtuBNfgEpf3rtopFV8
+1NB7g5Ysgn91aHKiWqhKJzSqygqEkyKiu1eWVKVeP9Z,17.56,0.23,2.3,1,0,8XGPr6q6mGVVfumCiiaTa2NiJcr7onLag8NAWpDnxwnr
+CrEuKwQZmvpghR2deAYNjykDbz65YeE79fra4LfaDWM2,73.2,0.23,2.3,2,1,27TVMEV5MTS9BUQcbLoad6mTkEf6v4Bj3V8cJ8hDCWS2
+CRDX6YExFfMsmzeGQUBBssEDrrTDeGWMVnZt9GqvbSi9,0.067,0.22,2.2,1,0,CcDiEMijfSSu7tvu1opwax5DDot1MLd4pDK7YymPZi1Y
+Fk9gqZHciE4HKonoeVuF5AHgU8WJZPuuvm1HehSxmRJQ,9.14,0.22,2.2,1,1,9MQw2AX8ob8FpeX3FA81ZJXZ9wu582Arg6xXGJhHVPVH
+9qM7zMGMWAUEb1NpT2moEhCJpSENs6gJpudoQ1zhXvVT,0.008,0.21,2.1,1,0,GtVJnCN66pbEf3cKY6v44HLQpQxHeigpHAuUcmsQ9QKz
+9mNbGs8CVUBWGXeWVVLQBXeimz5wA8KbgekSMcFSMUhj,114.11,0.21,2.1,1,0,HPeRWMthrmbEdWzhrcWZgqUqiUJykEAPScmqXeAFSeVb
+39TVtzhDtYimoJkUJkPhzKt24bNxoxxQihrtXp5ZejeV,0.018,0.21,2.1,6,7,Ao32UMXmq8bBqSN1pnCGJ3T29MmMYaXwwH1MvinJrDFY
+xBS2n5sZqB6PAPAEhXsyYQPwFphBruCZ2vq2XYtsDqh,19.61,0.2,2,1,0,4gKdzc6icR1DfJJmeJM1SRNuF53ygnzuJbrUafgykZ4g
+41Dkni5dyHranPKq8p9fTwQ7hy8dPPnR9iwMBmyM5sDj,1.48,0.2,3.3,10,10,BkDrszxtbp1XC6ihPE39L76CMn8GHFX3PNUGskCTwzCZ
+BVTAdXYxDNxsSxouuNMgatMaiVhTTFzahckyraYrVMGX,4.37,0.2,2,3,2,9uo3dEYWbwZvQe6HuiAYpMs29i8rvjgyDoJ75TUhCFxw
+9QDsaiFyERMh2Ge15NwagSrvw9beV1UgBgCyXyMnDAR8,2.16,0.18,1.3,1,1,24U1MZX99o879hNC96aYY348qZ376poN6XXKNvab9RjZ

BIN
src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump_holder_gmgn_sol.xlsx


+ 100 - 0
src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump_top_gmgn_sol.csv

@@ -0,0 +1,100 @@
+Maker,SOL,Buy_sol,Sell_sol,Pnl_sol,Pnl_per,ATA
+Hg8cQChQzy6VmnyNwLB5KstFx39TNfvRYL4RYfyjVcba,0.27,212.68,275.15,62.47,29.37,9EwZGRJGovNesifQnM4gbH4BWzzAWAb6wWcEAGfWjZWP
+4LQuLeQYrAsqHtsJ3s15dT8A4Jpbr6iEKnK2DJAL7ZNo,76.29,0.911,46.7,45.8,5080.11,-1
+9LB364wgGh3Mc57Mvg9Vi2gzLFjc7sJBUkRgQ5sBfaej,3.89,57.53,84.47,45.44,78.99,DWEejRJYA5f4d2ySG8LMsHNPiCv9f9uGhnbEB1dydmVo
+8yBgWwLK6JBKVVpqtAxnjcf75qRPNBiHH85wruwp6rin,14.15,7.83,46.14,38.31,488.97,8jYmx3XLfdGs9qHrZpiVDM9xtuXtM1jPZZSKzxe2HS9v
+2NmBRrkojJK6sEXaVzCw8vwsnCwvjxfJELEdL41YpE5k,63.67,10.06,45.49,35.43,352.12,9G3DEJHgknNtYEcoK5EcsKHqGzbU75xJQA5V4wA6e7iP
+3gAJAMY5fRD4QymyHPik9db5FpRADBV1cJ7uzfpiVyDk,48.21,6.44,34.59,28.15,436.88,ABN3uTS4jrRzqNYuHccRaZMLe58AmzJ74magKFFknxeA
+6iXMRCCBuXDNP2sEKERdqYwJn8BzLjH55NCu2RcsYg2Z,28.67,1.45,27.41,25.97,1794.34,4U2gYZqowZzDMtrpxDvTGppRbmc3ANWVZS2Vq5cZCfYr
+AFcXNrFiQehbJxFePzabUBKeyvF2kVhKjkYXiS5EtcoK,0,5.27,30.66,25.39,481.36,EKuAgoQ11SPz4Cu1muiCyiLx13XBKHCxsUNZNYRN5yCE
+5d2PUxoqCcRSThzgtHx8gEH3zeqZsWbAEpzaM5zmGFF5,172.75,8.74,28.23,40.17,459.87,GEkDzH8MmHt1dmHaS8wzKvQ3xEExTc9tAnwMUMoAfS6g
+2GjViMLQBVX2F7F1xGwuxYUkYtPnJ4qusjxhX95DG7xQ,24.2,25.65,46.2,20.55,80.1,-1
+Fkrbt2h2xS9H75GQfepygf3vv9NctH1ccX3eaw3Wnbe5,169,25.31,30.58,36.68,181.31,Fw4AjEZ5HLCsmYSSDw77cbriXuCSejgQFr2GCq41Mjvm
+3GH5GyVqRRdJZggekBrPLssHbW3Qg9Y1Dgsz8KG1hs1S,0.019,9.38,27.35,17.97,191.69,FhDBU3VNsMnYDp1yLqwfYUaPDEEE9GNGZzceXovtotn7
+367CqCGUSBhrpfhBoXxCKjbXBNP5aMFoyVHd1vQ5eHc8,46.35,5.54,22.52,16.98,306.81,-1
+HZKNi5RtCM16monmyFPjkSpJNFCKV7mjn3zeL2m7h4c9,46.19,7.24,24.2,16.96,234.15,4MiVHvLV6zamDmRzdimSCCq4F48bji4LSV5DdARSyK7q
+9R4gSQNZPbEiJMKm12fVAh7pVKPBXjbiojHxHeUSe14b,0.003,9.52,25.47,16.05,170.38,7pWHSUfJEkxAoVQGJXf16Fv3xPCf8nGF1G36R2JU4fcW
+2oLAt5nHoM8jrfFqqDvYcehXgn9oPkySCJsA1TALRWAN,105.07,31.68,47.66,15.98,50.45,F7LAJ5mFwiMU5NfvSSQCLFtsiedGnNyDDWnbwPWs8qB4
+Bt65TtMCey7GARig16qp7LmxzYHwWyBitKJBswPeFsXE,0.005,25.85,40.94,15.09,58.39,5i7S3nMnj9HhYFkW6UqzDKij7uwVfTiPCd7kDNc1bv6Q
+5N3mvHw9ZiZ78vQFcMrZ4dT9tQ98SSsE5dJQeqciV7Km,13.86,1.29,15.42,14.13,1098.58,4fikyNM3wcysRGrGXkXjXDnCowDiNJYjCPtDnfydYTyd
+DugBdsvaN7PsEPK5xefi9g84RgC7PLsPY42Rt1UJvqjy,6.39,9.22,23.14,13.92,150.93,D7T1KHYDtpRXQgDpH7EyYdg9r6Ye8DQ2Std9As2uBnia
+9gpss8bMuEA5jfunfL3eCDJNZ5fpc3vY2phWFKpr1YwR,31.18,6.84,15.89,23.24,462.46,CwozM9Ew3ae7KvDdKHaqp3FyenC2GPRVF8pYti2NZB7P
+7HnVshGcvUeMfZrnxJJbmWrJRXJfAMJU5jhQizS2sZbP,0.13,2.05,15.52,13.47,656.79,Fxc1xzLBLBAdUqt8Wvdwt2JexLxoVdsw6oSVTCKXNkgy
+DZQ7yP5jZ2K5G9PhXKgjqWr9a7Ne2yd8tna6cXHQqXn3,87.51,6.37,18.7,12.32,193.39,6gGyRBw4mhESZdYCy4B429etJJmyds3fr58jnC9yTgLQ
+9kTx1no1d1C81N8zFT6ck4S5zvKsgpbbLEUf5KZJeC32,0.007,14.62,26.84,12.23,83.65,7E4C9iKo3oZdk3foReT2Sd8N5vfG5ASmyUYP6k4Ex324
+5ci8DDNfyBhcrV7aqbNRRwQRNSGeZMrtt5xvj79TQMqw,0.804,19.15,30.28,11.12,58.07,FtCbXKVm6UK1PoFhHJ61u5E9BmBjv1meL5wkurehUYUU
+58YHxodnzZKxVBE5EsATs38ywEFV7M8ijjBoBkYAJY8J,53.25,9.12,20.02,10.9,119.51,7uS3p6s3RWjbNmMS4Ghd84VPJfgpfryWnxp1FbUwLMsn
+3tApYF7oDnXuu5oDrjXrYQHF2jo4ED4MRx4RjNxdEnKD,75.54,3.64,14.27,10.64,292.6,-1
+3Vsx9RN9jvnKwdMkHxn6Z2cehtffgghk4Kd4MStHT1P6,37.36,2.25,12.88,10.63,472.6,-1
+hCBW9EqREix4VXWj2xBpwEpSVMFx2tfVG78zFYbVQBT,0.001,10.5,17.75,10.42,142.31,-1
+3vjvHYUVdaTDwaDxJJPM5d2ki3tLwKobMdPAMWmfDrE5,0.009,3.73,14.09,10.37,278.18,-1
+5HKmPLjiFy7RqfWKCrrSGPvoXQnXfnBahRya8c13FgHd,0,12.78,22.94,10.16,79.51,DgVQvmErPdCpgfqZ2cB9TV2hWza2n6QX4nHSQHrVMCNu
+9U2nDnZEHADzrJHzzBVU3eJQKmf1tQ3pWh7zCKKyj18s,10.77,21.33,27.13,9.94,46.62,2N8cuioaqTzsTnKvf7WuQibRMgzvNa7VxgauBcxJ8FsA
+mdGEc48jqm3quK74G7Fpz1GhPbHQXDidVcHugfSR7CC,18.49,23.43,26.81,18.29,78.04,DVTGyhc95ccdYKgo6Bzo4vMvRHYVXV9cgRZgLZGXFDEa
+DS7wjwsSqDJStxpfUb8qJLf57NvHvGPQ4z2XNVBVGa4m,1.1,15.36,25.09,9.74,63.41,7TfoQe3f89EAqETCBBX7HJdYWmS3dNtQoSgtETPpnHgT
+5E7G5aiJcsNa6euqxEXgZdwGM3fu9sAVpqY8S5Hz2ETY,0.043,25.34,34.58,9.43,37.49,BTXyc6AzjJ79YCnbzgatwjKQXdyNsM8yidKBB4XQZojb
+5KepH8US17rotNGJfZFpPRZShERGJnKwDieVxgeEH6vr,2.36,9.68,19.06,9.38,96.85,Ck6bxdY3gDLL9jf7gGkHcokQVkYoTD9DmWbGs2FzXCLA
+88ux1j5Dmv9QrtBLxCVie5marpNv6iuocHjeUQs297ki,15.13,6.46,11.21,24.86,384.7,CtarUiJbF6GQRZBDqjGRWAASSRZLxWvQQDyD9WRXZPLY
+HDuHPwfsFPzoBqZJjQQFQWMcNvHzEgApAn9jutju1QMM,3.26,34.17,43.44,9.28,27.15,-1
+9p4LXuXDsY6Ec168bdLM8vL5PwYrfpNcoHYg3cifz97F,34.63,4.58,13.8,9.22,201.5,48Y2S8VEdwe12wq6NrnnoTSPcPpv1sur3Li77dXnbUux
+41x6KhvrSbmf1285YUqHvQpc9BtYNek5A4xJ3sdbg4yL,0.976,3.18,12.3,9.12,286.74,Cv81k8PtD3Nvpp4Qq1TCTUs883NJzbBnVm4sr784xiS4
+HXVy4JtRaupTwp7UdTXikC3cMPksNPjit87NGU3mRXWE,35.69,5.1,14.12,9.02,176.64,7xGVLVNv6xRP6WXjBLsFvMsfpcf17Kbc1ABVQjuKj5eu
+8D4bknJuKUH1LgxAXLAJ9ZcQz2Grfd2uyF37QpmQgyWc,0.015,20.77,29.67,8.9,42.86,8FYQg53FyevKN4v1xT5zNrif2bQDoAYHVsmontH6swYs
+2TvYDht6fQ9WencbkdHo5zisdWU6z4EDvvTjdVekmqSJ,92.77,12.66,21.56,8.9,70.31,-1
+FdvbifiUkac7sLw8KjcgMCC8UAE5MDSnq7CYwSmUy6DA,513.88,2.7,11.33,8.63,319.01,FfVe5UPLpXNhn11whhV1Ei6Q3pnQACz941C9JcTWNybC
+7Nu5R9WyvGCFTBRQZ839gpQMYkcPHrq634KAWnev4G9B,23.03,10.09,12.05,8.62,250.96,45k5oXG6sEM4599ARnn9NmRpLozhM3e9DN4Msuiwein9
+9zcddzV4MZR41c4CHMcyy7t8z8o8kTbGst3xi3rrbnkZ,86.57,18.96,27.36,8.4,44.32,Cspc4MCPWpawnUaubHGGXF3QrUcVSNLx6j1JHTDDPxoz
+G4q4MbmhHU1ixmYuqoKqgnkBx4kx3JFo3CpV3aVFeTZh,0.042,8.6,15.09,8.16,94.96,3K9QUwZFehu8zgFL3xbBjfTXhnagGhQbJXojyRDvfYTP
+BAgn8NWpFqkXHkGeztqJU69rq3f5ngzX97f793K1BKmG,0.028,2.77,11.11,8.34,301.41,JAiFV2fz5LN6Pgeu5dN1c1pmikt8TjqgNCUmEqCd6FfN
+Bfm6Q11iuFoaK8HnWTP14ZLwqBXMm35KSJtTb1PuErVX,0,3.63,11.84,8.21,225.81,gpHfpoKTK4HB2x6CXJMq7p2KrYS3EbX7xurs5J4mgD4
+F4epX4JL7N1cwwtazSvaCXatHu1cN5VurbiXocauf8oM,518.78,11,19.08,8.08,73.5,-1
+HqVxz1ve5YgFW3xyxrj6PyPgWm4cYutfnewJ3kUoYrNZ,66.66,2.75,10.62,7.87,286.88,TvfDU9m6Z269ujqDQW4jdzSUiFbyd81E8nZi8xehgk9
+GZenVCN4Dz9K7GjbgEgXyM7p9C2959CNDBnVfYbbrD12,0.008,0.395,8.27,7.87,1992.4,8tCLyEfLEbV7vMN57SmNjK1rkSiyC8BAAfdHamhMgqTR
+BHzdUWA2yZ3nDFhwbdXPtho4n1gZJLSFpbTd78B9inRe,0.068,5.03,9.31,7.77,506.99,J3wWUTag84JSzk65BwQ3QveW2VsUDjbB1jssX2bgH9Rc
+2yt4c1KDiWDzz62aj6jSjHVpzd1WzAYvuAjqDPqKLLFR,2,1.21,8.49,7.76,1053.42,-1
+41Dkni5dyHranPKq8p9fTwQ7hy8dPPnR9iwMBmyM5sDj,1.48,4.77,9.49,8.84,243.52,BkDrszxtbp1XC6ihPE39L76CMn8GHFX3PNUGskCTwzCZ
+9Yjr9BhdFthLzQMW4kY7j6rcDKXC3Wvj74p7bCsFVyyJ,10.12,18.76,26.3,7.54,40.18,-1
+3RQzC86faRYAgHjWx3jnfbt8PfwM6cLLD81d73LinwBi,1.42,2.27,9.79,7.52,331.02,8fPA3H52e8tFwdhQmmb5qZB8WVvKbBWBpQyUSTXi5EQo
+EYMogFcMChGBsKEcMBDpzUTWeBh8fNBjyDRYKchR2dm,0.365,6.84,14.05,7.2,105.2,5Rk9xPY1ztQPu9h9bs57z9ud4UaA2MU1mGz2g5s4HDMG
+CwTNqDtpCg9ZBD9Kfsh8iPjrzrWmywjNzYsYD1LY5Y9x,0.678,7.36,12.06,7.07,141.57,3hSQB9ZmfCCk7qySkoxKdqF9uhHzn5p37mFEHk6wEyt1
+HP4EoRz1dnggW6kudebDmapLzfsgE27K8WCn77yThis7,3.81,12.35,14.33,6.96,94.39,54s5YuBp4A6w48AU9L1fmX6ZGkfqD6ivwAnb7QqyGvAR
+5FZ6h28UnFkZ43PRFvMcwSE9kcdT4YNmcxvqdpHe6MuW,2.93,37.67,38.56,7.54,20.03,CjN55BDp9z8um3of4THmHXTcuPZTKGMDZ9sVrtEngoGN
+E3hscp88Hmp4tp8E6rXKdhxTWVCLKpHFQQSPuKNQxi3N,2.76,6.36,13.1,6.83,108.76,vrTr9AptB1QT3Ai7tygTsM5bRSPux6W9KRqETtsRiYh
+BmYhgZr2n94bdgiAAMdTmSotCZThFjSsWcR4YpDrLAbL,2,7.82,8.09,7.83,100.19,FmE8VKRu3R1oCMDGhwYu1GFmWZShhfhtp2bdUPrZ44B3
+AasoHP85u95AygsQcUb4xF4eHzbwL8dCWMi2b6yoUSFu,74.01,8.26,10.12,12.63,152.84,3tgsnNzGc8Av2W7j9dGu9r4NWHb1dMB8NHw6YwkJ7AQc
+FKEjNzn3JoV76WjGZTR5ZuKAWUVHXugcVHtfKMcijFNG,13.2,4.1,10.73,6.63,161.73,-1
+GZzhgCUt48iYEAjd8BrPmSh5HGbDpwSCFan9QqADX7Ld,0.037,5.68,9.81,6.4,187.88,2kxhtrTfpQumXwGvvcp5DX93WBhv2Jfp8rZWudHLU3MN
+CrHNNo7Eq7ELtNS7GAVb881go9MryF3UqkzsB7YgWDJZ,0,6.87,13.2,6.33,92.13,-1
+2Gj1xmqgxyFHuFxA6FHLcwYPHkqsdGf2H9bdtpYFxgzn,90.46,2.31,8.5,6.2,268.84,9kZUMkWZieWPLgVNcsWdpaVx3cZDDPZ4htAtSME3WKU6
+5eftcUwY3GHQ8gtJ7h4sfodfj1Lwo94bDGVmavKGyNMy,7.59,16.33,22.48,6.15,37.69,-1
+FQ74wBPenc3Cv4iShBQSSsUT6eKx2n95Pui9NQPxYczL,6.86,3.85,7.42,5.31,138.05,DNAjH199wAemovv7W2KN7re8pf7S35oWRiU8D1Lne9n9
+3ZfGsZtPW4z1VD9iD4tDrkocTGC2LjXMtZYHn3szTaf6,41.94,1.41,6.89,5.99,661.55,-1
+BNBx8JBvxrmM699C92bZQ7VKngdfcdudFcQrH7oLnFvw,30.54,1.35,7.31,5.96,440.98,DHK9s25Yf7MF1GKiJBDgmMbEWYkragy8kRoNnnXtAmu6
+CrEuKwQZmvpghR2deAYNjykDbz65YeE79fra4LfaDWM2,73.2,6.42,7.71,4.72,73.52,27TVMEV5MTS9BUQcbLoad6mTkEf6v4Bj3V8cJ8hDCWS2
+BXvEmdFHrSCDE1DYg47U1SgW6juGtSHfx32ijpM5oq23,9.62,15.69,21.53,5.84,37.25,FXegKa9qQwCp6bg2TG318Yc2d3GdPGZXfdUDKHeHJbyR
+Hd5Hpq6R4BKynKgUbnamY6hDteVcjS26UFXdidrWATvM,9.95,8.72,14.54,5.82,66.8,4CCkHjFKhxaQP3aFtbqfdeBSbLQb9psmATSfBmkdUi5e
+CSjHti7ML8zUuCY8WwLbMVJMJghT9vPeviuFE273zMwn,0,11.55,17.36,5.82,50.4,JDodoajJY5EkqvqeAHCKPBt6AcSEAt5UQRz5Z5qCdjTp
+HKzjWw8NcVKvDm2b5FWnuQHB32Tidsg3DVvDcAA3Nea1,73.07,18.28,24,5.75,31.47,FdiLXomBjDQAh7C8iZdWqTngiBo7TfM7Y9U8VAgAvKqN
+95GgGqZx9EjHrpcARw8k51KPKjJ9HsdQPq2j7HmPNoSn,0.379,5.58,10.28,6.14,110.06,7FQoGLTbkRCopG92z6gKzaA6xuhx2mfLtt3q4yH4Lkzw
+HXkaN7TAQYXsybY1UHLrn18cVa9jgM3mbReasbAoSjTv,8.29,5.24,6.91,13.77,263.04,G6yK91zhPvcJXKVgtHGYbNsj1JxkDfjNJF71WF4jjViK
+CQvgGA9MbyKrpdKW7PhjJDy8LeJY6tb4ACe9Yb5QVBx8,8.45,14.16,19.71,5.55,39.22,BkuQk9A4A2xRYy72ccsNFaASCC9J1L7CEALDM446Q5FN
+2dVcvshsWeRXAMoy7h2Ae1V5sNS6qcdLF5APMo9UZ6CR,190.65,9.25,14.8,5.55,59.99,EH4eEwycHLfeKwt8rpH4MKnL1e5n98TyAwA3MS3yHy79
+AgPsPtpAiQqMtcmSsGEGvje1dXTco3NGi1gAF7gvYC7L,0.114,5.47,11.01,5.55,101.47,9wEZ5e2UhpzpB4Qs4dgK2eHvaSHq2t86C1C1ictZkSta
+62GvRgevD9g93xoyV8SjFL5VKF2h7YhCvJWiLzfNm8uC,16.82,11.05,16.58,5.53,50.01,7RBdyvUTS5US9nUV9ByVC5HgwSB6LAPdrsaYnVAzj2XA
+FtPVqgoeatUKeSxAb5ipc8vfc46ueWf43nnuo5ghjkH2,14.46,5.02,10.5,5.49,109.38,-1
+4kBAKyY6wYgqHsWTUnanQCtqu8qCc5Ln2b4f4ubQqtbq,0.25,9.31,14.73,5.41,58.14,BXU1aMfUDAuGpvXNFY5rK6NXsfRTJRRxcCtqww1WCDne
+Ey8cvo7sUCt3y3znt9pmfeSfw5g11Za4RtiovTVpQ6KY,6.8,5.26,6.12,24.86,472.26,6cbpyWQzKZJpCekLFzWW8xHiY2VWxHjfG63UwhMohgRp
+7PXAh12kVHji6FRdtpnZprZog9zC5aboVZRt5UnP961n,9.05,3.22,6.66,7.91,245.62,3qXhNxPFJ8WEtyZsMaXXqGBZve3jtwg547FCQSjV4Jig
+BxLrFCW9i6PesGYhX2pmDYxLy9bjWomtbu54dV7JvU77,7.63,4.59,5.68,14.81,475.62,3XvWP8jRg95EsHnTMTwxrx5kxBB5wrRXJPogGvcvD2Zd
+71miLUAUhRmLtahde3e79XzG3yLQGDkw3vkJhRrr1WBq,3.13,2.56,7.16,5.13,200.11,5ThkW3kYP3midaMD7BDvCEcfJ1HRhTtSiUHKzv2G6XJj
+5m2rFD49qe6QoYih89mA5vgAs3br3qqXUtff5LRNxzsC,12.06,44.59,21.56,10.33,23.37,HaLgb2q9atoAr3Tyi2ejoftaBCF3XwGWsKXhVYj4UWTU
+BodPAcQsBE55C5jYn2UwpKK232YdLnhDaWYamshzvX5t,0.045,2.28,5.48,7.67,335.6,9z6SavwuUhRDaPmPKninBu1UZhsYFDBgzFWgP7ZTBFeo
+HYfW22UH9ZvbWghPRwq2Da6akEJdGFBhq7ibvGzuxgY4,2,3.18,5.15,4.37,137.34,ACKAeHnsjZ7Y6oTbhfX5M1m8F45Yi3SFUVndyaXGsrdS
+5iDcom1jh9sMdgL3paauapRUyd2VS7C8AJCcXSD2DjFP,325.41,4.76,4.66,5.03,105.75,8LP1ugPjNFcaXRLkqT47JwWR3k4cHa7qhdFE5jjPvGWq
+Fk9gqZHciE4HKonoeVuF5AHgU8WJZPuuvm1HehSxmRJQ,9.14,2.75,4.13,4.63,168.61,9MQw2AX8ob8FpeX3FA81ZJXZ9wu582Arg6xXGJhHVPVH
+95Prc5fdD2nxo35nNdxLxiEENwEfegHRAi6aGjWNaUvb,30.89,3.21,3.45,5.85,182.35,HroML58JTAosWFZfEz3q88iDicw7orNGK28d6G7ib8sb
+G1NRqmzEpXQichXzf6EQN33biWLZJMEYD2nd7H75rA9c,7.05,7.85,5.5,5.1,64.92,8t5Dc2nigei7Hj8R7Z1utDb1zB76PhUv6qQ7WT5iVDHn
+2Bz5V2rsLyzqy1xi4Zha4fRoQmCFRa33F3Xx9CTQdvJE,18.98,2.76,4.77,2.01,73.1,2cFKnqEtuSTs76oezNrKtnnG75nZiQgxsLfqq1S42KYw
+3iFMWYQgBUeqi4wFSF78KhyTqPxyM7kbxcM2LbWzDt5Z,153.61,1.85,0.994,1.54,83.65,EjBj9hN6DSLfuFrLYVRGxKAF83RDSzUJMm9PufZ4S3YD
+Efqoo7tUd9bhrA8kEZ6YhtBbo2mhr6VLAKzQEsBTyUsk,23.33,15.35,0,14.01,149.41,9gYYghEbuqiUZPxWqsr6Tsod7vscmXBWYN5EykGAyrbR
+HdxkiXqeN6qpK2YbG51W23QSWj3Yygc1eEk2zwmKJExp,106.9,39.5,0,4.3,10.88,FUbtqZVQSkg4PPPvRr5R2pk2CW2WF4NEvx2y8Uq1XZDR

BIN
src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump_top_gmgn_sol.xlsx


+ 0 - 0
src/library/分析token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/CzmXEA9CtZiU93DuZ57QLpoTmQ9djgZeSZEMz72aCL3W.docx → src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/CzmXEA9CtZiU93DuZ57QLpoTmQ9djgZeSZEMz72aCL3W.docx


+ 0 - 0
src/library/分析token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/J2ijoouRw5qgqiGkcKYVYBcB3RdxxiKJzr2PV3eCJFbr.docx → src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/J2ijoouRw5qgqiGkcKYVYBcB3RdxxiKJzr2PV3eCJFbr.docx


+ 0 - 0
src/library/分析token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/汇总.md → src/library/analysis_token/4GULMPKBJLruChBZWksZzukAg1AjSCmCTMn9ny2Xpump/汇总.md


BIN
src/librarydata/dalao_merge/un_onhand_dalao.xlsx