/////////////////////////////////////////////////////// // // SaherElm IT Center MQL5 Class Library // -------------------------------------- // Name: XHikenAshi Indicator Provider // Description: Provides Features ... // // // Maintainer: // ------------ // Hadi Khazaee Asl (hadi_khazaee_asl@yahoo.com) // ////////////////////////////////////////////////////// // // Global Properties ... #property library #property copyright "Copyright 2023, SaherElm IT Center" #property link "https://www.saherelm.ir" #property version "1.00" #property strict // // START Import and Inclused requirements ... // // // Includes ... #include "../Libraries/x-saherelm.alert.lib.mq5" #include "../Libraries/x-saherelm.models.lib.mq5" #include "../Libraries/x-saherelm.common.lib.mq5" // // END Import and Inclused requirements ... // // // START Definitions ... // // // XHikenAshi Exported Buffers ... enum ENUM_X_HIKENASHI_BUFFERS { // X_HK_OPEN_LINE = 0, X_HK_HIGH_LINE = 1, X_HK_LOW_LINE = 2, X_HK_CLOSE_LINE = 3, }; // // END Definitions ... // // // START Overrides ... // // // END Overrides ... // class XSCXHKHelper { // public: // // Properties ... double openBuffer[]; double highBuffer[]; double lowBuffer[]; double closeBuffer[]; // // Constructor ... void XSCXHKHelper() { mSymbol = _Symbol; mPeriod = _Period; } void XSCXHKHelper( // // Symbol ... string symbol, // // Period ... ENUM_TIMEFRAMES period, // // Buffer Reading ... int numberOfItemsReadPerTick = 52 // ) { // // Setting Requirements ... // // Symbol ... mSymbol = symbol; // // Period ... mPeriod = period; // // Number of Reading Buffer Items per Tick ... mNumberOfItemsReadPerTick = numberOfItemsReadPerTick; // mTag = "XHK " + mSymbol + ", " + ToString(mPeriod); // // Initial Handler ... mHandler = iCustom( mSymbol, mPeriod, "x-saherelm.x121.xhk", // // Inputs ... "", false, false // ); if (mHandler == INVALID_HANDLE) { LogMessage("failed to Initialize Indicator: " + (string)GetLastError()); } // ArraySetAsSeries(openBuffer, true); ArraySetAsSeries(highBuffer, true); ArraySetAsSeries(lowBuffer, true); ArraySetAsSeries(closeBuffer, true); } // // DeConstructor ... void ~XSCXHKHelper() { // // Release Indicators ... IndicatorRelease(mHandler); } // // Reading Buffers ... void ReadBuffers() { // // OPEN ... CopyBuffer( mHandler, X_HK_OPEN_LINE, 0, mNumberOfItemsReadPerTick, openBuffer); // // HIGH ... CopyBuffer( mHandler, X_HK_HIGH_LINE, 0, mNumberOfItemsReadPerTick, highBuffer); // // LOW ... CopyBuffer( mHandler, X_HK_LOW_LINE, 0, mNumberOfItemsReadPerTick, lowBuffer); // // CLOSE ... CopyBuffer( mHandler, X_HK_CLOSE_LINE, 0, mNumberOfItemsReadPerTick, closeBuffer); } // // START Tools Functions ... // // // END Tools Functions ... // // protected: // private: // // Symbol ... string mSymbol; // // Period ... ENUM_TIMEFRAMES mPeriod; // // Buffer Reading ... int mNumberOfItemsReadPerTick; // string mTag; // int mHandler; };