diff --git a/Classes/x-saherelm.x121.setup.cycle.class.mq5 b/Classes/x-saherelm.x121.setup.cycle.class.mq5 index 3ddeb4e9..2683ef8c 100644 --- a/Classes/x-saherelm.x121.setup.cycle.class.mq5 +++ b/Classes/x-saherelm.x121.setup.cycle.class.mq5 @@ -24,11 +24,41 @@ // Imports ... // +#include #include "../Classes/x-saherelm.x121.setup.class.mq5" // // Definitions ... +// +class X121SetupCycleScoreTracker : public XSCBase +{ + // + // Public ... +public: + // + // Define Bullish and Bearish Score ... + CArrayObj bullishScore; + CArrayObj bearishScore; + + // + // Tools ... + void AddScores( + double bullScore, + double bearScore // + ) { + // + // bullishScore + } + + // + // Protected ... +protected: + // + // Private ... +private: +}; + // // Inputs ... struct X121SetupCycleInputs diff --git a/Documents/NN/1.md b/Documents/NN/1.md new file mode 100644 index 00000000..e69de29b diff --git a/Documents/NN/Documents.md b/Documents/NN/Documents.md new file mode 100644 index 00000000..eec4046f --- /dev/null +++ b/Documents/NN/Documents.md @@ -0,0 +1,69 @@ +# Concepts of a Neural Network (NN) + +simulation of human nervous system in its ability to learn and adpt. + +## Units + +1. Inputs +2. Weights +3. Transfer Function + net output +4. Activation Function +5. Outputs + +### Flow + +1. Update and Provide our Inputs; +2. Transfer Function; +3. Net OutPut (Inputs and Weights); +4. Actiation Function; +5. Calculate Output; + +### Learnign + +it is a process to Change Weights of inputs based on results ... +this happens to algorithm improve itself optimization ... + +### Net + +in this process Inputs and their Weights collecting together. + +### Activation Function + +Recieved Net Inputs (Weighted Inputs) and then Calculate output based on them. + +## Multi Layer NN + +1. Input Layer; +2. Hidden Layer; +3. Output Layer; + +Hidden Layers recieved Data from all other layers at the end, then Populate as a Neuron. + +### Input Data Normalization + +a Process where all the input data normalized. +reduce data to an accepted ranges. +i.e. [0,1] or [-1, 1]. + +this peocess so important for us for making data more acceptable. + +this can done by some standard form: + +y = x - (x(min) * (d2 -d1)) / x(max - x(min)) + d1 + +x => value to normalized; +x(min)/x(max) => x Value range max and min; +d1,d2 => ranges to upper and lower normalization; + +### Activation Functions + +a function which calculate the output of a neuron. +it recieved a Net Input (Weighted functions); + +1. Unit Step / Hard Threshold Functions; +2. Sigmoid Function; +3. Hyperbolic Tangent Function; + +## Unti Step + +a Graph by y axix Output and x axix Net Input and values in y between 0, 1 and x is 0 to TETA or threshold. diff --git a/Experts/x-nn-test.mq5 b/Experts/x-nn-test.mq5 new file mode 100644 index 00000000..a13555ef --- /dev/null +++ b/Experts/x-nn-test.mq5 @@ -0,0 +1,104 @@ +/////////////////////////////////////////////////////// +// +// SaherElm IT Center XNNTest MQL5 Expert Advisor +// ------------------------------------------------- +// Name: XNNTest +// Description: an Exper Advisor which used RSI and MA +// to Analyse Market ... +// +// Maintainer: +// ------------ +// Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com) +// +//////////////////////////////////////////////////////x +// +// Global Properties ... +#property copyright "Copyright 2023, SaherElm IT Center" +#property link "https://saherelm.ir" +#property version "1.00" +#property description "SaherElm XNNTest" +#property strict + +// +#include "../Classes/x-saherelm.xczone.class.mq5" + +// +#define ShortName "XNNTest" + +// +// Inputs ... + +// +// Variables ... +int barsTotal; + +// +// Initialization ... +int OnInit() +{ + // + if (!InitialEA()) + { + return INIT_PARAMETERS_INCORRECT; + } + + // + // Init Succeed ... + return INIT_SUCCEEDED; +} + +// +// DeInitialization ... +void OnDeinit(const int reason) +{ + // + // REASON_PROGRAM 0 The EA has stopped working calling the ExpertRemove() function + // REASON_REMOVE 1 Program removed from a chart + // REASON_RECOMPILE 2 Program recompiled + // REASON_CHARTCHANGE 3 A symbol or a chart period is changed + // REASON_CHARTCLOSE 4 Chart closed + // REASON_PARAMETERS 5 Inputs changed by a user + // REASON_ACCOUNT 6 Another account has been activated or reconnection to the trade server has occurred due to changes in the account settings + // REASON_TEMPLATE 7 Another chart template applied + // REASON_INITFAILED 8 The OnInit() handler returned a non-zero value + // REASON_CLOSE 9 Terminal closed + + // + // De Initialize XSampleEA Providers ... +} + +// +// On Tick Handler ... +void OnTick() +{ + // + int bars = iBars( + _Symbol, + _Period // + ); + if (barsTotal == bars) + { + return; + } + + // + barsTotal = bars; +} + +// +// + +// +bool InitialEA() +{ + // + bool result = false; + + // + result = true; + + // + return result; +} + +// \ No newline at end of file diff --git a/Experts/x-saherelm.x121.ea.mq5 b/Experts/x-saherelm.x121.ea.mq5 index 4bb45ac1..a91f5177 100644 --- a/Experts/x-saherelm.x121.ea.mq5 +++ b/Experts/x-saherelm.x121.ea.mq5 @@ -59,7 +59,7 @@ input bool x121EAUseGrid = true; // Use Grid Signals input double x121EAGridDistance = 50; // Grid Distance input double x121EAGridVolumeMultiplier = 2; // Grid Volume Multiplier input double x121EAMinRequiredProfitPerTrade = 1; // Minimum Required Profit for Hedging -input double x121EAMinRequiredProfitPerVolumeFactor = 0.1; // Minimum Required Profit for Hedging Per Velume +input double x121EAMinRequiredProfitPerVolumeFactor = 0.1; // Minimum Required Profit for Hedging Per Volume input int x121EARestingAfterHedge = 0; // Resting Seconds After Hedge input int x121EACloseOnSpecificTime = -1; // Close All Trades in Specific Time input bool x121EACloseOnOpposit = false; // Close all Positions on Opposit