This commit is contained in:
MuHua-123
2025-03-13 14:47:35 +08:00
parent b21c662c1a
commit ee23be5819
34 changed files with 974 additions and 35 deletions
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bae5611456f58c64eaa6b106bc0b75cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,37 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MuHua;
/// <summary>
/// 数据采集
/// </summary>
public class AnalysisCollector : Module<AnalysisCollector> {
/// <summary> 接口 https://api.mairui.club/hszbl/fsjy/股票代码(如000001)/分时级别/licence证书 </summary>
public string API => "https://api.mairui.club/hszbl/fsjy/";
public void GetStock(string code, Action<List<DataAnalysis>> action, bool isCache = true) {
string json = SaveTool.LoadText(FileName.Create(code));
if (json != null && json != "" && isCache) { StockToAnalysis(json, action); return; }
//https://api.mairui.club/hszbl/fsjy/000001/60m/b997d4403688d5e66a
string url = $"{API}{code}/dn/2E111385-7BF1-473D-9210-8E22AA75375A";
Debug.Log($"{code}重新缓存了数据!");
DataRequestGet request = new DataRequestGet(url);
request.OnError = (json) => { Debug.Log(json); };
request.OnCallback = (json) => {
SaveTool.SaveText(FileName.Create(code), json);
StockToAnalysis(json, action);
};
AsyncWebRequest.Execute(request);
}
public void StockToAnalysis(string json, Action<List<DataAnalysis>> action = null) {
List<DataStock> stocks = JsonTool.FromJson<List<DataStock>>(json);
List<DataAnalysis> analyses = new List<DataAnalysis>();
for (int i = 0; i < stocks.Count; i++) { analyses.Add(stocks[i].To()); }
action?.Invoke(analyses);
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 06f3d6e55c2a1584ba20c9262c06704d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MuHua;
/// <summary>
/// 分析模块
/// </summary>
public class ModuleAnalysis : MonoBehaviour {
public List<DataAnalysis> analyses;
private void Start() {
AnalysisCollector.I.GetStock("601658", (analyses) => { this.analyses = analyses; });
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 690f28715cec9bc41a56277db51f79fc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,11 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 交易模块
/// </summary>
public abstract class ModuleTrading {
/// <summary> 执行交易 </summary>
public abstract void Execute();
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 11336b15ef40f45488427630359ab3ba
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6e9a7362d41d8614c910df28f693c782
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0ad7c1a3ba27b1144b06e3242a1a64fa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,14 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class DataAnalysis {
/// <summary> 日期 </summary>
public string dateTime;
/// <summary> 最高价(元) </summary>
public float max;
/// <summary> 最低价(元) </summary>
public float min;
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b4b97a8a3401e2a42903697e2b5acb2f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,42 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using UnityEngine;
[Serializable]
public class DataStock {
/// <summary> 日期 </summary>
public string d;
/// <summary> 开盘价(元) </summary>
public string o;
/// <summary> 最高价(元) </summary>
public string h;
/// <summary> 最低价(元) </summary>
public string l;
/// <summary> 收盘价(元) </summary>
public string c;
/// <summary> 成交量(手) </summary>
public string v;
/// <summary> 成交额(元) </summary>
public string e;
/// <summary> 振幅(% </summary>
public string zf;
/// <summary> 换手率(% </summary>
public string hs;
/// <summary> 涨跌幅(% </summary>
public string zd;
/// <summary> 涨跌额(元) </summary>
public string zde;
/// <summary> </summary>
public string ud;
public DataAnalysis To() {
DataAnalysis analysis = new DataAnalysis();
//analysis.dateTime = DateTime.ParseExact(d, "yyyy-MM-dd", CultureInfo.CurrentCulture);
analysis.dateTime = d;
analysis.max = float.Parse(h);
analysis.min = float.Parse(l);
return analysis;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 4965f5d3a8eb6ef4ca7837688badb4e6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: