Help debug my custom currency strength meter based on my own algo

작업 종료됨

실행 시간 4 일
피고용인의 피드백
wonderful client.. thank you for this.
고객의 피드백
Cleaned up my buggy indicator nicely.

명시

So as the title suggest, I am looking for someone to debug and briefly explain my errors in my code.

The indicator looks like this on the chart

There are 4 bugs to fix

  1. Indicator applies to the chart fine but doesn't seem to run after initialization.
  2. Indicator only works on 1 hour charts and higher.
  3. Indicator "freezes" on start on new period.
  4. Graphic panel doesn't update to represent indicator value.

Examples of coding include the following

  • Custom strength algo 

   int   i,pos;

////---
   if(rates_total<=1)
      return(0);

////--- preliminary calculation
   if(prev_calculated>1) pos=prev_calculated-1;
   else  pos=1;

   for(i=pos-1; i<rates_total; i++)
     {double eg = 50 + (((iClose("EURGBP",0,i)-iClose("EURGBP",0,(i+Delta)))/(iHigh("EURGBP",0,(iHighest("EURGBP",0,MODE_HIGH,Delta,i)))-iLow("EURGBP",0,(iLowest("EURGBP",0,MODE_LOW,Delta,i)))))*100)/2;
      double ea = 50 + (((iClose("EURAUD",0,i)-iClose("EURAUD",0,(i+Delta)))/(iHigh("EURAUD",0,(iHighest("EURAUD",0,MODE_HIGH,Delta,i)))-iLow("EURAUD",0,(iLowest("EURAUD",0,MODE_LOW,Delta,i)))))*100)/2;
      double en = 50 + (((iClose("EURNZD",0,i)-iClose("EURNZD",0,(i+Delta)))/(iHigh("EURNZD",0,(iHighest("EURNZD",0,MODE_HIGH,Delta,i)))-iLow("EURNZD",0,(iLowest("EURNZD",0,MODE_LOW,Delta,i)))))*100)/2;
      double eu = 50 + (((iClose("EURUSD",0,i)-iClose("EURUSD",0,(i+Delta)))/(iHigh("EURUSD",0,(iHighest("EURUSD",0,MODE_HIGH,Delta,i)))-iLow("EURUSD",0,(iLowest("EURUSD",0,MODE_LOW,Delta,i)))))*100)/2;
      double ec = 50 + (((iClose("EURCAD",0,i)-iClose("EURCAD",0,(i+Delta)))/(iHigh("EURCAD",0,(iHighest("EURCAD",0,MODE_HIGH,Delta,i)))-iLow("EURCAD",0,(iLowest("EURCAD",0,MODE_LOW,Delta,i)))))*100)/2;
      double eh = 50 + (((iClose("EURCHF",0,i)-iClose("EURCHF",0,(i+Delta)))/(iHigh("EURCHF",0,(iHighest("EURGBP",0,MODE_HIGH,Delta,i)))-iLow("EURCHF",0,(iLowest("EURCHF",0,MODE_LOW,Delta,i)))))*100)/2;
      double ej = 50 + (((iClose("EURJPY",0,i)-iClose("EURJPY",0,(i+Delta)))/(iHigh("EURJPY",0,(iHighest("EURJPY",0,MODE_HIGH,Delta,i)))-iLow("EURJPY",0,(iLowest("EURJPY",0,MODE_LOW,Delta,i)))))*100)/2;



      EURBuffer[i] = (eg+ea+en+eu+ec+eh+ej)/7;

//--- and so

  • graphic panel 

//+------------------------------------------------------------------+
//|  Create Panel                                                    |
//+------------------------------------------------------------------+
void CreatePanel()
//+------------------------------------------------------------------+
  {
   string name="label_";

   for(int i=1;i<=24; i++)
     {
      string labelname=name+IntegerToString(i,3,'0');

      switch(i)
        {
         case   1:
            createBarGraph(labelname,264,43,30,2);
            break;
         case   2:
            createBarGraph(labelname,232,43,30,2);
            break;
         case   3:
            createBarGraph(labelname,200,43,30,2);
            break;
   //--- and so on     
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|  create Bar Graph                                                |
//+------------------------------------------------------------------+
void createBarGraph(string lname,int xdistance,int ydistance,int xsize,int ysize)
//+------------------------------------------------------------------+
  {
   int ypoint=ydistance;
   string name=lname+"_";

   for(int num=51; num>=1; num--)
     {
      createRectangleLabel(name+IntegerToString(num,2,'0'),xdistance,ypoint,xsize,ysize);
      ypoint+=2;
     }
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|  Create Rectangle Label                                          |
//+------------------------------------------------------------------+
void createRectangleLabel(string name,int xdist,int ydist,int xsize,int ysize,)
  {
   ObjectCreate(name,OBJ_RECTANGLE_LABEL,0,0,0);
   //--- and so on
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//|  Create Edit                                                     |
//+------------------------------------------------------------------+
void createEdit(string name,int xdist,int ydist,int xsize,int ysize,string text,int fontsize,color clr)
//+------------------------------------------------------------------+
  {
   ObjectCreate(name,OBJ_EDIT,0,0,0);
   //--- and so on
  }
//+------------------------------------------------------------------+

  • graphic panel update 

      objectSetBlank("label_001");
      objectSetGraph("label_001_",EURBuffer[0],C'128,128,128',C'134,121,121',C'140,115,115',C'147,108,108',C'153,102,102',C'159,96,96',C'166,89,89',C'172,83,83',C'179,77,77',C'185,70,70',C'191,64,64',C'198,57,57',C'204,51,51',C'210,45,45',C'217,38,38',C'223,32,32',C'230,25,25',C'236,19,19',C'242,13,13',C'249,6,6',C'255,0,0');
      ObjectSetString(0,"label_017",OBJPROP_TEXT,DoubleToString(EURBuffer[0],0));

  • Set graph 

//+------------------------------------------------------------------+
//|  object Set Graph                                                |
//+------------------------------------------------------------------+
void objectSetGraph(string name,double value,color a,color b,color c,color d,color e,color f,color g,color h,color i,color j,color k,color l,color m,color n,color o,color p,color q,color r,color s,color t,color u)
  {
//---
   ObjectSet(name+"51",OBJPROP_COLOR,a);
   if(value > 2.0) ObjectSet(name + "50", OBJPROP_COLOR, a);
   if(value > 4.0) ObjectSet(name + "49", OBJPROP_COLOR, b);
   if(value > 6.0) ObjectSet(name + "48", OBJPROP_COLOR, b);
   if(value > 8.0) ObjectSet(name + "47", OBJPROP_COLOR, c);
   if(value > 10.0) ObjectSet(name + "46", OBJPROP_COLOR, c);
   if(value > 12.0) ObjectSet(name + "45", OBJPROP_COLOR, d);
   if(value > 14.0) ObjectSet(name + "44", OBJPROP_COLOR, d);
   if(value > 16.0) ObjectSet(name + "43", OBJPROP_COLOR, e);
   if(value > 18.0) ObjectSet(name + "42", OBJPROP_COLOR, e);
   if(value > 20.0) ObjectSet(name + "41", OBJPROP_COLOR, f);
   if(value > 22.0) ObjectSet(name + "40", OBJPROP_COLOR, f);

//--- and so on

The full code is 440 lines and will be provided upon expression of interest.

Thank you for your time

Bob

응답함

1
개발자 1
등급
(365)
프로젝트
507
40%
중재
159
17% / 74%
기한 초과
99
20%
로드됨
2
개발자 2
등급
(130)
프로젝트
210
40%
중재
90
20% / 43%
기한 초과
85
40%
무료
3
개발자 3
등급
(498)
프로젝트
743
56%
중재
47
32% / 30%
기한 초과
119
16%
작업중
게재됨: 1 코드
4
개발자 4
등급
(69)
프로젝트
93
34%
중재
10
40% / 30%
기한 초과
5
5%
무료
비슷한 주문
描述(项目概述): 我需要为 MetaTrader 5 平台开发一个功能完整的智能交易系统( 专家顾问 ),用于交易 XAUUSD (伦敦金)。该 艺电 的核心是基于一份详细的技术规格书,实现一个多指标共振、多层条件过滤的短线反转策略。 1. 核心策略逻辑简述: 交易品种与周期:主交易周期为 M30 ,需在代码内部动态读取 H4 周期进行趋势过滤,并监控 M5 周期以执行复杂的出场逻辑。 入场机制:采用 “ 价格触发 -> 成交量确认 -> 多指标渐进式达标 ” 的严格流程。入场信号需在特定时间窗口内,同时满足布林带突破及 5 个动量指标( CCI、RSI、MFI, 威廉指标, 随机指标)的超买 / 超卖条件,并受 H4 级别趋势过滤器约束。 出场机制:采用三层递进逻辑,包括动态保本移动、 M5 周期指标集体反转信号以及基于 K 线形态的趋势反转终极止损。
Beschreibung: Ich suche einen erfahrenen MQL5-Entwickler, der meinen bestehenden Expert Advisor für MT5 fertigstellt und optimiert. Der EA basiert auf einer 30-Minuten-Breakout-Strategie für XAUUSD (Gold) und enthält bereits die Grundlogik sowie FTMO-Regeln (Tagesverlust, Gesamtverlust, Handelszeiten, Spread-Filter, Lotbegrenzung). Was gemacht werden muss: Code-Feinschliff und Debugging Überprüfung der Breakout-Logik
Greeting Im in need of a programmer that can help me convert from TOS to trading view? The script is available with me, kindly bid if it is what you can do for me Thanks
can you help me with I need an ATM strategy for NT8, here's the criteria: Forex trade entry 100,000 units with a starting SL of 70 pips. The following proft targets: 33 pips, 68, 125, 180. All targets exit 25,000 units each. As each target is hit, move SL to BE+5, then BE+35, then BE+70. So the SL's are fixed, not trailing. I can't figure this out on my platform
- Bring in your support and resistance expert to save time . - My expert already has money management , session filter , threshold based . - Also show a screen or a picture of the chart showing the support and resistance on live chart
EA grid hunter 30 - 200 USD
1. Platform & Environment Platform: MetaTrader 5 (MT5 ONLY) Language: MQL5 Account type: ECN / Netting or Hedging Designed for broker rebate/commission return programs No DLLs, no external dependencies 2. Strategy Overview The EA is a high-frequency scalping Expert Advisor focused on maximizing the number of trades with minimal price movement, where the main source of profitability is broker rebate rather than market
I want to buy the EA today, Provide me with demo ex5, proof of profitability and Proof that the EA is profitable in your application. *NO Martingale* or Avaraging down
I am looking for a professional MQL4 developer to build a fully automated MT4 Expert Advisor (EA) for XAUUSD (Gold only). PLATFORM: - MetaTrader 4 (MT4) - Broker: Hankotrade (ECN conditions) - Symbol: XAUUSD only GENERAL RULES: - Fully automated EA (no manual confirmation required) - NO martingale - NO grid - NO hedging - One trade at a time - Works on live and demo accounts - Must allow manual stop/disable at any
I'm seeking an experienced MQL5 developer to create a robust Expert Advisor (EA) that integrates 4 powerful strategies into a single, cohesive system. The EA will trade XAUUSD exclusively and adhere to strict risk management principles, avoiding grid and martingale techniques. *Strategy Overview* The EA will incorporate the following strategies, each with its own unique approach: 1. *High Timeframe Trend Reversal*
Hi, I’m searching for a developer who already has a high‑performance Gold EA that can beat the results shown in my screenshot. If you have such an EA, please reply with: - A brief description of how it works (grid, scalping, SMC, etc.) - Backtest results and the set files you used - Whether you’re willing to make minor tweaks so I can use it as my own If the performance looks good, we can discuss adjustments and next

프로젝트 정보

예산
30+ USD