โบรกเกอร์และ Props
สำหรับธุรกิจ
00
Days
:
00
Hours
:
00
Minutes
:
00
Seconds
E7 BBKG NumSharp Sample
03/09/2025
130
Desktop, Mobile, Web
ตั้งแต่ 18/12/2024
การขาย
1
ติดตั้งฟรี
3051
"E7 BBKG NumSharp Sample" ภาพที่อัปโหลด

As requested by many of you, we are now working hard to provide examples of some of our machine learning code and packages.

TensorFlow, PyTorch, Keras, Numpy, Pandas and many more .NET packages to get going inside of cTrader.

Our mission is to make Machine Learning inside cTrader easier for everyone.

Happy hunting!

*** This code does not trade anything (it only prints out data etc). It is simply sample code of how you can start creating your own AI models using our Machine Learning packages.

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

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()
        {
            // Initialize any indicators
        }

        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($"Inner Exception: {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;
        }
        
        /// NumSharp Data Split Prints
        public void DataSplitPrints()
        {
            // Reshape input data to match the model's expected input shape
            //var inputShape = new Shape(-1, BarsRequired, 5);
            NDArray inputData = np.array<float>(GetDataSet());
            Print("Input NDarray: " + string.Join(", ", inputData));
            
            // Reshape target data to match the target shape expected by the model
            //var targetShape = new Shape(-1, 5);
            NDArray targetData = np.array<float>(GetTargetDataSet());
            Print("Target NDarray: " + string.Join(", ", targetData));
            
            // Split data into training and test sets
            int testSize = (int)(0.2 * inputData.shape[0]); // 20% for testing
            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("X_train data: " + string.Join(", ", x_train));
            Print("X_test data: " + string.Join(", ", x_test));
            Print("Y_train data: " + string.Join(", ", y_train));
            Print("Y_test data: " + string.Join(", ", y_test));
        }
        
        /// PandasNet Prints
        public void PandasPrints()
        {
            // Convert float[,] to 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()));
            }
            
            // Create DataFrames
            DataFrame inputDataFrame = new DataFrame(inputSeriesList);
            DataFrame targetDataFrame = new DataFrame(targetSeriesList);
            
            Print("Input DataFrame: " + inputDataFrame);
            Print("Target DataFrame: " + targetDataFrame);
            
            //Print("Input DataFrame: " + string.Join(", ", inputDataFrame));
            //Print("Target DataFrame: " + string.Join(", ", targetDataFrame));
        }
        
        /// Simple NumSharp NDArrays Prints
        public void NDArrayPrints()
        {
            if (Bars.ClosePrices.Count < BarsRequired)
                return;

            try
            {
                // Calling your Input Data float[,]
                float[,] inputData = GetDataSet();

                // Convert to NDArray and reshape to (BarsRequired, 5)
                NDArray inputNDArray = np.array(inputData);   // NumSharp
                Print("Input NumSharp NDarray Data : " + string.Join(", ", inputNDArray));
                Print("Input NumSharp NDarray Shape: " + string.Join(", ", inputNDArray.shape));
                
                int expectedLength = BarsRequired * 5;
                Print($"Expected NumSharp NDarray Length: {expectedLength}");
                Print($"Input NumSharp NDarray Size: {inputNDArray.size}");

                if (inputNDArray.size != expectedLength)
                {
                    Print($"Length MisMatch: Expected Length {expectedLength}, but got Size {inputNDArray.size}");
                    return;
                }
            }
            catch (Exception ex)
            {
                Print("Exception: " + ex.Message);
                Print("StackTrace: " + ex.StackTrace);

                Exception innerException = ex.InnerException;
                while (innerException != null)
                {
                    Print("Inner Exception: " + innerException.Message);
                    Print("Inner Exception StackTrace: " + innerException.StackTrace);
                    innerException = innerException.InnerException;
                }
            }
        }
    }
}

