Logotipo de "E7 BBKG NumSharp Sample"
cBot
231 descargas
Versión 1.0, Feb 2025
Windows, Mac, Mobile, Web
Imagen cargada de "E7 BBKG NumSharp Sample"
Desde 18/12/2024
2
Ventas
4.11K
Instalaciones gratis

Como muchos de ustedes solicitaron, ahora estamos trabajando arduamente para proporcionar ejemplos de algunos de nuestros códigos y paquetes de aprendizaje automático.

TensorFlow, PyTorch, Keras, Numpy, Pandas y muchos más paquetes .NET para comenzar dentro de cTrader.

Nuestra misión es hacer que el aprendizaje automático dentro de cTrader sea más fácil para todos.

¡Buena caza!

*** Este código no realiza operaciones (solo imprime datos, etc.). Es simplemente un código de ejemplo de cómo puedes comenzar a crear tus propios modelos de IA usando nuestros paquetes de aprendizaje automático.

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

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("Versión 1.01", DefaultValue = "Versión 1.01")]
        public string Version { get; set; }

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

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

        [Parameter("Nombre del Método", DefaultValue = MethodName.DataSplitPrints)]
        public MethodName Mode { get; set; }
        public enum MethodName
        {
            DataSplitPrints,
            PandasPrints,
            NDArrayPrints
        }
        
        protected override void OnStart()
        {
            // Inicializar cualquier indicador
        }

        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($"Error: {ex.Message}");
                if (ex.InnerException != null)
                {
                    Print($"Excepción Interna: {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;
        }
        
        /// Impresiones de división de datos de NumSharp
        public void DataSplitPrints()
        {
            // Remodelar los datos de entrada para que coincidan con la forma esperada por el modelo
            //var inputShape = new Shape(-1, BarsRequired, 5);
            NDArray inputData = np.array<float>(GetDataSet());
            Print("NDarray de entrada: " + string.Join(", ", inputData));
            
            // Remodelar los datos objetivo para que coincidan con la forma objetivo esperada por el modelo
            //var targetShape = new Shape(-1, 5);
            NDArray targetData = np.array<float>(GetTargetDataSet());
            Print("NDarray objetivo: " + string.Join(", ", targetData));
            
            // Dividir los datos en conjuntos de entrenamiento y prueba
            int testSize = (int)(0.2 * inputData.shape[0]); // 20% para pruebas
            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("Datos X_train: " + string.Join(", ", x_train));
            Print("Datos X_test: " + string.Join(", ", x_test));
            Print("Datos Y_train: " + string.Join(", ", y_train));
            Print("Datos Y_test: " + string.Join(", ", y_test));
        }
        
        /// Impresiones de PandasNet
        public void PandasPrints()
        {
            // Convertir float[,] a 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()));
            }
            
            // Crear DataFrames
            DataFrame inputDataFrame = new DataFrame(inputSeriesList);
            DataFrame targetDataFrame = new DataFrame(targetSeriesList);
            
            Print("DataFrame de entrada: " + inputDataFrame);
            Print("DataFrame objetivo: " + targetDataFrame);
            
            //Print("Input DataFrame: " + string.Join(", ", inputDataFrame));
            //Print("Target DataFrame: " + string.Join(", ", targetDataFrame));
        }
        
        /// Impresiones simples de NDArray de NumSharp
        public void NDArrayPrints()
        {
            if (Bars.ClosePrices.Count < BarsRequired)
                return;

            try
            {
                // Llamando a tus datos de entrada float[,]
                float[,] inputData = GetDataSet();

                // Convertir a NDArray y remodelar a (BarsRequired, 5)
                NDArray inputNDArray = np.array(inputData);   // NumSharp
                Print("Datos de NDarray NumSharp de entrada : " + string.Join(", ", inputNDArray));
                Print("Forma de NDarray NumSharp de entrada: " + string.Join(", ", inputNDArray.shape));
                
                int expectedLength = BarsRequired * 5;
                Print($"Longitud esperada de NDarray NumSharp: {expectedLength}");
                Print($"Tamaño de NDarray NumSharp de entrada: {inputNDArray.size}");

                if (inputNDArray.size != expectedLength)
                {
                    Print($"Desajuste de longitud: longitud esperada {expectedLength}, pero se obtuvo tamaño {inputNDArray.size}");
                    return;
                }
            }
            catch (Exception ex)
            {
                Print("Excepción: " + ex.Message);
                Print("Rastro de pila: " + ex.StackTrace);

                Exception innerException = ex.InnerException;
                while (innerException != null)
                {
                    Print("Excepción interna: " + innerException.Message);
                    Print("Rastro de pila de excepción interna: " + innerException.StackTrace);
                    innerException = innerException.InnerException;
                }
            }
        }
    }
}

