Logo de "E7 BBKG NumSharp Sample"
cBot
231 téléchargements
Version 1.0, Feb 2025
Windows, Mac, Mobile, Web
Image mise en ligne de "E7 BBKG NumSharp Sample"
Depuis le 18/12/2024
2
Ventes
4.1K
Installations gratuites

Comme beaucoup d'entre vous l'ont demandé, nous travaillons maintenant dur pour fournir des exemples de certains de nos codes et packages d'apprentissage automatique.

TensorFlow, PyTorch, Keras, Numpy, Pandas et bien d'autres packages .NET pour démarrer dans cTrader.

Notre mission est de rendre l'apprentissage automatique dans cTrader plus facile pour tout le monde.

Bonne chasse !

*** Ce code ne réalise aucun trade (il affiche seulement des données, etc.). C'est simplement un exemple de code montrant comment vous pouvez commencer à créer vos propres modèles d'IA en utilisant nos packages d'apprentissage automatique.

.......................................................

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

using NumSharp;
using np = NumSharp.np;
using Shape = NumSharp.Shape;

using PandasNet;
using static PandasNet.PandasApi;

namespace cAlgo.Robots
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class E7BBKGNumSharpSample : Robot
    {
        [Parameter("Version 1.01", DefaultValue = "Version 1.01")]
        public string Version { get; set; }

        [Parameter("Source")]
        public DataSeries Source { get; set; }

        [Parameter("Bars Required", DefaultValue = 50, MinValue = 1, MaxValue = 10000, Step = 1)]
        public int BarsRequired { get; set; }

        [Parameter("Method Name", DefaultValue = MethodName.DataSplitPrints)]
        public MethodName Mode { get; set; }
        public enum MethodName
        {
            DataSplitPrints,
            PandasPrints,
            NDArrayPrints
        }
        
        protected override void OnStart()
        {
            // Initialiser les indicateurs
        }

        protected override void OnBar()
        {
            try
            {
                if (Mode == MethodName.DataSplitPrints)
                {
                    DataSplitPrints();
                }
                else if (Mode == MethodName.PandasPrints)
                {
                    PandasPrints();
                }
                else if (Mode == MethodName.NDArrayPrints)
                {
                    NDArrayPrints();
                }
            }
            catch (Exception ex)
            {
                Print($"Erreur : {ex.Message}");
                if (ex.InnerException != null)
                {
                    Print($"Exception interne : {ex.InnerException.Message}");
                    throw;
                }
            }
        }

        private float[,] GetDataSet()
        {
            int startBar = Bars.ClosePrices.Count - BarsRequired;
            float[,] inputSignals = new float[BarsRequired, 5];

            for (int i = 0; i < BarsRequired; i++)
            {
                int barIndex = startBar + i;
                inputSignals[i, 0] = (float)Bars.OpenPrices[barIndex];
                inputSignals[i, 1] = (float)Bars.HighPrices[barIndex];
                inputSignals[i, 2] = (float)Bars.LowPrices[barIndex];
                inputSignals[i, 3] = (float)Bars.ClosePrices[barIndex];
                inputSignals[i, 4] = (float)Bars.TickVolumes[barIndex];
            }
            return inputSignals;
        }
        
        private float[,] GetTargetDataSet()
        {
            int startBar = Bars.ClosePrices.Count - BarsRequired;
            float[,] inputSignals = new float[BarsRequired, 5];

            for (int i = 0; i < BarsRequired; i++)
            {
                int barIndex = startBar + i;
                inputSignals[i, 0] = (float)Bars.OpenPrices[barIndex];
                inputSignals[i, 1] = (float)Bars.HighPrices[barIndex];
                inputSignals[i, 2] = (float)Bars.LowPrices[barIndex];
                inputSignals[i, 3] = (float)Bars.ClosePrices[barIndex];
                inputSignals[i, 4] = (float)Bars.TickVolumes[barIndex];
            }
            return inputSignals;
        }
        
        /// Impressions de la séparation des données NumSharp
        public void DataSplitPrints()
        {
            // Remodeler les données d'entrée pour correspondre à la forme attendue par le modèle
            //var inputShape = new Shape(-1, BarsRequired, 5);
            NDArray inputData = np.array<float>(GetDataSet());
            Print("NDarray d'entrée : " + string.Join(", ", inputData));
            
            // Remodeler les données cibles pour correspondre à la forme cible attendue par le modèle
            //var targetShape = new Shape(-1, 5);
            NDArray targetData = np.array<float>(GetTargetDataSet());
            Print("NDarray cible : " + string.Join(", ", targetData));
            
            // Diviser les données en ensembles d'entraînement et de test
            int testSize = (int)(0.2 * inputData.shape[0]); // 20 % pour les tests
            var (x_train, x_test) = (inputData[$":{inputData.shape[0] - testSize}"], inputData[$"{inputData.shape[0] - testSize}:"]);
            var (y_train, y_test) = (targetData[$":{targetData.shape[0] - testSize}"], targetData[$"{targetData.shape[0] - testSize}:"]);
            
            Print("Données X_train : " + string.Join(", ", x_train));
            Print("Données X_test : " + string.Join(", ", x_test));
            Print("Données Y_train : " + string.Join(", ", y_train));
            Print("Données Y_test : " + string.Join(", ", y_test));
        }
        
        /// Impressions PandasNet
        public void PandasPrints()
        {
            // Convertir float[,] en List<Series>
            var inputData = GetDataSet();
            var targetData = GetTargetDataSet();
            
            var inputSeriesList = new List<Series>();
            var targetSeriesList = new List<Series>();
            
            for (int col = 0; col < inputData.GetLength(1); col++)
            {
                List<float> columnData = new List<float>();
                for (int row = 0; row < inputData.GetLength(0); row++)
                {
                    columnData.Add(inputData[row, col]);
                }
                inputSeriesList.Add(new Series(columnData.ToArray()));
            }
            
            for (int col = 0; col < targetData.GetLength(1); col++)
            {
                List<float> columnData = new List<float>();
                for (int row = 0; row < targetData.GetLength(0); row++)
                {
                    columnData.Add(targetData[row, col]);
                }
                targetSeriesList.Add(new Series(columnData.ToArray()));
            }
            
            // Créer des DataFrames
            DataFrame inputDataFrame = new DataFrame(inputSeriesList);
            DataFrame targetDataFrame = new DataFrame(targetSeriesList);
            
            Print("DataFrame d'entrée : " + inputDataFrame);
            Print("DataFrame cible : " + targetDataFrame);
            
            //Print("Input DataFrame: " + string.Join(", ", inputDataFrame));
            //Print("Target DataFrame: " + string.Join(", ", targetDataFrame));
        }
        
        /// Impressions simples des NDArrays NumSharp
        public void NDArrayPrints()
        {
            if (Bars.ClosePrices.Count < BarsRequired)
                return;

            try
            {
                // Appel de vos données d'entrée float[,]
                float[,] inputData = GetDataSet();

                // Convertir en NDArray et remodeler en (BarsRequired, 5)
                NDArray inputNDArray = np.array(inputData);   // NumSharp
                Print("Données NDarray NumSharp d'entrée : " + string.Join(", ", inputNDArray));
                Print("Forme NDarray NumSharp d'entrée : " + string.Join(", ", inputNDArray.shape));
                
                int expectedLength = BarsRequired * 5;
                Print($"Longueur NDarray NumSharp attendue : {expectedLength}");
                Print($"Taille NDarray NumSharp d'entrée : {inputNDArray.size}");

                if (inputNDArray.size != expectedLength)
                {
                    Print($"Incohérence de longueur : longueur attendue {expectedLength}, mais taille obtenue {inputNDArray.size}");
                    return;
                }
            }
            catch (Exception ex)
            {
                Print("Exception : " + ex.Message);
                Print("Trace de la pile : " + ex.StackTrace);

                Exception innerException = ex.InnerException;
                while (innerException != null)
                {
                    Print("Exception interne : " + innerException.Message);
                    Print("Trace de la pile de l'exception interne : " + innerException.StackTrace);
                    innerException = innerException.InnerException;
                }
            }
        }
    }
}