0.0
รีวิว: 0
รีวิวจากลูกค้า
ยังไม่มีรีวิวสำหรับผลิตภัณฑ์นี้ หากเคยลองแล้ว ขอเชิญมาเป็นคนแรกที่บอกคนอื่น!
เพิ่มเติมจากผู้เขียนคนนี้
เรตติ้งสูง
ฟรี
E7 Volume Profile
E7 Volume Profile, more modern look and feel.
ยอดนิยม
$ 25
/
$50
E7 BBKG Indicator
E7 BBKG indicator with 80% plus accuracy used to show both, possible reversal and trend.
เรตติ้งสูง
ฟรี
E7 Polynomial Regression Channel
Polynomial Regression Channel which also reflects the volatility of the underlying asset.
เรตติ้งสูง
ฟรี
E7 Harmonic Structures Basic
E7 Harmonic Structures Basic.
E7 Correlation Dashboard
E7 Correlation Dashboard.
เรตติ้งสูง
ฟรี
E7 Indicators Free Overlays
Bollinger Band Cloud, Heiken Ashi, Trend Follower and Parabolic SAR.
E7 BlackScholes Model
Option pricing using the BlackScholes model and the Math.Numerics packages
E7 Indicators Free Studies
ADXR, KDJ, SineWave, Bollinger Band Volatility and AEOscillator.
นอกจากนี้คุณยังอาจชอบ
ofir ash
ai bot - ema crossing with right parameters
ยอดนิยม
$ 35
cBot
XAUUSD
Breakout
Martingale
+1
Ninja cBot
No holy grail here. No get rich quick scheme. No perfect equity. No guaranteed profits, but a robust breakout system.
cBot
Grid
EURUSD
DistEMATrendBot1.1 (demo)
A trend following cBot using moving averages, ADX, and least squares regression to identify and extrapolate a trend.
cBot
Grid
RSI
Bollinger
BB and RSI - Grid and Equity SL (Made with AlgoBuilderX)
This strategy opens grid trades based on Bollinger Bands and RSI, with customizable settings and strong risk management.
cBot
Indices
Master_Muster
Muster Master ond for all Symbole
cBot
RSI
Breakout
XAUUSD
+7
Professional Multi-Tech EA Demo
Advanced Trading Robot - RSI + MACD + Ichimoku Strategy with Dynamic Risk Management for Gold and Major Currency Pairs
cBot
NAS100
Indices
XAUUSD
+6
Matrix Rubber
🎯Professional mean reversion bot with 7 intelligent exit mechanisms. Eliminates catastrophic drawdowns.🎯
ยอดนิยม
$ 25
/
$50
cBot
Indices
RSI
XAUUSD
+4
SMATAN3
📊 EMA CROSS COMPLETE BOT - Professional Trading System
cBot
Grid
Keltner & Parabolic SAR Grid (Made with AlgoBuilderX)
This strategy uses Keltner Channels, Parabolic SAR, Grid strategy and session filters
cBot
Indices
Prop
Stocks
+2
ProRiskPanel
FTMO Guardian. Auto-calculates lots by Risk $. Rejects errors & trades w/o SL. Protect your Prop Account
cBot
RSI
XAUUSD
Breakout
+11
Super USD Trio AI-DEMO
Super USD Trio AI is a smart, multi-symbol Forex trading robot tailored for EURUSD, USDJPY, and GBPUSD.
cBot
Grid
Breakout
XAUUSD
+2
Ninja cBot free trial
No holy grail here. No get rich quick scheme. No perfect equity. No guaranteed profits, but a robust breakout system.
cBot
XAUUSD
Forex
Dax Smart Trader Trial Day 15
Dax Smart Trader Trial Day 15
cBot
NAS100
Indices
NZDUSD
+7
RiskPilot One-Click Trader - FULL
RiskPilot is a clean, fast trade panel for cTrader that sizes positions by account risk % in a single click.
ยอดนิยม
$ 19
USH-AUDUSD
Perfectly optimized to trade AUDUSD. Over 85% win rate
cBot
Forex
USDJPY
bolsa
Test the AUDJPY, UDSJPY and CADCHF in 15 min
cBot
RSI
XAUUSD
Forex
+10
proactive swing detector advanced
proactive swing detection and entry with multiple trade filters..high stable returns,minimal drawdowns
cBot
XAUUSD
Commodities
Gold Scalper V2 Demo_noSourceCode
Gold Sclaper V2 Demo – The Initial Release of the Intelligent Trading Bot