How To

How to send signals to Zignaly

Zignaly accepts different types of signals, and also, different ways to send them.

Before sending any signal, you need to create a provider and get the key from it.

Type of Signals

Buy

type=buy

Mandatory fields:

  • key

  • exchange

  • market

Buy signals allow you to send signals for opening positions. This will open the position on Zignaly, and also, will send the buy order to the exchange. Buy orders can be limit, market, or stop-limit, based on the orderType parameter. This is the default signal, if you don't specify any type parameter, then buy is assume.

Sell

type=sell

Mandatory fields:

  • key

  • type

  • market

  • exchange

  • signalId

Sell signals identify previously opened positions (with the signalId parameter) and close them sending a sell order to the exchange. The order is for the 100% of the remaining position amount, and the type of sell order that can be sent to the exchange is market or limit (based on orderType).

To accept sell signals, users connected to this provider need to check the Accept Sell Signals option:

ReBuy

type=rebuy

Mandatory fields:

  • key

  • type

  • market

  • exchange

  • signalId

ReBuy (or DCA) signals identify previously opened positions (with the signalId parameter) and enlarge their positions' size. The new amount is based on the user configuration. And the option of Accept DCA/ReBuys Signals option needs to be checked by the user in the provider's options:

The new buy order sent to the exchange will be a buy limit order; if no price is specified in the signal, the current price will be used as the limit price.

Stop

type=stop

Mandatory fields:

  • key

  • type

  • exchange

Stop signals will make that your provider doesn't accept any new buy signal. Al other signals are accepted (reBuy, sell...).

Start

type=start

Mandatory fields:

  • key

  • type

  • exchange

Start signals will resume accepting signals for a previously stopped provider.

DisableMarket

type=disableMarket

Mandatory fields:

  • key

  • type

  • exchange

  • market

DisableMarket signals will make your provider not accepting any new buy signal for the given market. Al other signals are accepted (reBuy, sell). It works like the stop signals, but for a specific market.

EnableMarket

type=enableMarket

Mandatory fields:

  • key

  • type

  • exchange

  • market

EnableMarket signals will resume accepting signals for a previously disabled provider in the given market.

PanicSell

type=panicSell

Mandatory fields:

  • key

  • type

  • exchange

PanicSell signals are used to sell everything at the current market price. You can filter by quote or base if you want to delimit it a little bit. To accept panicSell signals, the user has to have the following option checked in the provider's option Accept panic sell signals from this provider

How to Send Signals

There are three different ways of sending signals. By endpoint GET or POST and by email.

Endpoint GET

The endpoint URL is

https://zignaly.com/api/signals.php

If you want to use the GET method, you need to add the parameters to the URL, as in the following example:

https://zignaly.com/api/signals.php?key=YOURSECRETKEY&exchange=binance&type=buy&market=QTUMBTC

Visiting the previous URL (with your own provider's key), will send a signal automatically, so be careful where you copy it.

The GET method is less secure than the POST because the parameters (including your secret key) are in the URL visible to everybody that can intercept it).

The URL doesn't return anything visible, just the HTTP status code. If you get 200, then everything is OK, if not, check the HTTP code error.

Endpoint POST

It works exactly as the GET method, but parameters will be sent as post data instead of URL parameters.

The URL is the same:

https://zignaly.com/api/signals.php

But now, the parameters will go as POST data:

key=YOURSECRETKEY exchange=binance type=buy market=QTUMBTC

The exact syntax will depend on what are you using to compose the POST data. A quick example with CURL and PHP:

