Logotipo de "E7 BBKG NumSharp Sample"
cBot
218 descargas
Versión 1.0, Feb 2025
Windows, Mac, Mobile, Web
Imagen cargada de "E7 BBKG NumSharp Sample"
Desde 18/12/2024
2
Ventas
4K
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

Logotipo de "E7 Volume Profile"
Mejor valorado
4.6
(3)
Gratis
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
ATR
NAS100
+5
A trading robot designed for traders who want precision for high-volatility markets (XAUUSD, US500, US100, WTI, others.)
cBot
Prop Firm Fit
Risk Dashboard
+1
Advanced prop firm risk protection and automation suite for cTrader traders.
cBot
RSI Scalping cBot—plug‑and‑play precision scalper for volatile indexes and symbols.
cBot
AI
RSI
+5
H1 and L1 BOT — Pure Price Action Automation - NEW VERSION IN PROGRESS...
1.52
Factor de beneficio
0.5%
Disminución máxima
cBot
AI
ATR
+27
Review and User Guide: PROP Account Guardian Pro cBot 🛡️
cBot
ATR
RSI
+3
Intelligent system, Available any instrument. Profit 12. Drawdown 1%
cBot
RSI Scalping cBot scalper for volatile indexes.
cBot
AI
Grid
+3
No holy grail here. No get rich quick scheme. No perfect equity. No guaranteed profits, but a robust breakout system.
cBot
EMA
Volume
+5
Sniper Entry Bot – Advanced EMA Crossover Trading Robot for cTrader
677%
ROI
2.52
Factor de beneficio
11.53%
Disminución máxima
Logotipo de "AURIX"
Popular
5.0
(2)
$39
/
$78
cBot
AI
Grid
+4
Where Algorithmic Precision Meets Gold’s Volatility. AI-Powered Gold Trading Algorithm for cTrader.
cBot
AI
ATR
+8
AI Trading that you can adjust to your own strategy, this AI will do a work for you, Adjust to suit your own strategy
cBot
Free Test ... over 8.000.000 % ROI and 99 % win rate
cBot
Prop
Forex
+11
Risk On Trade Lite | Auto Position Size Calculator for cTrader | Risk & Reward Tool | Auto Lot Size Calculator
cBot
ADX
EMA
+5
Precision-focused trading system for DAX, designed for controlled risk and high-quality trade execution.
19.8%
ROI
3.01
Factor de beneficio
8.81%
Disminución máxima
cBot
Prop
Forex
+9
Forex Wizard
cBot
AI
ATR
+27
Depth of Market + VIX Bot - Complete Analysis
cBot
ATR
RSI
+8
Advanced-Pro-CBot V5: A Cutting-Edge Algorithmic Trading cBot for cTrader
Desde 18/12/2024
2
Ventas
4K
Instalaciones gratis