---
title: "Descrivi il modello di strategia"
description: "Descrivi il modello di strategia restituisce una sezione alla volta: ogni campo con il valore predefinito, i limiti, l’unità e il limite del tuo piano."
canonical_url: "https://fincanva.com/it/sviluppatori/riferimento/describe-strategy-model"
last_updated: "2026-10-01"
md_url: "https://fincanva.com/it/sviluppatori/riferimento/describe-strategy-model.md"
---

# Descrivi il modello di strategia

Descrive il modello di [strategia](/it/glossario/strategia) di Fincanva una sezione alla volta — il [livello della Combinata](/it/glossario/livello-della-combinata), le condizioni di rischio, l’allocazione, le strategie dentro una [Combinata](/it/glossario/combinata), le uscite dalle posizioni, la selezione e le impostazioni di simulazione — elencando ogni campo con il tipo, l’unità, il valore predefinito, i limiti e i valori ammessi, e il limite del tuo piano dove ce n’è uno. La panoramica elenca le sezioni.

Id dell’operazione: `describe_strategy_model` — REST `POST /api/v1/research/describe_strategy_model`, strumento MCP `describe_strategy_model`.

## Quando si usa Descrivi il modello di strategia?

- Prima di creare o modificare una strategia, per conoscere ogni campo che si può impostare e i limiti del piano dell’utente.
- L’utente chiede che cosa significa un’impostazione, qual è il suo valore predefinito o fin dove può arrivare.

Usa un’altra operazione quando:

- Ti servono solo i metodi di allocazione e le loro impostazioni proprie — usa invece [`list_allocation_methods`](/it/sviluppatori/riferimento/list-allocation-methods).

## Quali parametri accetta Descrivi il modello di strategia?

- `section` (facoltativo; testo; uno tra `overview`, `combined`, `risk_conditions`, `allocation`, `sub_strategies`, `position_exits`, `selection`, `user_settings`; predefinito `"overview"`) — La sezione da descrivere: `overview` elenca le sezioni; `combined` (il livello della Combinata), `risk_conditions`, `allocation`, `sub_strategies` (le sotto-strategie di una Combinata; una Strategia singola porta gli stessi campi in cima), `position_exits`, `selection` oppure `user_settings` (le impostazioni di simulazione).

## Che cosa restituisce Descrivi il modello di strategia?

L’oggetto `result` contiene i campi qui sotto. Ogni risultato riporta anche un `summary` testuale, i valori `assumed` e la `dataVersion`, come descrive [la struttura del risultato](/it/sviluppatori/concetti/la-struttura-del-risultato).

