gdax.netcore icon indicating copy to clipboard operation
gdax.netcore copied to clipboard

No support for Candles endpoint

Open markwkjr opened this issue 7 years ago • 10 comments

No support candles endpoint

This endpoint returns Array rather than JSON so requiring new methods. I am working on code to support this endpoint.

markwkjr avatar Oct 18 '17 02:10 markwkjr

@markwkjr That would be fantastic.

sefbkn avatar Oct 19 '17 02:10 sefbkn

Is there any progress on support for the candles end point. What's the ETA?

UniversalAE avatar Nov 13 '17 17:11 UniversalAE

sefbkn maekwkjr I have a crude Candles endpoint working if you want it. Let me know here and I'll try to figure out how to post it.

UniversalAE avatar Nov 20 '17 01:11 UniversalAE

That'd be great @UniversalAE Just fork, commit, and submit a Pull Request. May want to check out a blog, such as: https://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/

markwkjr avatar Nov 20 '17 02:11 markwkjr

yes, I am aware of the error and have corrected this. i'm glad you are interested. I will investigate posting. Right now I have the return type as JArray. I'm just about to do the necessary parsing. I will fork when this is complete unless there is a more private way to release to you. I think my changes should go in the main body of work. I'm not interested in attribution. I have tried to add the endpoint following your style of coding. There is an additional type Candles.cs and slight changes to ProductClient.cs and OrderClient.cs. I've also overloaded the PlaceOrderAsync interface to add post_only as an option.

UniversalAE avatar Nov 20 '17 03:11 UniversalAE

I'm done. Works great. Investigating the Pull request. Look in ProductClient.cs for recommended usage example.

UniversalAE avatar Nov 20 '17 19:11 UniversalAE

QED

UniversalAE avatar Nov 20 '17 20:11 UniversalAE

Dammit! I forgot one last cleanup item. The Candle granularity can be down to one second. I was testing in 1 minute intervals and had obscured the seconds in string formatting ISO 8601.
yyyy-MM-ddTHH:mm:00.00000Z should be changed to yyyy-MM-ddTHH:mm:ss.00000Z. The change should be made in ProductClient.cs .

UniversalAE avatar Nov 20 '17 20:11 UniversalAE

One more Dammit! I had to move the line Candle c = new Candle(); inside the while loop. It was working last night the way I posted it. This morning the 200 candle list all had the same candle data for each record. Moving the class initializer inside the loop corrects the problem but I do not comprehend why it fixes it. Play with it on your end to see if you get the same results.

UniversalAE avatar Nov 20 '17 21:11 UniversalAE

In the ProductClient.cs, I noticed the candle data was returning the same values for all items. I updated the code to new up the candle on each iteration and that fixed it. I also wanted the latest values in the front of the array so I changed the loop.

Final code looks like:

for (int i = 0; i <= x.Count - 1; i++){ c = new Candle(); //added by PMC c.time = (long)x[i][0]; c.low = (decimal)x[i][1]; c.high = (decimal)x[i][2]; c.open = (decimal)x[i][3]; c.close = (decimal)x[i][4]; c.volume = (decimal)x[i][5]; cl.Add(c); }

corcoranp avatar Jan 16 '18 05:01 corcoranp