Profil de trading
0.0
Avis : 0
Avis clients
Il n'y a pas encore d'avis sur ce produit. Vous l'avez déjà essayé ? Soyez le premier à en parler aux autres !
AI
Les produits disponibles sur cTrader Store, notamment les bots de trading, les indicateurs et les plug-ins, sont fournis par des développeurs tiers et mis à disposition à titre informatif et à des fins d'accès technique uniquement. cTrader Store n'est pas un courtier et ne fournit aucun conseil en investissement, aucune recommandation personnelle ni aucune garantie quant aux performances futures.

Plus de cet auteur

Indicateur
E7 Volume Profile, more modern look and feel.
Indicateur
Prop
E7 BBKG indicator with 80% plus accuracy used to show both, possible reversal and trend.
Indicateur
Polynomial Regression Channel which also reflects the volatility of the underlying asset.
Indicateur
E7 Harmonic Structures Basic.
Indicateur
E7 Correlation Dashboard.
Indicateur
Bollinger
Bollinger Band Cloud, Heiken Ashi, Trend Follower and Parabolic SAR.
Indicateur
Indices
Option pricing using the BlackScholes model and the Math.Numerics packages
Indicateur
Bollinger
ADXR, KDJ, SineWave, Bollinger Band Volatility and AEOscillator.
Indicateur
cTrader ID