- `section` (testo; uno tra `overview`, `combined`, `risk_conditions`, `allocation`, `sub_strategies`, `position_exits`, `selection`, `user_settings`) — La sezione descritta.
- `title` (testo; almeno 1 caratteri) — Il titolo della sezione, con le parole del prodotto.
- `summary` (testo; almeno 1 caratteri) — Che cosa controlla la sezione, in una o due frasi.
- `fields` (elenco) — Ogni campo della sezione, nell’ordine in cui li mostra l’app; vuoto per la panoramica.
- `fields[].path` (testo) — Il percorso pubblico del campo in una definizione di strategia, quello che usano la creazione e la modifica di una strategia.
- `fields[].name` (testo; almeno 1 caratteri) — Il nome del campo come lo mostra l’app.
- `fields[].type` (testo; uno tra `number`, `integer`, `boolean`, `enum`, `string`, `list`, `object`) — `number`, `integer`, `boolean`, `enum`, `string`, `list` o `object`.
- `fields[].unit` (testo; uno tra `none`, `number`, `count`, `days`, `weeks`, `months`, `quarters`, `years`, `reports`, `bars`, `fraction`, `percent`, `multiple`, `sharpe_points`, `sigma`, `usd`, `base_currency`, `date`, `native`) — L’unità del valore del campo. (convenzione [`fraction`](/it/sviluppatori/concetti/unita-e-convenzioni#le-percentuali-sono-restituite-come-frazioni))
- `fields[].default` (numero / vero o falso / testo; può essere null; unità: l’unità di ciò che descrive) — Il valore usato quando il campo non viene indicato. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].enabledByDefault` (vero o falso; può essere null) — Per un campo che si può attivare o disattivare, se è attivo in modo predefinito; null per ogni altro campo.
- `fields[].min` (numero; può essere null; unità: l’unità di ciò che descrive) — Il valore più piccolo che il prodotto consente, oppure null. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].max` (numero; può essere null; unità: l’unità di ciò che descrive) — Il valore più grande che il prodotto consente, oppure null. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].values` (elenco; può essere null) — I valori che l’app offre per un campo `enum`, oppure null. Dove l’app blocca una scelta, è elencato solo il valore bloccato: due condizioni di rischio si combinano con `or` e la cadenza di [ribilanciamento](/it/glossario/ribilanciamento) è `month`.
- `fields[].steps` (elenco; può essere null; unità: l’unità di ciò che descrive) — Gli unici numeri che il campo accetta, in ordine crescente, come gli importi fissi del [capitale iniziale](/it/glossario/capitale-iniziale); null quando è accettato qualsiasi numero tra `min` e `max`. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].boundsBy` (oggetto; può essere null) — Limiti che dipendono da un altro campo, un caso per ogni valore di quel campo, come la soglia di una regola di rischio in base alla metrica che legge; null quando i limiti sono fissi. I valori `unit`, `default`, `min` e `max` del campo sono quelli del valore predefinito dell’altro campo.
- `fields[].boundsBy.on` (testo) — Il percorso pubblico del campo il cui valore decide i limiti.
- `fields[].boundsBy.cases` (elenco) — Una voce per ogni valore di quel campo.
- `fields[].boundsBy.cases[].when` (testo; almeno 1 caratteri) — Il valore del campo decisivo a cui si applica questo caso.
- `fields[].boundsBy.cases[].unit` (testo; uno tra `none`, `number`, `count`, `days`, `weeks`, `months`, `quarters`, `years`, `reports`, `bars`, `fraction`, `percent`, `multiple`, `sharpe_points`, `sigma`, `usd`, `base_currency`, `date`, `native`) — L’unità del valore del campo in questo caso. (convenzione [`fraction`](/it/sviluppatori/concetti/unita-e-convenzioni#le-percentuali-sono-restituite-come-frazioni))
- `fields[].boundsBy.cases[].default` (numero / vero o falso / testo; può essere null; unità: l’unità di ciò che descrive) — Il valore predefinito in questo caso. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].boundsBy.cases[].min` (numero; può essere null; unità: l’unità di ciò che descrive) — Il valore più piccolo ammesso in questo caso, oppure null. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].boundsBy.cases[].max` (numero; può essere null; unità: l’unità di ciò che descrive) — Il valore più grande ammesso in questo caso, oppure null. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].boundsBy.cases[].steps` (elenco; può essere null; unità: l’unità di ciò che descrive) — Gli unici numeri accettati in questo caso, in ordine crescente; null quando è accettato qualsiasi numero tra `min` e `max` di questo caso. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].valuePlans` (elenco; può essere null) — I valori che richiedono un piano più alto di quello del campo stesso, come gli stimatori avanzati della covarianza; null quando ogni valore è incluso con il campo.
- `fields[].valuePlans[].value` (testo; almeno 1 caratteri) — Uno dei `values` del campo.
- `fields[].valuePlans[].includedInYourPlan` (vero o falso) — Vale true quando il tuo piano attuale include questo valore.
- `fields[].valuePlans[].lowestPlan` (testo; uno tra `free`, `starter`, `advanced`, `ultimate`, `professional`; può essere null) — Il piano più basso che include questo valore, oppure null quando oggi nessun piano lo include.
- `fields[].planLimit` (oggetto; può essere null) — Il limite del tuo piano sul campo, oppure null quando nessun piano lo limita.
- `fields[].planLimit.includedInYourPlan` (vero o falso) — Vale true quando il tuo piano ti permette di usare il campo.
- `fields[].planLimit.lowestPlan` (testo; uno tra `free`, `starter`, `advanced`, `ultimate`, `professional`; può essere null) — Il piano più basso che ti permette di usare il campo, oppure null quando oggi nessun piano te lo permette.
- `fields[].planLimit.yourMin` (numero; può essere null; unità: l’unità di ciò che descrive) — Il minimo del tuo piano per un campo numerico, come il primo anno di partenza che il tuo piano consente, che può essere più alto di `min`; null quando il tuo piano non ne fissa uno. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `fields[].planLimit.yourMax` (numero; può essere null; unità: l’unità di ciò che descrive) — Il massimo del tuo piano per un campo numerico, che può essere più basso di `max`; null quando il tuo piano non ne fissa uno. (convenzione [`native_unit`](/it/sviluppatori/concetti/unita-e-convenzioni#che-cosa-significa-lunità-native))
- `sections` (elenco) — Ogni sezione del modello, da cui muoversi.
- `sections[].id` (testo; uno tra `overview`, `combined`, `risk_conditions`, `allocation`, `sub_strategies`, `position_exits`, `selection`, `user_settings`) — L’id della sezione, da passare come `section`.
- `sections[].title` (testo; almeno 1 caratteri) — Il titolo della sezione.

## Com’è fatta una chiamata a Descrivi il modello di strategia?

### Le uscite dalle posizioni di una strategia, per un utente il cui piano limita le posizioni

Domanda: Quanto in basso posso impostare uno [stop loss](/it/glossario/stop-loss)?

```bash
# Chiamante con il piano starter
curl -X POST https://app.fincanva.com/api/v1/research/describe_strategy_model \
  -H "Authorization: Bearer $FINCANVA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"section":"position_exits"}'
```

La risposta:

```json
{
  "status": true,
  "data": {
    "result": {
      "section": "position_exits",
      "title": "Position exits",
      "summary": "Rules that close positions inside each strategy: a maximum holding time, a delay before reinvesting, a cap on open positions, a take profit and a stop loss. Each can be switched on or off.",
      "fields": [
        {
          "path": "subStrategies[].positionExits.maxHoldMonths",
          "name": "Max hold months",
          "type": "integer",
          "unit": "months",
          "default": 12,
          "enabledByDefault": false,
          "min": 1,
          "max": 120,
          "values": null,
          "steps": null,
          "boundsBy": null,
          "valuePlans": null,
          "planLimit": null
        },
        {
          "path": "subStrategies[].positionExits.reinvestDelayMonths",
          "name": "Reinvest delay",
          "type": "integer",
          "unit": "months",
          "default": 12,
          "enabledByDefault": false,
          "min": 1,
          "max": 120,
          "values": null,
          "steps": null,
          "boundsBy": null,
          "valuePlans": null,
          "planLimit": null
        },
        {
          "path": "subStrategies[].positionExits.maxPositions",
          "name": "Max positions",
          "type": "integer",
          "unit": "count",
          "default": 10,
          "enabledByDefault": true,
          "min": 1,
          "max": 50,
          "values": null,
          "steps": null,
          "boundsBy": null,
          "valuePlans": null,
          "planLimit": {
            "includedInYourPlan": true,
            "lowestPlan": "free",
            "yourMin": null,
            "yourMax": 10
          }
        },
        {
          "path": "subStrategies[].positionExits.takeProfit",
          "name": "Take profit",
          "type": "number",
          "unit": "fraction",
          "default": 1.5,
          "enabledByDefault": false,
          "min": 0.05,
          "max": 10,
          "values": null,
          "steps": null,
          "boundsBy": null,
          "valuePlans": null,
          "planLimit": null
        },
        {
          "path": "subStrategies[].positionExits.stopLoss",
          "name": "Stop loss",
          "type": "number",
          "unit": "fraction",
          "default": -0.3,
          "enabledByDefault": false,
          "min": -1,
          "max": -0.05,
          "values": null,
          "steps": null,
          "boundsBy": null,
          "valuePlans": null,
          "planLimit": null
        }
      ],
      "sections": [
        {
          "id": "overview",
          "title": "Overview"
        },
        {
          "id": "combined",
          "title": "Combined level"
        },
        {
          "id": "risk_conditions",
          "title": "Risk conditions"
        },
        {
          "id": "allocation",
          "title": "Allocation"
        },
        {
          "id": "sub_strategies",
          "title": "Sub-strategies"
        },
        {
          "id": "position_exits",
          "title": "Position exits"
        },
        {
          "id": "selection",
          "title": "Selection"
        },
        {
          "id": "user_settings",
          "title": "Simulation settings"
        }
      ]
    },
    "summary": "Position exits: 5 fields. Max positions is on by default and capped at 10 by your plan; the other four are off until you set them.",
    "assumed": [],
    "dataVersion": null
  }
}
```

Il riepilogo restituito:

> Position exits: 5 fields. Max positions is on by default and capped at 10 by your plan; the other four are off until you set them.

## Dove si sbaglia più spesso con Descrivi il modello di strategia?

- [Take profit](/it/glossario/take-profit) e stop loss sono frazioni: 1.5 è +150% e -0.3 è -30%, mentre l’app li mostra come percentuali.
- Un campo numerico può avere due massimi e due minimi: `max` e `min` sono quelli del prodotto, `planLimit.yourMax` e `planLimit.yourMin` quelli del tuo piano; vale il più stretto. Un campo con `steps` accetta solo quei numeri, e un campo con `boundsBy` prende i limiti del caso che il suo campo decisivo seleziona.
- Le uscite dalle posizioni si applicano dentro ogni strategia di una Combinata, non alla Combinata nel suo insieme.

## Quali codici di errore restituisce Descrivi il modello di strategia?

Descrivi il modello di strategia non ha codici di errore propri oltre a quelli comuni.

Ogni operazione può restituire anche i codici di errore comuni elencati in [Errori](/it/sviluppatori/open-api/gli-errori-dell-open-api-di-fincanva#quali-codici-di-errore-può-restituire-unoperazione-di-fincanva).

## Quali piani includono Descrivi il modello di strategia?

Descrivi il modello di strategia appartiene alla famiglia di operazioni «Creazione delle strategie» e conta come una chiamata di ricerca nella quota mensile del tuo piano. Quali piani includono il server MCP e l’Open API, e quanto sono ampie le loro quote, lo trovi in [Piani, quote e limiti](/it/sviluppatori/primi-passi/piani-quote-e-limiti).

Fincanva ha uno scopo solo educativo e illustrativo: non è una consulenza finanziaria personalizzata, e i risultati passati o simulati non indicano quelli futuri. [Leggi l'Addendum ai Termini](https://fincanva.com/it/terms/addendum#section-3)
