TradersPostInc

TradersPost WebhookMessage Library - Automatically Build JSON

Library "WebhookMessage"
The webhook message library provides several functions for building JSON payloads
used as instructions to manage automated orders and positions with TradersPost.io. See:
https://docs.traderspost.io/docs/learn/webhooks

For example, build a message that goes long 1 contract with a trailing stop of 0.75% sent to the broker:

import TradersPostInc/WebhookMessage/1 as wm
cnst = wm.CONSTANTS.new()
msg = wm.webhookMessage.new(
ticker = syminfo.ticker,
action = cnst.ACTION_BUY,
sentiment = cnst.SENTIMENT_BULLISH,
quantity = 1,
stopLoss = wm.stopLossMessage.new(type = cnst.STOP_LOSS_TYPE_TRAILING_STOP, trailPercent = 0.75).buildStopLossJson()
).buildWebhookJson()

Remember, that each use of a type needs to be translated into a JSON string using the build*Json() method. There are three types and three relevant build methods:
webhookMessage uses buildWebhookJson()
takeProfitMessage uses buildTakeProfitJson()
stopLossMessage uses buildStopLossJson()

Each time you instantiate a new message type, you'll need to chain the build method to it.

method buildWebhookJson(msg)
  Builds the final JSON payload from a webhookMessage type.
  Namespace types: webhookMessage
  Parameters:
    msg (webhookMessage)
  Returns: <string> A JSON Payload.

method buildTakeProfitJson(msg)
  Builds the takeProfit JSON message to be used in a webhook message.
  Namespace types: takeProfitMessage
  Parameters:
    msg (takeProfitMessage)
  Returns: <string> A JSON takeProfit payload.

method buildStopLossJson(msg)
  Builds the stopLoss JSON message to be used in a webhook message.
  Namespace types: stopLossMessage
  Parameters:
    msg (stopLossMessage)
  Returns: <string> A JSON stopLoss payload.

CONSTANTS
  Constants for payload values.
  Fields:
    ACTION_BUY (series string)
    ACTION_SELL (series string)
    ACTION_EXIT (series string)
    ACTION_CANCEL (series string)
    ACTION_ADD (series string)
    SENTIMENT_BULLISH (series string)
    SENTIMENT_BEARISH (series string)
    SENTIMENT_LONG (series string)
    SENTIMENT_SHORT (series string)
    SENTIMENT_FLAT (series string)
    STOP_LOSS_TYPE_STOP (series string)
    STOP_LOSS_TYPE_STOP_LIMIT (series string)
    STOP_LOSS_TYPE_TRAILING_STOP (series string)

webhookMessage
  Final webhook message. See: docs.traderspost.io/docs/learn/webhooks
  Fields:
    ticker (series string)
    action (series string)
    sentiment (series string)
    price (series float)
    quantity (series int)
    takeProfit (series string)
    stopLoss (series string)

takeProfitMessage
  Take profit message. See: docs.traderspost.io/docs/learn/webhooks
  Fields:
    limitPrice (series float)
    percent (series float)
    amount (series float)

stopLossMessage
  Stop loss message. See: docs.traderspost.io/docs/learn/webhooks
  Fields:
    type (series string)
    percent (series float)
    amount (series float)
    stopPrice (series float)
    limitPrice (series float)
    trailPrice (series float)
    trailPercent (series float)

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.