Hello,
I have the following function below, which is being used in a for loop. Essential, in its current form it will hit an API which will give me a bunch of information in return including the “Bid” and “Ask” price of a stock.
My Goal is to only “update” the return variables IF the new information is a higher price than the previous information.
For example, say I trigger the function and it returns a Bid price of 1.00. Then we I run the function again the new Bid price is 1.02. Since 1.02 is higher than the previous Bid of 1.00, then it updates the variable to 1.02. Then say the function is run again and the bid price is now 0.95. In this case I do not want to the variable to be updated and the Bid variable should still be 1.02 since that was the “highest number”.
I was thinking I could do an if/else statement, but it does not seem to work as expected. Any assistance in the direction I should look would be much appreciated.
func optionHighQuote() (bidH, askH float64) {
url := "https://api.com/v1/markets/quotes"
payload := strings.NewReader("symbols=")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
req.Header.Add("accept", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
//parse response into Json Data
json.Unmarshal([]byte(body), &jsonStockResponse)
var hBid = jsonStockResponse.Quotes.Quote.Bid
var hAsk = jsonStockResponse.Quotes.Quote.Ask
return hBid, hAsk
}
This is what the Return information looks like
type QUOTE struct {
Quotes struct {
Quote struct {
Symbol string `json:"symbol"`
Description string `json:"description"`
Exch string `json:"exch"`
Type string `json:"type"`
Last float64 `json:"last"`
Change float64 `json:"change"`
ChangePercentage float64 `json:"change_percentage"`
Volume int `json:"volume"`
AverageVolume int `json:"average_volume"`
LastVolume int `json:"last_volume"`
TradeDate int64 `json:"trade_date"`
Open interface{} `json:"open"`
High interface{} `json:"high"`
Low interface{} `json:"low"`
Close interface{} `json:"close"`
Prevclose float64 `json:"prevclose"`
Week52High float64 `json:"week_52_high"`
Week52Low float64 `json:"week_52_low"`
Bid float64 `json:"bid"`
Bidsize int `json:"bidsize"`
Bidexch string `json:"bidexch"`
BidDate int64 `json:"bid_date"`
Ask float64 `json:"ask"`
Asksize int `json:"asksize"`
Askexch string `json:"askexch"`
AskDate int64 `json:"ask_date"`
OpenInterest int `json:"open_interest"`
Underlying string `json:"underlying"`
Strike float64 `json:"strike"`
ContractSize int `json:"contract_size"`
ExpirationDate string `json:"expiration_date"`
ExpirationType string `json:"expiration_type"`
OptionType string `json:"option_type"`
RootSymbol string `json:"root_symbol"`
} `json:"quote"`
} `json:"quotes"`
}