Convert Single Symbol function to Multi Symbol

仕事が完了した

実行時間20 分
依頼者からのフィードバック
Highly recommended, Work delivered very fast and with 100% satisfaction,

指定

ON an EA (not for trading but only for reading buffers) which has a function SearchZigZagExtremums

I want this function to be converted into multi symbols  multi period

below is my attempt to modify the free program which is available in mql codebase

//+------------------------------------------------------------------+
//|                           ZigZag EA(barabashkakvn's edition).mq5 |
//|                                   Copyright © 2009, Tokman Yuriy |
//|                                            yuriytokman@gmail.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Tokman Yuriy"
#property link      "yuriytokman@gmail.com"
#property version   "1.002"

//--- input parameters
input string      ____1___          = "Настройки индикатора ZigZag";
input int         ExtDepth          = 12;             // Depth
input int         ExtDeviation      = 5;              // Deviation
input int         ExtBackstep       = 3;              // Backstep
//---
//---
int            handle_iCustom;               // variable for storing the handle of the iCustom indicator
#define RESET 0
int min_rates_total;
int symbolCount;
string symbolsList[];
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit() {
//---
   min_rates_total=100;
//--- indicator buffers mapping
   symbolCount=SymbolsTotal(true);
   if( ArrayResize(symbolsList, symbolCount) < symbolCount ) return (INIT_FAILED);

//--- create handle of the indicator iCustom
   for(int i=0; i<symbolCount; i++) {
      symbolsList[i] = SymbolName(i,true);
      handle_iCustom=iCustom(symbolsList[i],Period(),"Examples\\ZigZag");
//--- if the handle is not created
      if(handle_iCustom==INVALID_HANDLE) {
         //--- tell about the failure and output the error code
         PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
                     symbolsList[i],
                     EnumToString(Period()),
                     GetLastError());

         //--- the indicator is stopped early
         return(INIT_FAILED);
      }
   }

//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---

}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
//---

//---
for(int j=0; j<symbolCount; j++) {
      symbolsList[j] = SymbolName(j,true);
      
   double array_results[];
 
      if(!SearchZigZagExtremums(4,array_results))
         return;
         
      double high=0.0,low=0.0;
      double room_0 = array_results[0]; // index 0
      double room_1 = array_results[1]; // index 1
      double room_2 = array_results[2]; // index 2
      double room_3 = array_results[3]; // index 3

//--- находим верх и низ
      if(room_1>room_2) {
         high=room_1;
         low=room_2;
      } else {
         high=room_2;
         low=room_1;
      }
     
      Print(symbolsList[j], array_results[0]);
      Sleep(1000);
      }
      


//---

   }

//+------------------------------------------------------------------+
//| Search for indicator extremums                                   |
//+------------------------------------------------------------------+
   bool SearchZigZagExtremums(const int count,double &array_results[]) {
      if(!ArrayIsDynamic(array_results)) {
         Print("This a no dynamic array!");
         return(false);
      }
      ArrayFree(array_results);
      ArrayResize(array_results,count);
      ArraySetAsSeries(array_results,true);
      int      buffer_num=0;           // indicator buffer number
      double   arr_buffer[];
      ArraySetAsSeries(arr_buffer,true);
//--- reset error code
      ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer
      int copied=CopyBuffer(handle_iCustom,buffer_num,0,100,arr_buffer);
      if(copied<0) {
         //--- if the copying fails, tell the error code
         PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
         //--- quit with zero result - it means that the indicator is considered as not calculated
         return(false);
      }
      int elements=0;
      for(int i=0; i<copied; i++) {
         if(arr_buffer[i]!=0) {
            array_results[elements]=arr_buffer[i];
            elements++;
            if(elements==count)
               break;
         }
      }
      if(elements==count)
         return(true);
//---
      return(false);
   }


