{binance} Spot Trading: Limit Orders

In the previous post we looked at creating market orders on Binance using the {binance}
package. Today we’re going to dig into limit orders.
Link to CV.
In the previous post we looked at creating market orders on Binance using the {binance}
package. Today we’re going to dig into limit orders.
Functionality for working with spot trades is now available in {binance}
. In this post we’ll establish some background on spot trading and then explore some related functions.
Dust refers to the fragments of coins which are too small to use for transactions. In the fiat world the equivalent would be those worthless coins with too little value to actually buy anything, that take up space in your wallet and end up scattered across parking areas.
Binance allows you to convert dust into BNB. In this post I discuss the functions in {binance}
which support this operation.
I’ve got a bit of dust in my wallet.
Read More →I started dabbling in Crypto trading on Binance at the beginning of September 2021. I am really impressed with the interface, which is smooth and full featured (if perhaps a little complicated and confusing!). One of the things that has frustrated me though is not being able to get an idea of whether I’m making progress. There’s no view which shows me the overall status of my account and how this has evolved over time.
Read More →Fathom Data has been doing a lot of work with the HCRIS (Healthcare Cost Report Information System) data. The underlying reports are submitted as a spreadsheet with multiple sheets. The data are then extracted and recorded in a simple tabular format, with each field linked to a worksheet code (wksht_cd
), column number (clmn_num
) and line number (clmn_num
). These three keys are then mapped to a single compound key. The resulting data look something like this:
Being able to view related messages as threads is really useful. To make this possible, messages must use either the In-Reply-To
or References
header field to link to the Message-ID
from another message.
This is now possible in {emayili}
.
The {emayili}
package supports configuring a generic SMTP server via the server()
function. In the most recent version, v0.6.5
, we add three new functions, gmail()
, sendgrid()
and mailgun()
, which provide specific support for Gmail, SendGrid and Mailgun.
If you pull back the curtain and take a look at what a naked email looks like, then you might be astonished.
Read More →Sometimes you need to have a message delivered immediately. Other times it doesn’t matter when it’s delivered. Similarly, you might want the recipient to read a message immediately. Or you may not really care when they read it. The ability to specify message priority and importance in {emayili}
has been added to address both scenarios.
library(emayili)
packageVersion("emayili")
[1] '0.6.1'
The Importance
header specifies how important a message is (surprise!). It reflects how important the sender thinks the message is, which might not necessarily agree with the recipient’s opinion. According to RFC 4021 this (optional) field can assume one of three values: low
, normal
or high
.
How can you be sure that the contents of an email haven’t been tampered with? The best approach would probably be to have a digital signature on each component of the message. Perhaps I’ll look at integrating that into {emayili}
some time in the future. However, today I’m writing about the first step in that direction: MD5 checksums.
The concept of “wide data” is relative. In some domains 100 columns is considered “wide”, while in others that’s perfectly normal and you’d need to have thousands (or tens of thousands!) of columns for it to be considered even remotely “wide”. The data that we work with at Fathom Data generally lies in the first domain, but from time to time we do work on data that is considerably wider.
Read More →At Fathom Data we have a few projects which require us to send HTTP requests from an evolving selection of IP addresses. This post details the Medusa proxy docker image which uses Tor (The Onion Router) as a proxy.
A proxy server acts as an intermediary between a client and a server. When a request goes through a proxy server there is no direct connection between the client and the server. The client connects to the proxy and the proxy then connects to the server. Requests and responses pass through the proxy.
Read More →Yoav Raskin suggested that it would be useful to support right-to-left (RTL) text in {emayili}
, so that languages like Hebrew, Arabic and Aramaic would render properly. I’ll be honest, this was not something that I had previously considered. But agreed, it would be a cool feature.
By default <img>
tags are wrapped in a tight <p></p>
embrace by {knitr}
. In general this works really well. However, I want to have more control over image formatting for {emayili}
.
I love the clean simplicity of an R Markdown document. But sometimes it can feel a little bare and utilitarian. This is especially the case if it’s rendered into the body of an email. How about injecting a little more pizzazz?
Read More →I don’t frequently use parameters in R Markdown documents. The initial implementation of render()
in {emayili}
did not cater for them. A small tweak makes it possible though.
In a previous post I documented a new feature in {emayili}
, the ability to render Plain Markdown directly into the body of an email message.
We’ve been able to attach text and HTML content to messages with {emayili}
. But something that I’ve really been wanting to do is render Markdown directly into an email.
In version 0.4.19 I’ve added the ability to directly render Plain Markdown into a message. That version is not on CRAN, so you’ll need to install from GitHub.
Read More →At Fathom Data we use Clockify to keep detailed records of the time that we spend working on our clients’ projects. Up until fairly recently we manually generated timesheets at the end of each month that were sent through to the clients along with their invoices. Our experience has been that providing detailed timesheets helps foster trust and transparency. However, with a growing team and an expanding clientele, generating these timesheets has become progressively more laborious. Time to automate!
Read More →It’s often handy to have access to a HTTP proxy. I use this recipe from time to time to quickly fling together a proxy server which I can use to relay HTTP requests from a different origin.
Read More →