Vous pourriez aussi aimer

cBot
RSI
Aggressive
automates entries based on the RSX indicator — a smoothed, low-lag variant of the classic RSI.
1.67
Facteur de profit
10.25%
Diminution maximale
cBot
RSI
MACD
+3
N.B.: Results with an initial invested capital of 100 euros.
cBot
BTCUSD
Crypto
+1
Demo version of https://ctrader.com/products/318
cBot
EMA
SL Manager
+5
Fully automated dual-symbol hedging cBot for cTrader.
20.6%
ROI
8.66
Facteur de profit
20%
Diminution maximale
cBot
Grid
XAUUSD
+2
🔥 Grid Classic – A Simple Yet Powerful Grid System
cBot
Forex
BTCUSD
+13
Automatically manages Stop Loss and Take Profit using Support & Resistance levels, with intelligent trailing stop protec
cBot
ADX
ATR
+5
Analyze quarterly cycles and weekly seasonality patterns across multiple instruments with historical bias data
cBot
Perfectly optimized to trade XAUUSD. Win rate of about 85 to 90%.
cBot
ATR
Forex
+4
Automate SL & Trailing for manual trades. Independent Buy/Sell logic. Chandelier Exit & ATR support.
cBot
Key Levels
SL Manager
+4
RISK REWARD VISUALIZER Part of the MACRO ZERO Suite Visualize your active positions, pending orders, and cl
cBot
Channel
SL Manager
+4
cTrader to Telegram trade notifier with custom message formats, risk alerts, and an on-chart dashboard.
cBot
Prop
Forex
+3
Trade XAUUSD at lightning speed using Stream Deck. One-tap execution for entries, partial closes, break-even, TP & SL.
100%
ROI
2
Facteur de profit
5%
Diminution maximale
cBot
Fixed Lot
VPS Recommended
+3
A high-performance cTrader local trade copier . Copy positions and pending orders between multiple terminals instantly.
cBot
Volume
Imbalance
+3
VOLUME IMBALANCE STRIP A focused multi-timeframe imbalance visualization tool for cTrader.
cBot
AI
SMC
+18
RISK SHIELD VERSION 2.0 - Smart Risk Manager for cTrader
cBot
Forex
Stocks
+1
The full version includes access to all features and customization options. It is designed for users who require advance
cBot
ATR
XAUUSD
+1
XAUUSD Engulfing Master - Professional Trading Bot
41.3%
ROI
1.85
Facteur de profit
41.98%
Diminution maximale
cBot
MACD
Signal
+3
Dominate gold markets with Supertrend Gold – Backtested with +962% ROI!
Depuis le 18/12/2024
2
Ventes
4.1K
Installations gratuites