Welcome to our new support center! Some articles may still be missing; they will be added shortly. For the old support documentation go to https://support.altrady.com. If you have questions, open a new ticket here. New tickets on support.altrady.com won’t be answered; existing tickets will be finalised there.

Altrady Support Altrady Support

Webhook-signaalreferentie: Open, Increase, Reduce, Close en Reverse

Nieuw met webhooks? Begin met Hoe webhook-signalen werken.

Webhook-signalen zijn JSON-payloads die naar een webhook-type signal bot worden gestuurd. Ze kunnen verstuurd worden vanuit een TradingView-alert of vanuit een Altrady-alert, en elk draagt een action die Altrady vertelt wat er met een positie moet gebeuren. (Om de bot zelf te starten of stoppen, zie Webhook-signalen: een signal bot starten of stoppen.)

Om de JSON voor een basissignaal te genereren, gebruik je het tabblad Webhook Builder in de signal bot, naast het tabblad Settings. Voor het opzetten van de alert-naar-Altrady-verbinding zelf, zie Hoe verbind je TradingView-alerts met Altrady via webhooks.

Bouw een signaal met de Webhook Builder

De snelste manier om een signaal aan te maken is het tabblad Webhook Builder in je signal bot, naast Settings. Kies de markt en de Webhook Action (Open, Increase, Reduce, Close of Reverse), kies de Side en het ordertype, en stel eventuele optionele waarden in: het paneel Preview bouwt de JSON voor je en toont de Webhook URL waar je hem naartoe stuurt (https://api.altrady.com/v2/signal_bot_positions). Gebruik Copy URL en Copy Payload om beide te kopiëren.

Het tabblad Webhook Builder in een signal bot: de velden voor markt, Webhook Action, Side en ordertype, en het paneel Preview met de Webhook URL, het gegenereerde Webhook Message, en de knoppen Copy URL / Copy Payload.🔍 Click the image to see a larger version

Om het signaal vanuit TradingView te versturen, open je het tabblad Notifications van de alert, schakel je Webhook URL in, en plak je de Webhook URL van de bot in het veld:

Het tabblad Notifications van het TradingView alert-dialoogvenster, met Webhook URL ingeschakeld en de webhook-URL van de Altrady signal bot geplakt in het veld.🔍 Click the image to see a larger version

Voor de volledige stap-voor-stap uitleg over het aanmaken van de TradingView-alert, zie Hoe verbind je TradingView-alerts met Altrady via webhooks.

De rest van dit artikel is de volledige veldreferentie: voor het handmatig bouwen of aanpassen van een signaal, of om te begrijpen wat de Builder heeft gegenereerd.

Acties in één oogopslag

Positieacties:

  • open — opent een nieuwe positie (long of short).
  • increase — vergroot de omvang van een bestaande positie.
  • reduce — verkleint de omvang van een bestaande positie.
  • close — sluit een gespecificeerde positie, of alle posities voor de gespecificeerde markt en side.
  • reverse (alleen futures) — sluit de huidige positie en opent een nieuwe in de tegenovergestelde richting.

Bot-acties: een webhook-signaal kan ook de bot zelf starten of stoppen (start_bot, stop_bot, start_and_open, stop_and_close) — zie Webhook-signalen: een signal bot starten of stoppen.

Instellingen die elk signaal nodig heeft

Elk webhook-signaal moet bevatten:

  • api_key en api_secret — deze moeten overeenkomen met de Altrady API key en secret in de bot-instellingen.
  • action — de actie die uitgevoerd moet worden. Wordt dit weggelaten, dan is de standaard open.
  • de markt, gespecificeerd op een van twee manieren (nooit beide):
    • exchange plus symbol, waarbij symbol het format EXCHANGE_QUOTE_BASE gebruikt — bijvoorbeeld BINA_USDT_BTC is BTC genoteerd in USDT op Binance (BINA). Voor het pair BTC/USDT is BTC de base-valuta en USDT de quote-valuta. Zie geldige waarden voor exchange en symbol voor de volledige lijst met exchange-codes.
    • tv_exchange plus tv_ticker, met de TradingView-variabelen {{exchange}} en {{ticker}}, die TradingView invult wanneer de alert afgaat. Dit is handig wanneer één strategie signalen voor meer dan één pair verstuurt.
{
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "action": "open",
  "exchange": "BYBI",
  "symbol": "BYBI_USDT_SOL"
}

Om de markt dynamisch mee te geven met TradingView-variabelen in plaats van een vaste exchange en symbol, gebruik je:

  "tv_exchange": "{{exchange}}", 
  "tv_ticker": "{{ticker}}",

Een minimaal signaal met alleen de instellingen die voor alle signaaltypes vereist zijn, ziet er zo uit:

{
 "api_key": "YOUR_ALTRADY_API_KEY",
 "api_secret": "YOUR_ALTRADY_API_SECRET",
 "action": "close",
 "exchange": "BYBI",
 "symbol": "BYBI_USDT_SOL"
}

Een opmerking over side

side is long of short:

  • Gebruik long voor een positie die opent met een Buy-entry en sluit met Sell-exit(s).
  • Gebruik short voor een positie die opent met een Sell-entry en sluit met Buy-exit(s). Short-posities kunnen worden geopend op futures-exchanges met de quote-valuta, en op spot-exchanges als de coins in de base-valuta al in bezit zijn en beschikbaar zijn om te verkopen.

Of side verplicht of optioneel is, hangt af van de actie:

  • Bij open en reverse is side verplicht. Bij een reverse bepaalt het de kant van de nieuwe positie die geopend wordt.
  • Bij increase, reduce en close is side optioneel en standaard long. Hier verwijst het naar de kant van de bestaande positie waarop actie wordt ondernomen.
  • Één signaal werkt op long óf short posities, nooit op beide.

Een positie openen

Een open-signaal opent een nieuwe positie. Om ontvangen en uitgevoerd te worden: moeten de API key en secret overeenkomen met de bot-instellingen, moet het signaal geldige JSON zijn, en moet het voldoen aan alle filtercriteria in de signal bot-instellingen.

Minimaal vereiste instellingen voor een open-signaal

{
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "BYBI",
  "symbol": "BYBI_USDT_SOL",
  "action": "open",
  "side": "long"
}

Buiten de instellingen die voor alle signaaltypes vereist zijn, is de enige extra vereiste instelling voor een open-signaal side.

Voorbeeld van een open-signaal met alle vereiste en optionele instellingen

{
  "action": "open",
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "BYBI",
  "symbol": "BYBI_USDT_SOL",
  "side": "long",  
  "test": true,
  "quote_amount": 100,
  "order_type": "limit",
  "signal_price": 22.5,
  "signal_id": "unique_signal_id_123",
  "leverage": 5,
  "adjust_fee": true,
  "keep_entries_open": true,
  "dca_orders": [
    {
      "price_percentage": 5,
      "quantity_percentage": 100
    },
    {
      "price_percentage": 10,
      "quantity_percentage": 200
    }
  ],  
  "take_profit": [
    {
      "price_percentage": 3,
      "position_percentage": 30
    },
    {
      "price_percentage": 5,
      "position_percentage": 40
    },
    {
      "price_percentage": 15,
      "position_percentage": 30,
      "trailing_distance": 1.5
    }
  ],
  "stop_loss": {
    "order_type": "STOP_LOSS_LIMIT",
    "stop_percentage": 7,
    "limit_percentage": 5,
    "cool_down_amount": 10,
    "cool_down_time_frame": "minute",
    "cool_down_type": "TIME",
    "cool_down_cancel_price": 20.5,
    "protection_type": "PRICE",
    "trailing_percentage": 5,
    "trailing_distance": 1
  },
  "entry_expiration": {
    "time": 60,
    "price": 25
  },
  "entry_condition": {
    "time": 5,
    "price": 22,
    "operator": "OR"
  }
}

Optionele instellingen voor het open- (en reverse-)signaal

Het reverse-signaal accepteert precies dezelfde optionele instellingen als het open-signaal. De onderstaande tabellen groeperen ze per onderwerp.

Orderparameters

Instelling Waarden Toelichting
test true of false Indien true, worden pending orders aangemaakt in plaats van live orders. Let op: "test": true werkt UITSLUITEND met een open-signaal. Bij andere signaaltypes wordt het genegeerd en wordt een live order verstuurd.
action open Standaard open.
order_type market of limit Standaard limit als weggelaten.
signal_price numerieke waarde De TradingView-variabele "{{close}}" kan gebruikt worden om de slotkoers van de candle in te vullen. Als signal_price wordt weggelaten, gebruikt Altrady de huidige prijs.
quote_amount OF base_amount numerieke waarde, optioneel. Indien gebruikt, overschrijft dit de bot-instellingen voor de entry-grootte. Een vast bedrag in quote- of base-valuta, geen percentage van de account. Zijn beide opgenomen, dan treedt een fout op. Voor BTC/USDT is BTC de base-valuta en USDT de quote-valuta.
signal_id Indien opgenomen, moet dit een unieke tekenreeks zijn per signaal. Meestal alleen gebruikt met Pine Script. Neem het op in het open-signaal als het later nodig is om de positie te targeten. Gebruik een variabele waarde die het uniek houdt, zoals de TV-variabele {{time}}. Als signal_id wordt weggelaten, genereert Altrady er een.
leverage numerieke waarde Alleen futures. Indien opgenomen, overschrijft dit de leverage in de signal bot-instellingen.
margin_type ISOLATED of CROSSED Alleen futures. Bepaalt de margin-modus van de positie.
adjust_fee true of false Standaard true. Verkleint de ordergrootte om rekening te houden met exchange-fees. Aanbevolen wanneer de entry- of positiegrootte 100% van het beschikbare saldo gebruikt, wat anders kan mislukken met een insufficient-balance-fout nadat de exchange fees heeft ingehouden. false maximaliseert de initiële ordergrootte, omdat fees op dat moment niet worden afgetrokken, gebruik dit dus als je een initiële ordergrootte wilt die dicht bij het toegestane minimum ligt.
keep_entries_open true of false Bij false worden alle DCA-orders geannuleerd zodra de eerste TP (deels) gevuld is. Bij true blijven de DCA-orders open tot de positie is gesloten. Standaard true.

Market orders en de valuta van de grootte. Wanneer order_type market is, hangt het van de exchange af of quote_amount, base_amount, of beide worden geaccepteerd; gebruik je er een die niet is toegestaan, dan krijg je een foutmelding als “Market order doesn’t support quote currency” (of ”… base currency”). Dit is hetzelfde per-exchange-gedrag als in de Trading widget — zie Een market order plaatsen om te controleren wat een gegeven exchange toestaat.

DCA-orders

Het dca_orders-blok kan tot 9 keer herhaald worden, voor een totaal van 10 entry-orders. Om de DCA-waarden uit het signaal te gebruiken, selecteer je de optie “DCA from Signal” in de signal bot-instellingen.

Instelling Waarden Toelichting
price_percentage numerieke waarde. Specificeer price_percentage of price. Het percentage onder de gemiddelde entryprijs waarop de order geplaatst wordt.
price numerieke waarde. Specificeer price_percentage of price. De vaste prijs waarop de DCA-entryorder geplaatst wordt.
quantity_percentage numerieke waarde Het percentage van de initiële entryorder voor deze DCA (bijv. 200 = 200%, oftewel 2x de grootte van de entryorder).

Meerdere DCA-orders voeg je toe door het blok te herhalen:

{
  "dca_orders": [
    {
      "price_percentage": 5,
      "quantity_percentage": 100
    },
    {
      "price_percentage": 10,
      "quantity_percentage": 200
    },
    {
      "price_percentage": 20,
      "quantity_percentage": 400
    }
  ]
}

Take profit

Het take_profit-blok kan tot 10 keer herhaald worden. Om de TP-waarden uit het signaal te gebruiken, moet de optie “Take Profit from Signal” geselecteerd zijn in de signal bot-instellingen.

Instelling Waarden Toelichting
price_percentage numerieke waarde. Specificeer price_percentage of price. Het percentage boven/onder (long/short) de gemiddelde entryprijs waarop de TP-order geplaatst wordt. Of price of price_percentage moet gebruikt worden voor alle TP-orders in een signaal; ze kunnen niet gecombineerd worden binnen één signaal.
price numerieke waarde. Specificeer price_percentage of price. De werkelijke prijs waarop de order geplaatst wordt. Deze verandert niet, ook niet als de gemiddelde entryprijs wijzigt.
position_percentage numerieke waarde Het percentage van de positiegrootte voor deze order.
trailing_distance numerieke waarde Indien opgenomen, wordt de laatste TP-order een Trailing Take Profit. Deze waarde bepaalt de afstand achter de TP-prijs waarop de stopprijs volgt. Bij triggering sluit een market order de positie. TTP is alleen mogelijk op de laatste TP.

Meerdere take profits voeg je toe door het blok te herhalen. De position_percentage-waarden van de TP’s moeten samen 100 zijn; is de som lager dan 100%, dan wordt het resterende bedrag opgenomen in de laatste TP.

{
  "take_profit": [
    {
      "price_percentage": 2,
      "position_percentage": 50
    },
    {
      "price_percentage": 4,
      "position_percentage": 30
    },
    {
      "price_percentage": 6,
      "position_percentage": 20
    }
  ]
}

Om de laatste TP een Trailing Take Profit te maken, voeg je er trailing_distance aan toe:

{
  "take_profit": [
    {
      "price_percentage": 2,
      "position_percentage": 60
    },
    {  
      "price_percentage": 5,  
      "position_percentage": 40,
      "trailing_distance": 1.5
    }
  ]
}

Stop loss

Voeg het stop_loss-blok toe om een stop loss in te stellen in het signaal. Om de SL-waarden uit het signaal te gebruiken, selecteer je de optie “SL from Signal” in de signal bot-instellingen. Voor een volledige uitleg van de stop-loss- en protection-opties, zie Stop loss en protection modes.

Instelling Waarden Toelichting
order_type STOP_LOSS_MARKET of STOP_LOSS_LIMIT Optioneel. Standaard STOP_LOSS_MARKET als niet gespecificeerd.
stop_percentage OF stop_price Verplicht als een stop_loss-blok is opgenomen. Stop %: het percentage onder de signaalprijs waarop de SL geplaatst wordt. Eenmaal geplaatst, ligt de stopprijs vast en varieert deze niet met de gemiddelde entryprijs. OF Stop Price: geef een prijs op.
limit_percentage OF limit_price Verplicht als order_type STOP_LOSS_LIMIT is. Genegeerd als order_type STOP_LOSS_MARKET is. Limit %: het percentage onder de signaalprijs waarop de limit order van de stop loss geplaatst wordt. Eenmaal geplaatst, ligt de limitprijs vast. OF Limit Price: geef een prijs op. Moet gebruikt worden samen met stop_percentage of stop_price wanneer order_type STOP_LOSS_LIMIT is.

Stop-loss cooldown

Optioneel, binnen het stop_loss-blok.

Instelling Waarden Toelichting
cool_down_type TIME of CANDLE_CLOSE Bepaalt welke andere cooldown-instellingen opgenomen moeten worden.
TIME Specificeer een cool_down_time_frame (day, hour, minute) en een cool_down_amount. bijv. "cool_down_type": "TIME", "cool_down_time_frame": "minute", "cool_down_amount": 5.
CANDLE_CLOSE Specificeer cool_down_candle_resolution in minuten: 1, 2, 3, 5, 10, 15, 30, 60, 120, 240, 360, 720, 1440. Maximum is 1440 (1 dag). bijv. "cool_down_candle_resolution": "30".
Emergency Stop Loss Optioneel bij cooldown. Geef een prijs of een percentage vanaf de entryprijs op. Net als de initiële SL ligt de ESL vast eenmaal geplaatst. "cool_down_cancel_price": 101.123 OF "cool_down_cancel_percentage": 25.

Stop-loss protection

Optioneel, binnen het stop_loss-blok.

Instelling Waarden Toelichting
protection_type PRICE, BREAK_EVEN, FOLLOW_TAKE_PROFIT Het type trailing stop loss dat de positie beschermt. PRICE volgt de prijs.
trailing_price Numeriek. De prijs waarop trailing begint. Alleen gebruikt bij PRICE. Specificeer trailing_price of trailing_percentage.
trailing_percentage Numeriek. Het percentage vanaf de entryprijs waarop trailing begint. Alleen gebruikt bij PRICE. Specificeer trailing_price of trailing_percentage.
trailing_distance Numeriek. Het percentage achter trailing_price of trailing_percentage dat de stopprijs volgt. Verplicht bij PRICE.

Voorbeelden van stop loss:

Eenvoudige stop loss — SL 7,5% vanaf entry, zonder cooldown:

{
  "stop_loss": {
    "stop_percentage": 7.5
  }
}

Stop loss (20% vanaf entry) met een 4-uurs candle-close-cooldown en Emergency Stop Loss (35% vanaf entry):

{
  "stop_loss": {
    "stop_percentage": 20,
    "cool_down_type": "CANDLE_CLOSE",
    "cool_down_candle_resolution": "240",
    "cool_down_cancel_percentage": 35
  }
}

Vaste-prijs SL op 2,79, met een 10-minuten timer-cooldown en Emergency Stop Loss (op 2,59 vaste prijs):

{
  "stop_loss": {
    "stop_price": 2.79,
    "cool_down_amount": 10,
    "cool_down_time_frame": "minute",
    "cool_down_type": "TIME",
    "cool_down_cancel_price": 2.59
  }
}

Vaste-prijs SL op 0,00000100, met een 1-uurs timer-cooldown en protection (TSL volgt de prijs): de triggerprijs ligt 3% boven de entryprijs en de trailing stop staat 1% onder de triggerprijs voor een long-positie. Bij een short-positie ligt de triggerprijs automatisch onder de entryprijs, en de stopprijs boven de triggerprijs.

{
  "stop_loss": {
    "stop_price": 0.000001,
    "cool_down_amount": 1,
    "cool_down_time_frame": "hour",
    "cool_down_type": "TIME",
    "protection_type": "PRICE",
    "trailing_percentage": 3,
    "trailing_distance": 1
  }
}

Entry-timing

Voeg entry_condition toe om een prijs- en/of tijdvoorwaarde in te stellen voordat de initiële orders worden geplaatst, en entry_expiration om de niet-gevulde positie te annuleren op een bepaald tijdstip of bepaalde prijs.

Instelling Waarden Toelichting
entry_condition › time Numeriek. Minuten die aan de huidige tijd worden toegevoegd voordat de positie opent. Tot de positie opent, worden geen coins gereserveerd.
entry_condition › price Numeriek. De prijs waarop de positie zou moeten openen.
entry_condition › operator AND of OR Als zowel time als price worden gebruikt in entry_condition, kies je of beide voorwaarden vervuld moeten zijn (AND) of slechts één (OR).
entry_expiration › time Numeriek. Minuten die aan de huidige tijd worden toegevoegd voordat de positie verloopt. Indien ingesteld, overschrijft dit de expiry-time-instelling in de signal bot-instellingen.
entry_expiration › price Numeriek. De prijs waarop de niet-gevulde positie zou moeten verlopen. Als zowel time als price gespecificeerd zijn, wordt de positie geannuleerd zodra één van beide voorwaarden vervuld is.

DCA’s, TP’s en SL kunnen worden opgenomen in het entry-signaal (handig wanneer ze per signaal of markt variëren), ingesteld in de signal bot-instellingen (handig wanneer ze niet variëren), of handmatig aan posities worden toegevoegd nadat ze geopend zijn. Kies in de bot-instellingen voor Custom om de waarde in de bot te gebruiken, of Signal om de waarde uit het signaal te gebruiken.

Structuur van het open- (en reverse-)signaal

Open Signal
└── Base Parameters (required)
    ├── api_key: "YOUR_ALTRADY_API_KEY"
    ├── api_secret: "YOUR_ALTRADY_API_SECRET"
    ├── action: "open"
    ├── EITHER:
    │   ├── exchange: "EXCHANGE_CODE"
    │   └── symbol: "MARKET_CODE"  
    └── OR:
        ├── tv_exchange: "{{exchange}}" 
        └── tv_ticker: "{{ticker}}"
    └── side: "long" │ "short"
    ├── Order Parameters (optional)
    │   ├── test: true │ false
    │   ├── order_type: "market" │ "limit"
    │   ├── signal_price: number │ "{{close}}"
    │   ├── signal_id: string
    │   ├── leverage: number (futures only)
    │   ├── margin_type: "ISOLATED" │ "CROSSED" (futures only)
    │   ├── adjust_fee: true │ false
    │   ├── keep_entries_open: true │ false
    │   └── ONE OF:
    │       ├── quote_amount: number
    │       └── base_amount: number
    ├── Entry Condition (optional)
    │   ├── time: number (minutes)
    │   ├── price: number
    │   └── operator: "AND" │ "OR"
    ├── Entry Expiration (optional)
    │   ├── time: number (minutes)
    │   └── price: number
    ├── Take Profit Settings (optional array)
    │   └── [
    │       {
    │           ├── ONE OF:
    │           │   ├── price_percentage: number
    │           │   └── price: number
    │           ├── position_percentage: number
    │           └── trailing_distance: number (last TP only)
    │       },
    │       {...}  // Up to 10 TPs
    │   ]
    ├── DCA Orders (optional array)
    │   └── [
    │       {
    │           ├── ONE OF:
    │           │   ├── price_percentage: number
    │           │   └── price: number
    │           └── quantity_percentage: number
    │       },
    │       {...}  // Up to 9 DCAs
    │   ]
    └── Stop Loss Settings (optional)
        ├── IF order_type: "STOP_LOSS_MARKET" (ONE required)
        │   ├── stop_percentage: number
        │   └── stop_price: number
        ├── IF order_type: "STOP_LOSS_LIMIT" (TWO required)
        │   ├── stop_percentage: number
        │   └── limit_percentage: number
        |    |       OR
        |    ├── stop_price: number
        |    └── limit_price: number
        ├── Cooldown Settings (optional)
        │   ├── cool_down_type: "TIME" │ "CANDLE_CLOSE"
        │   ├── IF "TIME":
        │   │   ├── cool_down_time_frame: "minute" │ "hour" │ "day"
        │   │   └── cool_down_amount: number
        │   ├── IF "CANDLE_CLOSE":
        │   │   └── cool_down_candle_resolution: "1" │ "5" │ "15" │ ... │ "1440"
        │   └── Emergency SL (optional, ONE only)
        │       ├── cool_down_cancel_price: number
        │       └── cool_down_cancel_percentage: number
        └── Protection Settings (optional)
            ├── protection_type: "PRICE" │ "BREAK_EVEN" │ "FOLLOW_TAKE_PROFIT"
            ├── IF "PRICE":
            │   ├── ONE OF:
            │   │   ├── trailing_price: number
            │   │   └── trailing_percentage: number
            │   └── trailing_distance: number
            └── (other protection types have their own parameters)

Een positie vergroten

Het increase-signaal vergroot de omvang van één of meer open posities voor één markt en side, die geopend zijn door de signal bot.

Minimaal vereiste instellingen voor een increase-signaal

{
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "action": "increase",
  "side": "long",
  "exchange": "BINA",
  "symbol": "BINA_USDT_BTC",
  "increase_order": {
    "quantity_percentage": 100
  }
}

Er moet precies één increase_order-blok worden opgenomen. Gebruik hierbinnen precies één van quantity_percentage, quote_amount of base_amount (een numerieke waarde) om het verhogingsbedrag te specificeren. Zijn er meer opgenomen, dan wordt het signaal afgewezen.

  • quantity_percentage vergroot de positiegrootte met een percentage van de initiële entryordergrootte. 100 vergroot de positie bijvoorbeeld met hetzelfde bedrag als de initiële entryorder.
  • quote_amount vergroot de positiegrootte met het opgegeven bedrag in quote-valuta (afgerond naar de hoogst mogelijke ordergrootte).
  • base_amount vergroot de positiegrootte met het opgegeven bedrag in base-valuta (bijv. 250 voor 250 ADA op BIFU_USDT_ADA).

Voorbeeld van een increase-signaal met vereiste en optionele instellingen

Dit voorbeeld gebruikt de TradingView-variabele {{close}} om de prijs bij candle-close in te voegen:

{
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "action": "increase",
  "side": "long",
  "exchange": "BINA",
  "symbol": "BINA_USDT_BTC",
  "increase_order": {
    "base_amount": 25.5,
    "order_type": "limit",
    "price": "{{close}}"
  }
}

Optionele instellingen voor het increase-signaal

  • order_type is optioneel en kan limit of market zijn. Wordt het weggelaten, dan is de standaard limit. Voor een limit-increase-order kan price worden opgegeven.
  • Wordt market gebruikt, dan wordt de order als market order geplaatst en wordt elk price-veld genegeerd.
  • price kan een numerieke waarde zijn of een TradingView-variabele zoals {{close}} (alleen TV).
  • order_type en price moeten binnen het increase_order-blok staan.

Structuur van het increase-signaal

Increase Signal
└── Base Parameters (required)
    ├── api_key: "YOUR_ALTRADY_API_KEY"
    ├── api_secret: "YOUR_ALTRADY_API_SECRET"
    ├── action: "increase"
    ├── EITHER:
    │   ├── exchange: "EXCHANGE_CODE"
    │   └── symbol: "MARKET_CODE"  
    └── OR:
        ├── tv_exchange: "{{exchange}}" 
        └── tv_ticker: "{{ticker}}"
    ├── side: "long" | "short"
    └── increase_order: {
        ├── ONE OF: (required)
        │   ├── quantity_percentage: number
        │   ├── quote_amount: number
        │   └── base_amount: number
        ├── order_type: "limit" | "market" (optional, defaults to "limit")
        └── IF "limit": price: number (optional)

Een positie verkleinen

Het reduce-signaal verkleint de omvang van één of meer posities die door de signal bot geopend zijn, voor de gespecificeerde markt en side. Het sluit de matchende posities gedeeltelijk, met het bedrag dat in het signaal is opgegeven.

Verwerking

Zodra het reduce-signaal ontvangen is, gebeurt dit voor elke positie die overeenkomt met symbool en side van het signaal:

  • alle open take-profit-orders worden geannuleerd;
  • er wordt een nieuwe order aangemaakt voor het bedrag in het reduce-blok;
  • elke bestaande TP wordt proportioneel verkleind en opnieuw op zijn oorspronkelijke prijs geplaatst.

Bijvoorbeeld: bestaande TP’s op [prijs (%)] 105 (20%), 115 (30%), 125 (50%). Een reduce-signaal om 10% van de positie te sluiten tegen marktprijs wordt ontvangen. Nieuwe TP’s: 10% (market order), plus limit orders op 105 (18%), 115 (27%), 125 (45%).

Minimaal vereiste instellingen voor een reduce-signaal

{
  "action": "reduce",
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "BINA",
  "symbol": "BINA_USDT_SOL",
  "side": "long",
  "reduce_order": {
      "percentage": 25
  }
}

Er moet één reduce_order-blok worden opgenomen. Gebruik precies één van percentage, quote_amount of base_amount (een numerieke waarde) om het reductiebedrag te specificeren. Zijn er meer opgenomen, dan wordt het signaal afgewezen. De open positie = gevulde entries − gevulde exits.

  • percentage verkleint de positiegrootte met een percentage van de huidige positiegrootte in base-/contractvaluta. Is de grootte bijvoorbeeld 0,2 BTC en het reductiebedrag 50%, dan wordt 0,1 BTC verkocht/gekocht (long/short). Zet dit op 100 om de positie te sluiten, of gebruik een close-signaal.
  • quote_amount verkleint de positiegrootte met het opgegeven bedrag in quote-valuta (afgerond naar de hoogst mogelijke ordergrootte).
  • base_amount verkleint de positiegrootte met het opgegeven bedrag in base- (contract)valuta (bijv. 250 voor 250 ADA op BIFU_USDT_ADA).

Voorbeeld van een reduce-signaal met alle vereiste en optionele instellingen

Dit voorbeeld maakt een market TP-order aan voor 25,5 ADA:

{  
  "api_key": "YOUR_ALTRADY_API_KEY",  
  "api_secret": "YOUR_ALTRADY_API_SECRET",  
  "action": "reduce",  
  "side": "long",  
  "exchange": "BINA",  
  "symbol": "BINA_USDT_SOL",  
  "reduce_order": {  
    "base_amount": 25.5,  
    "order_type": "market"
  }  
}

Optionele instellingen voor het reduce-signaal

  • order_type is optioneel en kan limit of market zijn, en moet binnen het reduce_order-blok staan. Wordt het weggelaten, dan is de standaard limit. Voor een limit-reduce-order is price optioneel.
  • Wordt market gebruikt, dan wordt de order als market order geplaatst.
  • price kan een numerieke waarde zijn of een TradingView-variabele zoals {{close}} (alleen TV).

Structuur van het reduce-signaal

Reduce Signal
└── Base Parameters (required)
    ├── api_key: "YOUR_ALTRADY_API_KEY"
    ├── api_secret: "YOUR_ALTRADY_API_SECRET"
    ├── action: "reduce"
    ├── EITHER:
    │   ├── exchange: "EXCHANGE_CODE"
    │   └── symbol: "MARKET_CODE"  
    └── OR:
        ├── tv_exchange: "{{exchange}}" 
        └── tv_ticker: "{{ticker}}"
    ├── side: "long" | "short"
    └── reduce_order: {
        ├── ONE OF: (required)
        │   ├── percentage: number
        │   ├── quote_amount: number
        │   └── base_amount: number
        ├── order_type: "limit" | "market" (optional, defaults to "limit")
        └── IF "limit": price: number (optional)

Een positie sluiten

Het close-signaal sluit lopende positie(s) voor de gespecificeerde markt die door dezelfde signal bot geopend zijn.

  • Een close sluit de positie(s), ongeacht of er entry-orders gevuld zijn.
  • Zodra het close-signaal ontvangen is, worden alle open orders (entries, exits, stop loss) geannuleerd zodat de close-order de positie kan sluiten.
  • Het close-signaal moet verstuurd worden op de prijs waarop de positie gesloten moet worden. Bij een limit order sluit de positie pas als de limitprijs bereikt wordt en de order volledig gevuld is.
  • Opeenvolgende close-signalen annuleren open limit orders die door eerdere close-signalen zijn aangemaakt.

Vereist in het signaal: de API key en secret moeten overeenkomen met de bot-instellingen, "action": "close" is verplicht, en de markt moet gespecificeerd worden met exchange en symbol (of tv_exchange en tv_ticker).

order_type is verplicht voor een close-signaal, als market of limit:

  • "order_type": "limit" moet gebruikt worden samen met price. Het sluit de positie met een limit order op de opgegeven prijs.
  • "order_type": "market" mag niet gecombineerd worden met price. Het sluit de positie met een pseudo-market order (een limit order 10% vanaf de huidige prijs).

Minimaal vereiste instellingen voor een close-signaal

Dit signaal sluit alle open long-posities voor XBT/USD die door de signal bot geopend zijn:

{
  "action": "close",
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "KRKN",
  "symbol": "KRKN_USD_XBT",
  "side": "long",
  "order_type": "limit",
  "price": 30500
}

Voorbeeld van een close-signaal met alle vereiste en optionele instellingen

{
  "action": "close",
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "KRKN",
  "symbol": "KRKN_USD_XBT",
  "side": "long",
  "signal_id": "original_signal_id_123",
  "order_type": "market"
}

Optionele instellingen voor het close-signaal

  • side — wordt dit weggelaten, dan is de standaard long. Het verwijst naar de kant van de oorspronkelijke positie toen deze geopend werd. Één signaal sluit long óf short posities, nooit beide.
  • signal_id — indien gebruikt, moet dit de signal_id zijn van het signaal dat de specifieke positie opende. Wordt dit weggelaten, dan worden alle posities voor de gespecificeerde markt en side die door de signal bot geopend zijn, gesloten. Kan er meer dan één positie open zijn voor hetzelfde symbool en dezelfde side, dan target signal_id een specifieke positie. Omdat het moet overeenkomen met de signal_id die de positie opende, is dit niet mogelijk met standaard TradingView-indicators; het kan mogelijk zijn met Pine Script. Was er geen signal_id opgegeven bij het oorspronkelijke signaal, dan heeft Altrady er een gegenereerd, en heeft TradingView geen toegang tot die door Altrady gegenereerde id. Heeft je bot “Max per market” = 1, dan is er nooit meer dan één positie tegelijk open voor een markt, dus sluit het close-signaal die ene positie en is signal_id niet nodig.

Structuur van het close-signaal

Close Signal
└── Base Parameters (required)
    ├── api_key: "YOUR_ALTRADY_API_KEY"
    ├── api_secret: "YOUR_ALTRADY_API_SECRET"
    ├── action: "close"
    ├── EITHER:
    │   ├── exchange: "EXCHANGE_CODE"
    │   └── symbol: "MARKET_CODE"  
    └── OR:
        ├── tv_exchange: "{{exchange}}" 
        └── tv_ticker: "{{ticker}}"
    ├── order_type: "market" | "limit" (required for close)
    │   └── IF "limit": price: number (required)
    ├── side: "long" | "short" (optional, defaults to "long")
    └── signal_ID: "ORIGINAL_SIGNAL_ID" (optional)

Een positie omkeren (alleen futures)

Het reverse-signaal kan alleen gebruikt worden voor futures-markten.

Minimale instellingen voor een reverse-signaal

Dit voorbeeld sluit bestaande short-posities en opent een nieuwe long-positie voor BTC/USDT op Binance:

{
  "action": "reverse",
  "api_key": "YOUR_ALTRADY_API_KEY",
  "api_secret": "YOUR_ALTRADY_API_SECRET",
  "exchange": "BINA",
  "symbol": "BINA_USDT_BTC",
  "side": "long"
}
  • Afgezien van "action": "reverse" zijn alle instellingen identiek aan de vereiste en optionele instellingen voor het open-signaal hierboven.
  • Het reverse-signaal is als twee signalen in één: close en open. Het sluit de bestaande positie(s) met een market order en opent een nieuwe positie met de opgegeven parameters. De nieuwe positie opent pas nadat de bestaande gesloten is. Voor side zijn geldige opties long of short; dit is de kant van de nieuwe positie. Wordt het weggelaten, dan is de standaard long.
  • Er wordt tot 5 keer opnieuw geprobeerd met een vertraging van 3 seconden voordat het mislukt. Dit gebeurt asynchroon, dus de webhook geeft meteen antwoord en retourneert 204 no content zodra het verzoek succesvol ontvangen is; anders retourneert het dezelfde foutmeldingen als de open-actie.
  • Reverse wordt aanbevolen boven het versturen van aparte close- en open-signalen. Bij aparte signalen is de timing van de close onbekend, en is de close nog niet voltooid op de exchange als de open binnenkomt, dan wordt de open genegeerd (tenzij hedge mode is ingeschakeld en twee posities per markt zijn toegestaan). Er kan maar één signaal per TV-alert verstuurd worden, dus zouden aparte signalen twee alerts vereisen.
  • Is de positie al gesloten wanneer de reverse ontvangen wordt, dan opent deze gewoon een nieuwe positie met de opgegeven instellingen.

Het reverse-signaal is niet compatibel met de Profit Volume-instelling in de signal bot (die een percentage van de contracten of tokens aanhoudt nadat een positie sluit). Profit Volume moet op de standaardwaarde 100% (1) staan. Worden in one-way mode nog contracten aangehouden voor de vorige richting, dan kan het reverse-signaal de nieuwe, omgekeerde positie niet openen.

Structuur van het reverse-signaal

Reverse Signal (Futures Only)
└── Base Parameters (required)
    ├── api_key: "YOUR_ALTRADY_API_KEY"
    ├── api_secret: "YOUR_ALTRADY_API_SECRET"
    ├── action: "reverse"
    ├── EITHER:
    │   ├── exchange: "EXCHANGE_CODE"
    │   └── symbol: "MARKET_CODE"  
    └── OR:
        ├── tv_exchange: "{{exchange}}" 
        └── tv_ticker: "{{ticker}}"
    └── side: "long" | "short" (side for new position)
    |
    └── Same optional parameters same as Open Signal
        ├── Order Parameters
        ├── Entry Condition
        ├── Entry Expiration
        ├── Take Profit Settings
        ├── DCA Orders
        └── Stop Loss Settings

Pine Script

Gebruik voor TradingView-alerts de webhook URL https://api.altrady.com/v2/signal_bot_positions.

Een order instellen op basis van een prijs-crossing of trendlijn-crossing vereist geen programmeerwerk, maar het koppelen van een indicator of strategie vereist basiskennis van het aanmaken van een signaal in Pine Script. Er is veel informatie op het web over het genereren van een signaal in Pine, en je kunt om advies vragen in de Pine Scripters Telegram-gebruikersgroep.

Een geparametriseerde Pine-alert (TTP is alleen mogelijk op de laatste TP):

test = input.bool(true, "Test signal")
api_key = input.string("", "Api key")
secret = input.string("", "Secret")
signal_name = input.string("", "Signal name")
side = input.string("", "Side")
exchange = input.string("", "Exchange name")
symbol = input.string("", "Symbol")
signal_price = close

alert('{"test": '+ str.tostring(test) +', "api_key": "'+api_key+'","api_secret": "'+secret+'","signal_id": "'+ signal_name + str.tostring(time)+'","side": "'+ side +'","exchange": "'+ exchange +'", "symbol": "'+ symbol +'","signal_price": "' + str.tostring(signal_price) +'"}')

Een minimale alert:

alert('{"api_key": "YOUR_ALTRADY_API_KEY", "action": "open", "symbol": "BTCUSDT", "side": "long"}')

Met "test": true maakt jouw webhook-signaal in combinatie met je bot pending orders aan die je op de grafiek en in My Orders kunt zien. Let op: "test": true werkt alleen met open-signalen. Bij andere signaaltypes wordt het genegeerd en wordt een live order verstuurd. Zodra je klaar bent om live signalen te versturen, verander je de eerste regel naar test = input.bool(false, "Test signal").

Verander de API key en secret, en stel de juiste exchange en het juiste symbool in. Zorg dat de signal id uniek is per bot; gebruik van {{time}} zorgt voor een unieke signal id elke seconde.

Veelgemaakte fouten in de payload

  • Beide marktvormen tegelijk — gebruik exchange + symbol, of tv_exchange + tv_ticker, nooit beide.
  • Verkeerd symbol-format — een vast symbol moet EXCHANGE_QUOTE_BASE zijn (bijv. BINA_USDT_BTC), niet de rauwe TradingView-ticker.
  • Ontbrekende side bij open of reverseside is verplicht bij beide.
  • Beide groottevelden — zowel quote_amount als base_amount opnemen (of meer dan één groottevelden binnen een increase_order/reduce_order-blok) wijst het signaal af; gebruik precies één.
  • Geen order_type bij closeorder_type is verplicht bij een close, en limit moet price bevatten terwijl market dat niet mag.
  • Verwachten dat test: true veilig is bij niet-open-signalen — het werkt alleen bij open; bij andere acties wordt het genegeerd en wordt een live order verstuurd.
  • Herhaald open om een positie op te stapelen — een tweede open zal ofwel een nieuwe positie openen, ofwel gefilterd worden door de marktfilters van de bot; gebruik increase om aan een positie toe te voegen.

Is je payload geldige JSON met de juiste velden en gebeurt er nog steeds niets, doorloop dan Problemen oplossen: TradingView webhook-signalen triggeren geen orders.

Was dit artikel nuttig?