$url = 'https://zignaly.com/api/signals.php'; $post = [ 'key' => 'YOURSECRETKEY', 'exchange' => 'binance', 'type' => 'buy', 'market' =>'QTUMBTC', ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec ($ch); curl_close ($ch);

The endpoint doesn't return anything visible, just the HTTP status code. If you get 200, then everything is OK, if not, check the HTTP code error.

E-mail

Signals can be sent to signals (at) zignaly (dot) com, and there are two different formats for composing the email:

One parameter per line

key = YOURSECRETKEY exchange=binance type=buy market=QTUMBTC

Parameters separated by ||

||key=YOURSECRETKEY||exchange=binance||type=buy||market=QTUMBTC||

Note the starting || and ending ||, that's to be sure the email doesn't add anything to the first or last parameter.

With both formats, any parameter that is not recognized will be ignored. Also, the system doesn't use the subject for anything.

Parameters

This is the complete list of parameters that can be used with your signals.

buyStopPrice

This field is mandatory if the orderType is equal to stop-limit in a buy signal. It will be the price at which, once reached, a limit order will be placed.

Signals Type: buy

buyTTL

If the buying order hasn't been filled before this seconds elapse, the buying order will be canceled, and the position closed with an error status Buy Removed From Exchange Because TTL. If any is provided, the one from the user's settings will be used. If the order was partially filled, the rest of the order would be canceled, and the position will remain with the partially filled amount.

Even if you don't send this value and is disabled in the user's settings, any position that hasn't been filled after 60 days, will be closed.

Signals Type: buy

DCAAmountPercentage1

You can send as many targets as you want, increase by one the final number for each new target. The % of units (coins) to re-buy. Always from the remaining amount. To accept DCA settings, the user has to have the Accept DCA Parameters From the Buy Signal? Checked in the provider's options.

Signals Type: buy

DCATargetPercentage1

You can send as many targets as you want, increase by one the final number for each new target. Once the price drops this percentage from the average buying price, a limit buy order will be sent to the exchange. To accept DCA settings, the user has to have the Accept DCA Parameters From the Buy Signal? Checked in the provider's options.

Signals Type: buy

DCATargetPrice1

You can send as many targets as you want, increase by one the final number for each new target. Even when you send the price directly instead of the percentage, the system still works with percentage and will get it from this price value and the average buying price value. To accept DCA settings, the user has to have the Accept DCA Parameters From the Buy Signal? Checked in the provider's options. Signals Type: buy

exchange

This field is mandatory, and it's used to specify for which exchange your signals are.

Signals Type: All of them.

key

A mandatory parameter that is used to identify your provider. You shouldn't share your key. Never post it in a public place. Anyone with this key could send signals to your provider. You can get your key from your provider edit tab.

Signals Type: All of them

limitPrice

Is the limit price at which an order will be sent. To take in consideration this parameter, the user needs to check the provider's optioN: Allow the limit price parameter from the signal

Signals Type: buy, sell, reBuy

market

You also can use pair. It specifies for which market the signal is.

Signals Type: buy, sell, reBuy, disableMarket, enableMarket.

MDXXXXXX

A free field for sending metadata. Start the word with MD, followed by whatever name you want to give, for example, MDSource, and it will be stored as metaData->Source. You can add as many as you want.

Signals Type: buy, stop, start, disableMarket, enableMarket

orderType

For buy signals, you can choose between limit, market, or stop-limit. Default is limit. The stop-limit order waits until the price in the buyStopPrice parameter has been reached and then places a buy limit order for the price specified in the limitPrice parameter. To accept market buy orders, the user has to check the option: Allow buy market order (your price deviation won't have effect)

For sell signals, can be market or limit. Limit orders remove the current undone take profits targets from the user and place a new one, for the remaining amount at the suggested price in the signal.

Signals Type: buy, sell.

panicBase

Parameter exclusive from panicSell signals, if present, it will panic sell only positions with this coin as the base. Take into consideration that the symbols (pair, market), in Binance follow this name convention: BASEQUOTE, example: QTUMBTC (QTUM would be the base).

Signals Type: panicSell

panicQuote

Parameter exclusive from panicSell signals, if present, it will panic sell only positions with this coin as the quote. Take into consideration that the symbols (pair, market), in Binance follow this name convention: BASEQUOTE, example: QTUMBTC (BTC would be the quote).

Signals Type: panicSell

positionSize

The position size of your investment. If none is provided, the one from your general settings will be used.

Signals Type: buy

positionSizeQuote

The coin for the position size value. If any is used, the quote coin from your pair will be used (from XRPBTC, it would be BTC).

Signals Type: buy

price

Your suggested base price for calculating the limit price. If you don't use any price, the system will use the current market price (when the signal arrived). This parameter is conditioned by the Buy/Sell Price Deviation setting, which is configured by the user and can be positive or negative. Whatever setting the user has will be applied to the price, resulting in the limit price. If you don't want the price to be conditioned by the user's setting, then you can use the limitPrice parameter.

Signals Type: buy, sell

risk

If sent, and the user has specified any risk value, only values below the user's value will open a position for him. The values go from 1 to 5, being 5 the riskier.

Signals Type: buy

sellTTL

If the position hasn't been wholly sold after this amount of seconds elapsed, the position will be closed selling at current market price. It doesn't matter if the trailing stop is activated or several take profit targets have been reached. The position will be closed at the current market price.

Signals Type: buy.

signalId

An ID that you can use to identify the positions that have been opened from a specific buy signal. Later, if you want to act against those positions (selling, rebuying), you need to use the same ID. The ideal scenario is to use unique IDs that you will store in your database, but when using services like TradivingView or tools like MT5, you can't keep track of the IDs. In this case, you can use the market symbol as ID, but subscriber to this provider will need to check the option: Allow reusing the same signalId if there isn't any open position using it?

Also, if you need to re-use the IDs, you won't be able to have more than one position per market concurrently.

Signals Type: buy, sell, reBuy

stopLossPercentage

The stop-loss price will be calculated from the buying price minus this percentage. You can use stopLossPrice directly. If any of them aren't sent, the one from the general settings will be used.

Signals Type: buy

stopLossPrice

The stop-loss price used for closing your position if the price falls below this value. Take into consideration that even when you send a price, the system still works with percentage, getting this percentage from this value and the suggested buying price.

Signals Type: buy

successRate

If present and the user has specified the minimum success rate allowed, only if the value is above the user's setting, a position will be opened by that user. Is a percentual value, so it goes from 0 to 100.

Signals Type: buy

takeProfitAmountPercentage1

You can send as many targets as you want, increase by one the final number for each new target. The % of units (coins) bought. If this parameter is missing, the system will divide 100% by all the targets. If you send three targets, it will be 100/3 per target. The total takeProfitAmountPercentage from all your target must equal to 100.

Signals Type: buy

takeProfitPercentage1

You can send as many targets as you want, increase by one the final number for each new target. This parameter is the percentage that we would apply to the buying price to determine your target price. To accept take-profits from the signal, the user has to check the following option from the provider's options: Accept Take Profits Values From the Buy Signal?

Signals Type: buy

takeProfitPrice1

You can send as many targets as you want, increase by one the final number for each new target. The price target at which the amount for this target will be sold. The take profits orders are placed in the exchange as soon as the buying order has been filled. Even when you send the price directly instead of the percentage, the system still works with percentage and will get it from this price value, and the suggested buying price value. To accept take-profits from the signal, the user has to check the following option from the provider's options: Accept Take Profits Values From the Buy Signal?

Signals Type: buy

term

short, shortmid, mid or long. If the term parameter is present, the position will be opened if the term is selected in the provider's options:

Signals Type: buy

trailingStopDistancePercentage

The percentage from the higher price at what the position will be closed if the price falls below it. If it isn't provided, it will get the one from the user's settings for this provider.

Signals Type: buy

trailingStopTriggerPercentage

The stop loss trigger price will be calculated from the buying price plus this percentage. You can use trailingStopTriggerPrice directly. If none of them aren't sent, the one from the user's settings for this provider will be used.

Signals Type: buy

trailingStopTriggerPrice

At this price, the trailing stop will be activated, meaning, the price will be watched, and if it falls below the trailingStopDistancePercentage, the position will be closed selling at current market price. If you don't send it, the one from the user's settings for this provider will be used. Even if you send this parameter instead of the trailingStopTriggerPercentage, the system still will work with percentage, getting it from this value and the suggested buying price.

Signals Type: buy

type

The type of signal that you are sending, the options are: buy, sell, reBuy, stop, start, disableMarket, enableMarket, and panicSell. Sell, reBuy, and panicSell signals have to be accepted by the users subscribed to your provider to receive them.

Signals Type: All of them.