我对Ruby很新,因为我正在学习它作为Stockfighter计划的一部分(https://www.stockfighter.io)。我正在尝试将它们与那里的API联系起来,过去我对此没有任何问题,所以我认为我的问题与我的getAverage
函数有关,该函数应该是值数组,将值加在一起,然后除以数组的长度,这样我就可以得到这个模拟股票市场的每股平均价格。具体来说,我遇到了这样的错误:
/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:41: syntax error, unexpected keyword_do_block, expecting keyword_end
averageArr.each do |i|
^
/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:51: warning: else without rescue is useless
/Users/Kai/Dropbox/Kai/Stockfighter/level_three_selling.rb:53: syntax error, unexpected keyword_end, expecting end-of-input
我查看了我的代码中的错误,但找不到任何错误。我想我只需要第二双眼睛就能找到遗漏的东西。也许我在某个地方错过end
或者我的语法错了。我以前从来没有遇到过这个问题,而且我已经在StackOverflow和其他地方挖了一些,但是大多数其他与我类似的错误给出了令人困惑的答案,这对我这样的新手来说毫无意义。
require 'rubygems'
require 'httparty'
require 'json'
apikey = 'MY_KEY_IS_HERE'
venue = "VENUEX"
stock = "FOOBAR"
base_url = "https://api.stockfighter.io/ob/api"
account = "MY_ACCOUNT_IS_HERE"
averageArr = []
counter = 0
def getQuote(stock, venue, account)
response = HTTParty.get("https://api.stockfighter.io/ob/api/venues/#{venue}/stocks/#{stock}/quote")
orderbook = response.parsed_response
puts orderbook["ok"]
return orderbook["last"]
puts orderbook["lastTrade"]
end
def getAverage(stock, venue, account)
averageArr.push(getQuote(stock, venue, account))
counter ++
if counter >= 5
sum = 0
#FIRST ERROR POINTS TO HERE
averageArr.each do |i|
sum += i
end
return sum/5
else
return 'WAITING'
#SECOND ERROR POINTS HERE
end
#THIRD ERROR POINTS HERE
end
答案 0 :(得分:0)
++
不是Ruby运算符。你应该使用
counter += 1
在getAverage
方法的第二行。