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%
類似した注文
UltraTrend EA 40+ USD
An Executive Assistant provides comprehensive administrative and operational support to senior leaders, ensuring efficient management of schedules, communications, meetings, and projects. They act as a key point of contact, coordinate business activities, maintain confidentiality, and help executives focus on strategic priorities while supporting organizational effectiveness
I need a simple bot for opening range. Simple Entry / Exit rules, to be able to customize the timeframe, time zone (entry candle) and other normal settings like size, etc
Hello, I am searching profitable, 0/1 rules strategy. Only serious offers please, I am expecting longer co-operation, I am open for your propositions, ideas. Have a nice day! I hope I will find here honest person
Need an Expert Advisor designed specifically for XAUUSD (Gold) , based on liquidity sweep + breakout confirmation logic. Market Focus Instrument: XAUUSD only Optimized for high volatility and intraday expansion behavior typical for Gold. Strategy Concept The EA is based on liquidity sweep of previous day levels followed by market structure shift and continuation in the confirmed direction. Daily Levels Previous Day
Can we do this 2 Indicatos at once NOTES 1. Step MA are on HTF, So values to be used are for Time frame that have closed 2. Pairs that are to be displayed for 2 STEP MA TREND DISPLAY are to be arranged in alphabetical order 3. Pairs in Bullish Weak trend are to be displayed in Green 4. Pairs in Bearish Weak Trend are to be displayed in Red 5. Position for displayed to be adjustable
GoldTrade EA 50 - 100 USD
Evening. I need a programme who will be patient with my EA specifications as it consists of +/- 30 sections ..but before we can start I want us to agree on these terms ...are as follows...the programmer should follow these order .[.Market regiom > trend bias > Lequidity > Smc > Momentum > Session > Risk > Entry > Exit ] and also should help me with these prototype request phase 1=Logicframework . phase 2=Entry engine
Hello everyone, I am looking for a profitable Expert Advisor (EA) that has already been developed and tested for use on the Deriv platform, particularly for Boom, Crash, Volatility Indices, Step Indices, and other synthetic indices offered by Deriv. I am interested in EAs with proven performance and verifiable results. If you have an EA that is already built and operational, I would be happy to discuss its strategy
Title Professional AI Automation Trading Bot for Forex & Crypto Solution Language Python (preferred) or MQL5 depending on integration requirements. Categories Expert Advisor (EA) for MetaTrader 5 Automated trading strategies AI/ML-based signal generation Risk management automation Required Skills Strong knowledge of MQL5/Python Experience with MetaTrader API integration Machine learning model deployment
Hello, I am looking for an experienced developer to build a fully automated Python-based MT5 trading bot. The strategy is based on Smart Money Concepts (SMC) and includes multi-timeframe analysis, automated trade execution, risk management, and backtesting. Requirements: Python and MetaTrader 5 integration SMC strategy implementation Automated trade execution Risk management (SL, TP, position sizing) Backtesting and
O EA deve operar - na corretora BINANCE - com duas médias móveis que podem ser aritmética, exponencial, ponderada, alma( Alnaud Legoux ), Jurik. O EA fica comprado quando a primeira média (rápida) cruzar a segunda média ( lenta ) para cima e vendido quando a primeira média cruzar a segunda média para baixo. Cada entrada deve ser zerada por stop loss, stop gain ou na virada de mão

プロジェクト情報

予算
30+ USD