TpSlManager 0.0.1

dotnet add package TpSlManager --version 0.0.1                
NuGet\Install-Package TpSlManager -Version 0.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TpSlManager" Version="0.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TpSlManager --version 0.0.1                
#r "nuget: TpSlManager, 0.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install TpSlManager as a Cake Addin
#addin nuget:?package=TpSlManager&version=0.0.1

// Install TpSlManager as a Cake Tool
#tool nuget:?package=TpSlManager&version=0.0.1                

Ecco un README rivisitato basato sul fatto che il progetto riguarda l'integrazione con Quantower e fa uso del repository GitHub indicato:


Quantower SL/TP Builder

QuantowerSLTpBuilder è una libreria progettata per estendere la piattaforma Quantower permettendo una gestione flessibile delle condizioni di Stop Loss (SL) e Take Profit (TP). La libreria consente agli sviluppatori di implementare logiche personalizzate per la gestione degli ordini SL/TP utilizzando delegati e strategie dinamiche.

Caratteristiche

  • Delegati per SL e TP personalizzati: Gestione di logiche SL/TP completamente personalizzate tramite l'uso di delegati.
  • Integrazione diretta con Quantower: L'integrazione si basa sulla piattaforma Quantower, una piattaforma avanzata per il trading multi-asset.
  • Gestione centralizzata degli ordini: Creazione, gestione e aggiornamento degli ordini con SL e TP.
  • Supporto per più ordini simultanei: La libreria gestisce più ordini di SL e TP in modo flessibile e scalabile.
  • Logging e diagnostica: Integrazione con il sistema di logging di Quantower per tracciare gli errori e le operazioni sugli ordini.

Installazione

Clonare il repository

Per iniziare, clona il repository GitHub del progetto:

git clone https://github.com/Nico88-Vs/QuantowerSLTpBuilder.git
cd QuantowerSLTpBuilder

Compilare il progetto

Assicurati di avere il .NET SDK installato (versione 5.0 o successiva). Compila il progetto utilizzando:

dotnet build --configuration Release

Integrazione con Quantower

Per integrare questa libreria con Quantower:

  1. Compila la libreria come indicato sopra.
  2. Posiziona il file .dll generato nella cartella dei componenti aggiuntivi (custom add-ons) di Quantower.

Utilizzo

Definire le Condizioni di SL e TP

Definisci le tue strategie personalizzate per lo Stop Loss e il Take Profit utilizzando delegati personalizzati.

double CustomSlStrategy(object obj)
{
    // Logica personalizzata per lo Stop Loss
    return 100.0; // Esempio: 100 pips
}

double CustomTpStrategy(object obj)
{
    // Logica personalizzata per il Take Profit
    return 200.0; // Esempio: 200 pips
}

Configurare SlTpCondictionHolder

Configura il contenitore delle condizioni SL e TP utilizzando i delegati appena definiti.

var slDelegate = new SlTpCondictionHolder<double>.DefineSl[] { CustomSlStrategy };
var tpDelegate = new SlTpCondictionHolder<double>.DefineTp[] { CustomTpStrategy };
var slObjects = new double[] { 100.0 };
var tpObjects = new double[] { 200.0 };

var slTpCondictionHolder = new SlTpCondictionHolder<double>(slObjects, tpObjects, slDelegate, tpDelegate);

Creare e Gestire Ordini

Usa TpSlComputator per piazzare gli ordini con le condizioni di SL e TP definite.

var computator = new TpSlComputator<double>(slTpCondictionHolder);
computator.PlaceOrder(trade);

Per aggiornare gli ordini SL/TP:

computator.UpdateOrder(orderList, isTp: true);

Componenti Principali

SlTpCondictionHolder<T>

Questo struct memorizza i delegati e gli oggetti associati per le strategie di SL/TP.

  • Proprietà:

    • SlDelegate[]: Array di delegati per SL.
    • TpDelegate[]: Array di delegati per TP.
    • SlDelegateObj[]: Oggetti associati ai delegati SL.
    • TpDelegateObj[]: Oggetti associati ai delegati TP.
  • Costruttore:

    • Inizializza il contenitore con gli array di oggetti e delegati per SL e TP.
TpSlComputator<T>

Gestisce la logica per piazzare e aggiornare gli ordini con SL e TP.

  • Costruttore:

    • Richiede un'istanza di SlTpCondictionHolder<T> per inizializzare la logica di gestione degli ordini.
  • Metodi:

    • PlaceOrder(Trade trade): Piazza un ordine con SL e TP.
    • UpdateOrder(List<Order> orders, bool isTp): Aggiorna gli ordini esistenti.
SlTpItems

Questo contenitore rappresenta gli ordini principali, associando gli ordini di Stop Loss e Take Profit.

  • Proprietà:

    • EntryOrder: L'ordine principale di ingresso.
    • SlItems: Lista degli ordini SL.
    • TpItems: Lista degli ordini TP.
  • Metodi:

    • AddSl(Order order): Aggiunge un ordine SL.
    • AddTp(Order order): Aggiunge un ordine TP.

Logging

La libreria integra un sistema di logging per monitorare e gestire errori e messaggi diagnostici. Gli errori relativi al piazzamento o all'aggiornamento degli ordini vengono gestiti attraverso il sistema di logging di Quantower.

Core.Instance.Loggers.Log("Error placing SL", LoggingLevel.Error);

Assicurati di monitorare i log per risolvere eventuali problemi.

Contribuire

Se desideri contribuire al progetto, sentiti libero di fare una pull request o di aprire una issue nel repository GitHub.

  1. Fork del progetto
  2. Crea una branch per la tua feature (git checkout -b feature/AmazingFeature)
  3. Fai commit delle modifiche (git commit -m 'Aggiunta di una feature incredibile')
  4. Fai push alla branch (git push origin feature/AmazingFeature)
  5. Apri una Pull Request

Licenza

Questo progetto è distribuito sotto la licenza Apache 2.0 - consulta il file LICENSE per maggiori dettagli.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.1 99 10/2/2024