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)
プロジェクト
644
26%
仲裁
92
72% / 14%
期限切れ
12
2%
仕事中
パブリッシュした人: 1 code
2
開発者 2
評価
(38)
プロジェクト
50
10%
仲裁
1
0% / 0%
期限切れ
8
16%
類似した注文
Hi, I am looking for a profitable MT5 EA,If you are interested in this job, grateful if you could provide a brief description of the strategy and one week demo trial , Thank you
I need a developer who can write me a XML file for a dbot robot to trade any deriv option instruments and trading mode A market analyser is needed. Let it automatically scan the market and choose the instrument and with the best input parameters for a given trading mode and show the predicted win rate as shown in the videos below; https://vt.tiktok.com/ ZSb14aoAA/ https://vt.tiktok.com/ ZSb1bFBkA/
I need an experienced MQL5 developer for a two-step MT5 project. STEP 1 — Data Module Create a standalone .mqh data-acquisition module with a 10,000-tick buffer . Requirements: Use CopyTicks() . Do not assume OnTick() = one tick. Recover ticks between processing cycles. Do not use time_msc as a unique tick identifier. Process ticks sequentially. Use an efficient ring/circular buffer. Provide reliable access to the
Bobolink 1 30+ USD
I need a trading robot that can automatically analyse the market, identify trading opportunities, manage trades, and use clear risk controls. The robot should be reliable, easy to monitor, and suitable for testing before real trading
I am looking for an experienced MQL5 developer to research, develop, and integrate a Smart Early Exit system into my existing XAUUSD EA. The EA is already fully functional. The objective of this job is not to redesign the strategy or modify the entry logic , but to improve how losing trades are managed. The Early Exit system should identify trades that are showing signs of genuine deterioration and close them before
VEE STRATEGY ROBOT 30 - 200 USD
//+------------------------------------------------------------------+ //| M5 Trend Pullback EA | //| Exness / MT5 | //| Forex + XAUUSD | //| Risk: 0.5% per trade | //+------------------------------------------------------------------+ #property strict #property version "1.00" #property description "M5 EMA50/EMA200 + RSI + ATR Trend Pullback EA" #include <Trade/Trade.mqh> CTrade trade;
Purpose Develop a transparent and conservative Expert Advisor for MetaTrader 5. Profit is not guaranteed; acceptance is based on correct implementation, risk controls and reproducible testing. 1. Platform and instruments - Native MQL5 Expert Advisor for MetaTrader 5. - Symbols: EURUSD and USDJPY. - Working timeframe: H1. Higher-timeframe trend filter: H4. - Must support standard broker symbol suffixes/prefixes and
Please may someone assist me with the indicator attached, it has a SERIOUS BUG issue in the sense that when I load it, and activate the template (attached as well) MT4 ALWAYS freezes and then eventually disconnects automatically, ALL THE TIME. It even gets worse to an extent that after disconnecting a number of times mt4 ends up not loading anymore, UNTIL I remove the indicator. Please I WILL NEED A DEMO (FOR A DAY)
I’m looking for an experienced NinjaTrader 8 developer to build an automated strategy using the Imbalance Profile Lidar indicator by ninZa.co on MNQ DEC26 with a 3000-volume chart . Requirements: Enter Long when a blue absorption dot appears below price with an absorption value. Enter Short when a pink absorption dot appears above price with an absorption value. Stop loss: 15 ticks behind the signal dot price . Take
Ola, Tenho um Bot mas parou de funcionar, preciso de programador que desenvolva o mesmo configurações. Envio o antigo bot para pegar as configurações e realizar outro modelo. Hello, I have a bot that has stopped working, and I need a programmer to develop one with the same settings. I can send the old bot so you can extract the settings and build a new version

プロジェクト情報

予算
30+ USD