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%
類似した注文
I am looking for a losing EA . the idea behind is that some of the Strategies can be reversed into a positive strategy . In fact , most of the Experts -i think around %90 or more - can not be reversed into a positive strategy , but some fewer can be , around %10. İ will work to re-organize and reconstruct the strategy to make it a positive one. before selecting you can give .ex5 file and you will give me the open
I am looking for an experienced MQL4 or MQL5 developer to build a high-frequency (HFT) latency arbitrage Expert Advisor for cryptocurrency trading between LMAX and IC Markets. I need someone who understands low-latency execution, price feeds, slippage, spreads, and fast order execution. The basic idea is that LMAX acts as the leading price feed while IC Markets is the execution broker. The EA should constantly
A ATR GRID EA WITH DOLLAR COST AVERAGE MARTINAGLE 1.2 IT TAKE TRADES WHEN ATR VALUE IS LOWER THEN 1.3 ON 1 MINUTE TIMEFRAME SPCALLY AND CUT ALL TRADES WHEN ATR GOES ABOVE 1.3 value on 1 minute timeframe only trading when market consolidate with basket booking profit management with auto timemanagement with close if trades open after the session timeout and agaib start when our time to trade is on
Institutional‑Grade Multi‑Currency MT5 EA (A2SR + SMC + Smart Recovery + Smart Grid + Liquidity + Volatility + Safety Filters) Budget: AUD $1,500 – $2,000 (flexible) 1. EA Architecture EA runs one chart per symbol (NOT one EA controlling all symbols). Each chart instance manages its own: Recovery Grid Trend Volatility Liquidity Risk Logging EA must still respect global safety rules : Correlation protection Total
Hello, I am looking for an EA that generates few $ every day in a safe way, I especially do not want a martingale EA, the maximum open lot is 0.01 in any case, if you already have in your possession an EA like that already functional please send me a message
Almhdi 30+ USD
Bmnju ghffn ghutfb sdg xf ytghrdhg seg-nbfbntf h sfgtf fgjju gj>ug ggjitt ffhhu dfghfg hhffgh fcghbn dcghyg dghhgf dghhyf fghbff dghhy fghbh dfghhh dfghht dxfhhhh sfgghh sfgghhj dfghhhh dfghhh dfghhh dfghhhh fgghhhj fgghuu dfghhj dfghhj fghhnjjd ghhnjj effgh- sfghhj zdghh b zcghb ddghbb المهدي ألبين أبو بكر أحمد أبو كفاح البطل
I am looking for an experienced MQL5 developer to convert my existing trading strategy into a fully automated MetaTrader 5 Expert Advisor (EA). Requirements: Develop a robust and efficient MQL5 Expert Advisor based on my EMA trading strategy. I will provide the complete trading logic, including entry, exit, risk management, and trade management rules. The EA should execute trades automatically without manual
I am looking for an experienced MQL5 developer to convert my existing trading strategy into a fully automated MetaTrader 5 Expert Advisor (EA). Requirements: Develop a robust and efficient MQL5 Expert Advisor based on my EMA trading strategy. I will provide the complete trading logic, including entry, exit, risk management, and trade management rules. The EA should execute trades automatically without manual
I am looking for an expert MQL5 developer to build a robust, professional Expert Advisor for Gold (XAUUSD). The EA must be Event-Driven (OnTick) with no 'Sleep' functions, ensuring instant execution. ​Core Logic: ​Grid Strategy: Start with 0.02 Buy/Sell. Lot size sequence: 0.02, 0.03, 0.05, 0.09, 0.14, 0.26, 0.44, 0.75, 1.28, 2.18 (Max 10 steps). ​Dynamic TP: Total basket TP must update instantly upon new order
I need a custom MT5 Expert Advisor for XAUUSD (Gold). Trade Mode: - Sell Only. Entry Logic: - Open first Sell with 0.01 lot. - Every 3.00 price movement against the position (example 4000 -> 4003 -> 4006 -> 4009), open a new Sell. - Lot sequence must increase linearly: 0.01, 0.02, 0.03, 0.04, 0.05, 0.06... No Martingale. Closing Logic: - Do NOT close the whole basket. - Close only one profitable trade together with

プロジェクト情報

予算
30+ USD