Perfil de operaciones
0.0
Valoraciones: 0
Valoraciones de clientes
Este producto todavía no se ha valorado. ¿Ya lo ha probado? Sea el primero en informar a otros.
AI
Los productos disponibles a través de cTrader Store, incluidos bots, indicadores y plugins para operar, son proporcionados por desarrolladores de terceros y están disponibles únicamente con fines informativos y de acceso técnico. cTrader Store no es un bróker, por lo que no proporciona asesoramiento de inversión, recomendaciones personales ni ninguna garantía de rentabilidad futura.

Más de este autor

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

Puede interesarle

cBot
AI
Grid
+4
Institutional-Grade AI for Retail Traders,Trade Like a Central Bank.
cBot
Prop
Forex
+5
**Quantum King : – Precision Trading for Forex{GBPUSD, EURUSD}, Gold & Oil** The **Quantum King**
cBot
EMA
SL Manager
+5
Fully automated dual-symbol hedging cBot for cTrader.
20.6%
ROI
8.66
Factor de beneficio
20%
Disminución máxima
cBot
Indices
DAX INTRADAY EXPIRY 17-10-2025
cBot
ADX
ATR
+5
Analyze quarterly cycles and weekly seasonality patterns across multiple instruments with historical bias data
cBot
ATR
No Overtrading
+3
Intelligent negotiations and analysis PRO!
21.2%
ROI
3
Factor de beneficio
2%
Disminución máxima
cBot
Prop
Forex
+2
Ultimate Trade Panel - a powerful, on-chart trading tool designed for precision and efficiency.
0.01
Factor de beneficio
0%
Disminución máxima
cBot
ATR
XAUUSD
+2
Long-only trend-following cBot for XAUUSD using EMA cross entries, ATR-based risk management, and pyramiding into strong
18.6%
ROI
1.59
Factor de beneficio
76.45%
Disminución máxima
cBot
Key Levels
SL Manager
+4
Multi-symbol dashboard with 3 fixed charts, dynamic position slots ranked by profit, Ratio analysis, MZ phase detection
cBot
Forex
BTCUSD
+4
OneClick SL/TP Setter — Smart Trade Management Made Simple
cBot
Trend strategy Algorithm 20 DAYS DEMO .,risk/reward ratio (R/R) of 1:2 ,efficient risk management.
cBot
Grid
XAUUSD
+2
🔥 Grid Classic – A Simple Yet Powerful Grid System
cBot
Prop Firm Fit
Stop Loss (SL) Manager
+1
HTS Strategy Tester - Advanced Multi-Timeframe Trend & Pullback Trading System H1/m1 & H4/m5 WWS 33/144 Start from 100$
90.1%
ROI
2.92
Factor de beneficio
37%
Disminución máxima
cBot
Forex
BTCUSD
+5
Intelligent negotiations and analysis!
47.3%
ROI
3
Factor de beneficio
2%
Disminución máxima
cBot
Calculates and Shows exact position size as a percentage of your current account balance
cBot
Volume
Imbalance
+3
VOLUME IMBALANCE STRIP A focused multi-timeframe imbalance visualization tool for cTrader.
cBot
MACD
Signal
+3
Dominate gold markets with Supertrend Gold – Backtested with +962% ROI!
cBot
Key Levels
SL Manager
+4
RISK REWARD VISUALIZER Part of the MACRO ZERO Suite Visualize your active positions, pending orders, and cl
Desde 18/12/2024
2
Ventas
4.11K
Instalaciones gratis