Goal : I want this program to be modified so it can read buffers 

      double room_0 = array_results[0]; // index 0
      double room_1 = array_results[1]; // index 1
      double room_2 = array_results[2]; // index 2
      double room_3 = array_results[3]; // index 3

for each symbol existed in marketwatch and when i print

Print(symbolsList[j], array_results[0]);

I get results like

Symbol_1 buffer_for_Symbol_1 for PERIOD_1

Symbol_2 buffer_for_Symbol_2 for PERIOD_2

like this

応答済み

1
開発者 1
評価
(361)
プロジェクト
643
26%
仲裁
92
72% / 14%
期限切れ
12
2%
仕事中
パブリッシュした人: 1 code
2
開発者 2
評価
(38)
プロジェクト
50
10%
仲裁
1
0% / 0%
期限切れ
8
16%
類似した注文
//+------------------------------------------------------------------+ //| Vinh_TradeCode.mq5 | //| BTC Double Bottom / Double Top EA (MT5 - MQL5) | //+------------------------------------------------------------------+ #property strict #property version "1.01" #include <Trade/Trade.mqh> CTrade trade; //==================== INPUT ==================== input long MagicNumber =
I need to create an MT5 expert advisor that enters and exits based on my custom Fibonacci levels connecting with the proper highs and lows. all details provided in the text document fyi
hello great developer I need help developing an ICT 2022 model indicator and testing it thoroughly to ensure optimal performance and accuracy. Scope of work - Create an ICT 2022 model indicator with specified features. - Conduct repeated tests and strategy tests to refine the indicator. - Implement midnight to 9:30 box high and low range settings. - Include signal settings for major liquidity and structure break with
Floating bot 30+ USD
I need someone to build an easy bot for me. Whenever the candle closes outside a particular horizonal line I will put on my mt5 chart then immediately after the candle close there will be an instant execution trade after the close of the candle and the sl will be at the current last low or high below or above for buy or sell. I will have a place where I will input the amount to be risked by one pair. For instance in
Buscamos un desarrollador experto en MQL5 (MetaTrader 5) para crear un Expert Advisor (EA) profesional , completamente autónomo, seguro y escalable, con entradas y salidas automáticas , backtesting integrado y panel de control paramétrico . El EA será de propiedad intelectual exclusiva del cliente y deberá diseñarse desde el inicio para ampliaciones futuras (nuevas estrategias, multi-par, integración con Python /
Core Requirements: Two selectable timeframes - dropdown inputs to choose from M1, M5, M15, H1, H4, D1, W1, MN1 Timeframe 1 = Chart's own timeframe (if chart is M5, TF1 should be M5) Timeframe 2 = Higher timeframe for confluence All Ichimoku components displayed for both timeframes: Tenkan-sen Kijun-sen Senkou Span A Senkou Span B Chikou Span Cloud (bullish and bearish) Technical Settings: All buffers accessible for
I need experience developer on mt5, simple strategy and basic inputs on take profit, stoploss closing candle, and average profit, average loss and lot increment and some inputs come to private I will be explain all
I have EA available for boom 900 able to make 30$ daily from 100$ . I need investors to partner together and create a substantial capital for greater gains and equitable pooling and distribution
Trade copier 80+ USD
I need a local trade copier solution to transmit trades from MT4 and MT5 to NinjaTrader 8 instantly for arbitrage purposes, with ultra-low latency and no cloud services involved. Scope of work - Develop MT4/MT5 EA or script for detecting and sending trades locally. - Create NT8 NinjaScript for listening to and executing trades. - Support market orders and lot size conversion. - Implement symbol mapping for trades. -
Trading Bot 50+ USD
hello great developer I want to develop a trading bot which connects with my Binance account. A bot that can work with tradingview.com where I use trading indicator which is called " TonyUX Ema scalper ". This indicator generates Buy and Sell signal. So i want a bot which can execute trade on binance when it gets a Buy/sell signal on tradingview.com ( see attached picture) Most likely you already have a similar bot

プロジェクト情報

予算
30+ USD