仕事が完了した
実行時間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
評価
プロジェクト
643
26%
仲裁
92
72%
/
14%
期限切れ
12
2%
仕事中
パブリッシュした人: 1 code
2
評価
プロジェクト
50
10%
仲裁
1
0%
/
0%
期限切れ
8
16%
暇
類似した注文
Needed Expert Advisor based on ADX indicator
50 - 100 USD
I need an Expert Advisor based on AOX signals. It must have check and handling of trade operations errors. The main criteria for opening and closing a position: * moving average direction *the price is higher than the previous bar. Trade lots is an input parameter
Dear Developers, I am seeking a professional developer to build an institutional-grade automated trading system that operates exclusively using pending orders, with advanced and fully customizable trade management logic. This is not a basic Expert Advisor. The goal is to create a structured, intelligent, and long-term trading system with clean architecture and professional execution standards. Project Requirements
Dear Developer, I am currently experiencing several structural and logical limitations in the existing bot system, and I am seeking a complete professional upgrade to a fully automated, intelligent trading solution. The objective is to preserve the core SMC strategy while significantly improving precision, automation, multi-timeframe alignment, and trade quality. Below are the required specifications: 1. Dynamic
The EA should be designed to react to very fast price movements on the M1 timeframe on XAUUSD. Logic overview: • When price moves up quickly, the EA should place a sell order. • The initial stop loss must be set exactly at the entry price. • A very tight trailing stop must be activated immediately. Sell trade behavior: • If price moves a few pips in favor after entry, the trade should close with a small profit via
Hello there Hpe you are doing good I am in search of a pine script expert developer who can build strategy in apudFlow in pinescript. Kinldy bid on this project if you can do this
Forex
30 - 200 USD
Develop an Expert Advisor trading trend reversals. Reversal signals will be generated based on Price Action patterns. Trend will be determined based on ADX, Alligator and MACD, while the indicator selection should be available in the EA's input parameters
Convert Pinescript into MQL5 EA trading bot
30 - 200 USD
I need a scalping-specific logic MT5 trading bot with a Donchian-channel–based dynamic stop-loss and take-profit system, applies RSI volatility filtering to avoid low-quality setups, and allows asset-specific adjustable parameters for fine-tuning performance Trading details: - Symbol: Any Forex EUR/USD - Platform: MT5 - Strategy type: Scalping (fast trades) - Timeframes: 5sec/ M1 / M5 - Fixed Stop Loss and Take
I am looking for an experienced MQL4/MQL5 developer to build an Expert Advisor with the following specific behavior: • Place buy and sell orders with entry price equal to the stop loss Stop loss should trigger immediately when the trade goes into a small loss Trailing stop should activate immediately once the trade is in profit Designed for micro-scalping (very small price movements) Proper handling of spread
Se necesita un bot basado buy limit y sell stop
30 - 50 USD
deseo un bot que genere una orden de compra y una orden venta simultanea, con una distancia no muy lejos una de la otra para aplicarla en el par oro/dolar. el bot requiere que al momento que se active una de las dos ordenes, la de compra o la de venta y se cierre la operacion en positivo, vuelva a generar una nueva orden siguiendo la tendencia del mercado
Self sufficient Trading robot
30+ USD
1. The idea of the trading system is as follows : market entries are performed when MACD's main and signal lines intersect in the current trend direction . 2. Trend is determined based on the Exponential Moving Average with the specified period (InpMATrendPeriod). If the current EMA value is greater than the previous one, the trend is seen as growing (ema_current > ema_previous). Alternatively, if current EMA is
プロジェクト情報
予算
30+ USD