init
This commit is contained in:
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
5
build-linux.bat
Normal file
5
build-linux.bat
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@echo off
|
||||||
|
set GOOS=linux
|
||||||
|
set GOARCH=amd64
|
||||||
|
set CGO_ENABLED=0
|
||||||
|
go build -o gold-linux
|
||||||
BIN
gold-linux
Normal file
BIN
gold-linux
Normal file
Binary file not shown.
4
main.go
4
main.go
@@ -888,11 +888,11 @@ func main() {
|
|||||||
http.FileServer(http.FS(root)).ServeHTTP(w, r)
|
http.FileServer(http.FS(root)).ServeHTTP(w, r)
|
||||||
})
|
})
|
||||||
|
|
||||||
println("Server started at http://localhost:8080")
|
println("Server started at http://localhost:8844")
|
||||||
println("API Endpoints:")
|
println("API Endpoints:")
|
||||||
println(" /api/fetch?ticker=GC=F&start=2010-01-01&end=2023-12-31&output=train.csv")
|
println(" /api/fetch?ticker=GC=F&start=2010-01-01&end=2023-12-31&output=train.csv")
|
||||||
println(" /api/backtest?file=train.csv")
|
println(" /api/backtest?file=train.csv")
|
||||||
println(" /api/signals?file=train.csv")
|
println(" /api/signals?file=train.csv")
|
||||||
println("Usage: Set ANTHROPIC_API_KEY environment variable")
|
println("Usage: Set ANTHROPIC_API_KEY environment variable")
|
||||||
http.ListenAndServe(":8080", nil)
|
http.ListenAndServe(":8844", nil)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -276,9 +276,9 @@ const loadData = async () => {
|
|||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const [signalsRes, dataRes, btRes] = await Promise.all([
|
const [signalsRes, dataRes, btRes] = await Promise.all([
|
||||||
fetch(`http://localhost:8080/api/signals?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}`),
|
fetch(`/api/signals?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}`),
|
||||||
fetch(`http://localhost:8080/api/data`),
|
fetch(`/api/data`),
|
||||||
fetch(`http://localhost:8080/api/backtest?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}&capital=${settings.value.initialCapital}`)
|
fetch(`/api/backtest?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}&capital=${settings.value.initialCapital}`)
|
||||||
])
|
])
|
||||||
signals.value = (await signalsRes.json()).signals || []
|
signals.value = (await signalsRes.json()).signals || []
|
||||||
marketData.value = (await dataRes.json()).data || []
|
marketData.value = (await dataRes.json()).data || []
|
||||||
@@ -292,7 +292,7 @@ const loadData = async () => {
|
|||||||
const fetchMarketData = async () => {
|
const fetchMarketData = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`http://localhost:8080/api/fetch?start=${fetchDataForm.value.startDate}&end=${fetchDataForm.value.endDate}`)
|
const res = await fetch(`/api/fetch?start=${fetchDataForm.value.startDate}&end=${fetchDataForm.value.endDate}`)
|
||||||
const data = await res.json()
|
const data = await res.json()
|
||||||
showToast(data.message || data.error, data.message ? 'success' : 'error')
|
showToast(data.message || data.error, data.message ? 'success' : 'error')
|
||||||
loadData()
|
loadData()
|
||||||
@@ -305,7 +305,7 @@ const fetchMarketData = async () => {
|
|||||||
const runBacktest = async () => {
|
const runBacktest = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`http://localhost:8080/api/backtest?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}&capital=${settings.value.initialCapital}`)
|
const res = await fetch(`/api/backtest?window=${settings.value.rollingWindow}&gsrUpper=${settings.value.gsrUpper}&gsrLower=${settings.value.gsrLower}&capital=${settings.value.initialCapital}`)
|
||||||
backtestResults.value = await res.json()
|
backtestResults.value = await res.json()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
@@ -322,7 +322,7 @@ const clearData = async () => {
|
|||||||
showConfirm(locale.value === 'zh' ? '确定要清除所有数据吗?' : 'Are you sure you want to clear all data?', async () => {
|
showConfirm(locale.value === 'zh' ? '确定要清除所有数据吗?' : 'Are you sure you want to clear all data?', async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
const res = await fetch(`http://localhost:8080/api/clear`)
|
const res = await fetch(`/api/clear`)
|
||||||
const data = await res.json()
|
const data = await res.json()
|
||||||
showToast(data.message || data.error, data.message ? 'success' : 'error')
|
showToast(data.message || data.error, data.message ? 'success' : 'error')
|
||||||
marketData.value = []
|
marketData.value = []
|
||||||
|
|||||||
Reference in New Issue
Block a user