Skip to content

Instantly share code, notes, and snippets.

View andrewkim316's full-sized avatar
🙃
Proud user of Github Desktop

Andrew Kim andrewkim316

🙃
Proud user of Github Desktop
View GitHub Profile
const AccountIntentHandler = {
// Triggers when user wants to lookup account info
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'AccountIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
const ClearIntentHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'ClearIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
keyId: keyId,
const PositionsIntentHandler = {
// Triggers when user wants to look up positions
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'PositionsIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
const OrdersIntentHandler = {
// Triggers when user wants to look up orders
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'OrdersIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
const StopLimitOrderIntentHandler = {
// Triggers when user wants to execute a stop limit order
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'StopLimitOrderIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
const StopLimitOrderIntentHandler = {
// Triggers when user wants to execute a stop limit order
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'StopLimitOrderIntent';
},
async handle(handlerInput) {
// Get user inputs and declare the Alpaca object
const slots = handlerInput.requestEnvelope.request.intent.slots;
const api = new Alpaca({
# Cancels most recent order. Takes no arguments.
@app.route("/cancel_recent_order", methods=["POST"])
def cancel_recent_order_handler():
args = request.form.get("text").split(" ")
if(len(args) != 0 and not (len(args) == 1 and args[0].strip() == "")):
return WRONG_NUM_ARGS
try:
orders = api.list_orders(status="open", limit=1)
# Gets Polygon price specified stock symbols. Must include one or more
# arguments representing stock symbols. Must have live account to access.
@app.route("/get_price_polygon", methods=["POST"])
def get_price_polygon_handler():
args = request.form.get("text").split(" ")
if(len(args) == 1 and args[0].strip() == ""):
return WRONG_NUM_ARGS
# Gets basic account info. Takes no arguments.
@app.route("/account_info", methods=["POST"])
def account_info_handler():
args = request.form.get("text").split(" ")
if(len(args) != 0 and not (len(args) == 1 and args[0].strip() == "")):
return WRONG_NUM_ARGS
try:
account = api.get_account()
# Clears positions or orders. Must contain 1 argument: positions or orders
@app.route("/clear", methods=["POST"])
def clear_handler():
args = request.form.get("text").split(" ")
if(len(args) == 0):
return WRONG_NUM_ARGS
if(args[0] == "positions"):
async def sub_clear_positions(api, request):