Import 如何在每次勾选时导入数据';NetLogo中的参数?
我有一个每天股价和买入信号的文本数据集(1表示买入,-1表示卖出,0表示无所作为)。如何将数据导入NetLogo,使勾号1成为第一天,所有信息都在第一行,并且对于每个勾号,我可以根据数据获得不同的价格和信号 我拥有的数据采用以下格式: 勾选价格信号1信号2信号3 15.7950 25.8050 35.8150 45.80 0 0 55.80 0 0 65.81 0 0 75.8450 85.8550 95.85 0 0 105.87 0 0 11.5.885.0 125.8650 135.8550 14.5.8350 15 5.84-10 1Import 如何在每次勾选时导入数据';NetLogo中的参数?,import,netlogo,Import,Netlogo,我有一个每天股价和买入信号的文本数据集(1表示买入,-1表示卖出,0表示无所作为)。如何将数据导入NetLogo,使勾号1成为第一天,所有信息都在第一行,并且对于每个勾号,我可以根据数据获得不同的价格和信号 我拥有的数据采用以下格式: 勾选价格信号1信号2信号3 15.7950 25.8050 35.8150 45.80 0 0 55.80 0 0 65.81 0 0 75.8450 85.8550 95.85 0 0 105.87 0 0 11.5.885.0 125.8650 135.855
globals [
global-counter
global-price
global-signal1
global-signal2
global-signal3
]
turtles-own [
cash
stock
total-asset
w1
w2
w3
w
]
to setup
clear-all
reset-ticks
create-turtle
stock-import
end
to create-turtle
create-turtles 100
ask turtles [
set shape "person"
setxy random-xcor random-ycor
set cash 1000
set stock 0
set w1 random-float 1
set w2 random-float ( 1 - w1 )
set w3 1 - w1 - w2
]
end
to stock-import
file-open "data.txt"
while [ not file-at-end? ]
[
set global-counter [ ]
set global-price [ ]
set global-signal1 [ ]
set global-signal2 [ ]
set global-signal3 [ ]
let counter file-read
let price file-read
let signal1 file-read
let signal2 file-read
let signal3 file-read
set global-counter lput counter global-counter
set global-price lput price global-price
set global-signal1 lput signal1 global-signal1
set global-signal2 lput signal2 global-signal2
set global-signal3 lput signal3 global-signal3
]
file-close
end
to make-one-trade
ask turtles [ set w ( w1 * global-signal1 + w2 * global-signal2 + w3 * global-signal3 )
set cash ( cash - w * global-price )
set stock ( stock + w1 + w2 + w3 )
set total-asset ( cash + stock * global-price )
]
end
to go
make-one-trade
tick
end
如果数据文件确实使用单个空格来分隔数据,则可以使用
csv
模块并指定分隔符:
extensions [csv]
to setup
ca
end
to go
file-open "c:/temp/temp.csv"
if file-at-end? [ stop ] ;; protect against end of file
;;read a single line (specifying delimiter)
let _line (csv:from-row file-read-line " ")
print _line ;;or do what you want
end
OT:为什么您的数据空间是分隔的?csv格式(即,逗号分隔值)是公认的国际数据交换标准:
谢谢你,艾伦。轮班后我会试试你告诉我的。数据是以空格分隔的,因为它位于Excel文件中,我只需按Ctrl-C和Ctrl-V键将其转换为一个空白的txt文件。@lovedavidsilva您可能知道,但以防万一:Excel支持导出为CSV格式。