Re: Coding Help

#1411
sal wrote:
Mon Feb 06, 2023 4:12 am
I understand you are a coder.. !!!
either you can develop its ..
other wise you may please explain to coders your strategy to in cooperate in your ea posted to request. if they feel good, sure they will helps you .
This way you are helps community and yourself.
as you well aware, source code not to request. if coder posted only exe. file, which means this indicator he is not interested to release to community..
hope you will understand and respect coders..
Yes, sure! Sorry I just asked hopping it is at hand for someone but you are right most probably since I could not find the source file it may mean that author of this indicator is not interested to release to the community the mq4 file

Correct...


Re: Coding Help

#1412
Hello Mr. Mladen (and all the other people here and
all other Code Wizards).

Sorry to bother with requests since I should already know how to do something with code but I'm a potato and I don't know anything.

I would like to ask that, if possible, small labels be added to the alert symbols of the zig zags that indicate the corresponding timeframe. So that I could know and calculate better the braking time (using my VSA) to open better my orders.
And also if it can be a field to be able to change the alert sound and thus be able to put my voice messages in wav format. So the laptop yells at me when I'm away.
But the most important thing for me are the labels. the field to change the sound is secondary.
I put here some photos of why and an analogy so that I can explain better.

https://www.drivingtests.co.nz/resource ... distances/

Now I'm thinking here and I'm a Dumb..... I mark the timeframes in the photo Upside down. Because 1 minute go at faster I velocity in the chart, One Day go slower..... Sorry about this horrendous mistake......
zig zag descriptions.jpg
Multi ZIgZag.jpg
zig zag descriptions 2.jpg
zig zag descriptions 3.jpg
XU v50-4 Level ZZ Semafor mtf alerts.mq4
From the last version of XARD v50
(40.97 KiB) Downloaded 27 times
code faster.gif
From the domains of my desk and laptop Full of Porn and Charts I call upon the Spiritual Presence and Power of Richard Wyckoff, Jesse Livermore, George Soros and all the Wise in Volume and Standard Deviation to enlighten and make everyone get off their asses and go to study Market Structure, Liquidity Pools and Volume.

Selah

Re: Coding Help

#1413
Hello great coders i need a single stable vertical line with alert that will not disappear on daily and weekly candle so that if i change to smaller time frames the line will still be there on that daily candle opening on lower time frame like 4hrs, if the candle is green the vertical line should be green and the alert will read BUY same goes for SELL scenario, i downloaded one by mladen but its not what i want. Many times if i draw it and change to another time frame it will just disappear please assist me.Rgds
DAILY CANDLE VERTICAL LINE.PNG
VERTICALS  OF DAILY ON 4HRS.PNG

Re: Coding Help

#1414
FLICKERS wrote:
Fri Feb 17, 2023 6:11 am
Hello great coders i need a single stable vertical line with alert that will not disappear on daily and weekly candle so that if i change to smaller time frames the line will still be there on that daily candle opening on lower time frame like 4hrs, if the candle is green the vertical line should be green and the alert will read BUY same goes for SELL scenario, i downloaded one by mladen but its not what i want. Many times if i draw it and change to another time frame it will just disappear please assist me.Rgds
Image

Image
Great!! i eventually got what i wanted in respect of the vertical line i have been searching for,...... One up for great programmers here, Mladen you are wonderful and you make my day thaaaaanks so much for the attached please if im not asking for much kindly help in adding color change over plus alert to it i know it will help us a lot believe me . The idea is to place the vertical line on DAILY CANDLE and if you trade the WEEKLY OR MONTHLY it will still display on those candles but the beauty of it is its ability to switch over to a new DAILY CANDLE everyday yes thats all i needed. So if the DAILY CANDLE TURNS BLUE an alert and a blue vertical line should display and also SELL mode, please kindly assist in tooshing it up . When you place it on daily chart like me i trade 4hrs and 1hr i will just go and look for trade set up either for buy or sell . Thanks
_dayLines.mq4
(3.11 KiB) Downloaded 22 times
MLADEN VLINE SINGLE.DAILY.PNG
MLADEN VLINE SINGLE.PNG

Coding Help: can anyone get this to work

#1415
Hello fellow traders I was wondering if @mrtools, @Kvak or any other coderscould help with this code for identifying wedges. I'm no coder and was wondering if at all possible that either of you could take a look and see if it can be completed. Here is the code below....

Code: Select all

/+------------------------------------------------------------------+
//|                                            Wedge Detector.mq4    |
//|                                                    ChatGPT        |
//|                                                     2023-03-16   |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red      // Bearish Wedge
#property indicator_color2 LimeGreen // Bullish Wedge
//--- input parameters
extern int    WedgePeriod = 14;     // Period for calculating the wedges
extern double WedgeSlope  = 0.05;   // Minimum slope required for a valid wedge
//--- buffers
double BearishWedgeBuffer[];
double BullishWedgeBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   //--- indicator buffers mapping
   SetIndexBuffer(0, BearishWedgeBuffer);
   SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow(0, 233);
   SetIndexLabel(0, "Bearish Wedge");
   SetIndexBuffer(1, BullishWedgeBuffer);
   SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow(1, 234);
   SetIndexLabel(1, "Bullish Wedge");
   //---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
{
   int i, limit;
   double trend1, trend2, slope1, slope2, slope3, slope4, high, low;
   //--- determine the limit of bars to be calculated
   limit = Bars - WedgePeriod - 1;
   if (limit < 1) return(0);
   //--- main loop
   for (i = limit; i >= 0; i--)
   {
      //--- calculate the trend lines
      trend1 = iMA(NULL, 0, WedgePeriod, 0, MODE_EMA, PRICE_HIGH, i);
      trend2 = iMA(NULL, 0, WedgePeriod, 0, MODE_EMA, PRICE_LOW, i);
      slope1 = (iHigh(NULL, 0, i + WedgePeriod) - trend1) / WedgePeriod;
      slope2 = (trend1 - iLow(NULL, 0, i + WedgePeriod)) / WedgePeriod;
      slope3 = (iLow(NULL, 0, i + WedgePeriod) - trend2) / WedgePeriod;
      slope4 = (trend2 - iHigh(NULL, 0, i + WedgePeriod)) / WedgePeriod;
      high = iHigh(NULL, 0, i);
      low = iLow(NULL, 0, i);
      //--- detect bullish wedge
      if (slope1 < -WedgeSlope && slope2 > WedgeSlope && high > trend1 && low > trend2)
      {
         BullishWedgeBuffer[i] = low - 10 * Point;
      }
      else
      {
         BullishWedgeBuffer[i] = EMPTY_VALUE;
      }
      //--- detect bearish wedge
      if (slope3 > WedgeSlope && slope4 < -WedgeSlope && high < trend2 && low < trend1)
      {
         BearishWedgeBuffer[i] = high + 10 * Point;
      }
      else
      {
         BearishWedgeBuffer[i] =
         // Bullish Rising Wedge Indicator
double A, B, C, D, E, F, G, H, I, J, K, L, M, N;
double x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;
double SlopeAB, SlopeCD, SlopeEF, SlopeGH, SlopeIJ;
double p1, p2, p3, p4, p5, p6;
int i, shift;
void OnInit()
{
    SetIndexStyle(0,DRAW_LINE);
    SetIndexBuffer(0,NULL);
}
void OnCalculate(const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
{
    shift = Bars-IndicatorCounted();
    for(i=shift; i>=0; i--)
    {
        A = High[i+2];
        B = Time[i+2];
        C = High[i+1];
        D = Time[i+1];
        E = High[i];
        F = Time[i];
        G = Low[i+2];
        H = Low[i+1];
        I = Low[i];
        J = High[i+3];
        K = High[i+4];
        L = Low[i+3];
        M = Low[i+4];
        N = Low[i+5];
        SlopeAB = (A-C)/(B-D);
        SlopeCD = (C-E)/(D-F);
        SlopeEF = (G-I)/(F-H);
        SlopeGH = (G-K)/(H-J);
        SlopeIJ = (L-N)/(J-M);
        if(SlopeAB<SlopeCD && SlopeEF<SlopeGH && SlopeGH<SlopeIJ && MathAbs(SlopeAB)>MathAbs(SlopeEF))
        {
            x1 = B;
            y1 = A;
            x2 = D;
            y2 = C;
            x3 = F;
            y3 = E;
            x4 = H;
            y4 = G;
            x5 = J;
            y5 = K;
            x6 = M;
            y6 = L;
            p1 = iCustom(NULL,0,"Point",x1,y1);
            p2 = iCustom(NULL,0,"Point",x2,y2);
            p3 = iCustom(NULL,0,"Point",x3,y3);
            p4 = iCustom(NULL,0,"Point",x4,y4);
            p5 = iCustom(NULL,0,"Point",x5,y5);
            p6 = iCustom(NULL,0,"Point",x6,y6);
            if(p1!=0 && p2!=0 && p3!=0 && p4!=0 && p5!=0 && p6!=0)
            {
                SetIndexShift(0,shift);
                IndicatorBuffer[0][shift] = 0;
                for(int j=0;j<=6;j++)
                {
                    ObjectCreate("line"+j,OBJ_TREND,0,x1-j*(x1-x6)/6,y1+j*(y6-y1)/6,x6-j*(x1-x6)/6,y6+j*(y6-y1)/6);
                    ObjectSet("line"+j,
#property indicator_chart_window

extern int wedge_size = 20;
extern int look_back = 100;

void find_wedges()
{
    double top[]; // array for wedge tops
    double bottom[]; // array for wedge bottoms
    int top_count = 0; // number of wedge tops found
    int bottom_count = 0; // number of wedge bottoms found
    
    for (int i = look_back; i >= wedge_size; i--)
    {
        double highest_high = High[i];
        double lowest_low = Low[i];
        int last_peak_index = 0;
        int last_trough_index = 0;
        bool is_rising_wedge = false;
        bool is_falling_wedge = false;
        
        // look for the highest high and lowest low within wedge size
        for (int j = i; j >= i - wedge_size; j--)
        {
            if (High[j] > highest_high)
            {
                highest_high = High[j];
                last_peak_index = j;
            }
            if (Low[j] < lowest_low)
            {
                lowest_low = Low[j];
                last_trough_index = j;
            }
        }
        
        // check if the wedge is rising or falling
        if (highest_high - Low[last_trough_index] < High[last_peak_index] - lowest_low)
        {
            is_rising_wedge = true;
        }
        else
        {
            is_falling_wedge = true;
        }
        
        // check if the wedge has been broken
        bool is_wedge_broken = false;
        for (int j = last_peak_index; j >= last_trough_index; j--)
        {
            if (High[j] > highest_high || Low[j] < lowest_low)
            {
                is_wedge_broken = true;
                break;
            }
        }
        
        // add the wedge to the array if it hasn't been broken
        if (!is_wedge_broken)
        {
            if (is_rising_wedge)
            {
                top[top_count] = highest_high;
                bottom[bottom_count] = lowest_low;
                top_count++;
                bottom_count++;
            }
            else if (is_falling_wedge)
            {
                top[top_count] = highest_high;
                bottom[bottom_count] = lowest_low;
                top_count++;
                bottom_count++;
            }
        }
    }
    
    // plot the wedges
    for (int i = 0; i < top_count; i++)
    {
        ObjectCreate("Rising Wedge "+i, OBJ_TREND, 0, Time[top_count-i-1], top[i], Time[bottom_count-i-1], bottom[i]);
        ObjectSet("Rising Wedge "+i, OBJPROP_COLOR, Green);
    }
    for (int i = 0; i < bottom_count; i++)
    {
        ObjectCreate("Falling Wedge "+i, OBJ_TREND, 0, Time[bottom_count-i-1], bottom[i], Time[top_count-i-1], top[i]);
        ObjectSet("Falling Wedge "+i, OBJPROP_COLOR, Red);
    }
}

int init()
{
    return(0);
}

int start()
{
    find_wedges();
    return(0);
}
// --- indicator parameters
extern int LookBackBars=500;  // Number of bars to look back for wedge formation
extern double WedgeThreshold=0.1;  // Minimum slope of wedge pattern
extern color BullWedgeColor=Green;  // Color of bullish wedge pattern
extern color BearWedgeColor=Red;  // Color of bearish wedge pattern

// --- indicator buffers
double BullishWedge[];
double BearishWedge[];

// --- indicator initialization function
int init()
{
   // --- indicator buffers mapping
   SetIndexBuffer(0, BullishWedge);
   SetIndexBuffer(1, BearishWedge);
   
   // --- set indicator labels
   SetIndexLabel(0, "Bullish Wedge");
   SetIndexLabel(1, "Bearish Wedge");
   
   // --- set indicator colors
   SetIndexStyle(0, DRAW_ARROW, 0, 2, BullWedgeColor);
   SetIndexStyle(1, DRAW_ARROW, 0, 2, BearWedgeColor);
   
   return(0);
}

// --- indicator calculation function
int start()
{
   // --- get the number of bars on the chart
   int limit=Bars-LookBackBars-1;
   
   // --- loop through the bars to find wedge patterns
   for(int i=limit; i>=0; i--)
   {
      // --- calculate the slope of the wedge
      double slope=(iMA(NULL, 0, 5, 0, MODE_LWMA, PRICE_CLOSE, i)-iMA(NULL, 0, 30, 0, MODE_LWMA, PRICE_CLOSE, i))/(30-5);
      
      // --- check if the slope meets the threshold for a wedge pattern
      if(MathAbs(slope)<=WedgeThreshold)
      {
         // --- check if the wedge is bullish or bearish
         if(slope>0)
         {
            // --- set the bullish wedge buffer to the low of the wedge pattern
            BullishWedge[i]=Low[i]-Point*2;
         }
         else
         {
            // --- set the bearish wedge buffer to the high of the wedge pattern
            BearishWedge[i]=High[i]+Point*2;
         }
      }
   }
   
   return(0);
}


Re: Coding Help: can anyone get this to work

#1416
kenshin281180# wrote:
Wed Mar 15, 2023 7:23 pm
Hello fellow traders I was wondering if @mrtools or @Kvak could help with this code for identifying wedges. I'm no coder and was wondering if at all possible that either of you could take a look and see if it can be completed. Here is the code below....
Hi, in future please help us out by wrapping your code using this guide to keep things neat on the forum and easier for coders to read.
Trade with the broker that supports our work! FBS are offering $140 to get you started! Click here to begin live trading, today.
No commissions are earned by Forex-station.


Guide to the "All Averages" Filters (ADXvma, Laguerre etc.) 🆕
How to draw Fibonacci Extensions the easy way
How to easily find & draw major Support & Resistance

Re: I need a programmer

#1418
hello, I'm from Brazil, I don't speak English, we can use google translator to understand each other.
I need someone to code a risk management EA (Robot), based on an excel spreadsheet that I use. I use some parameters, SL size, TP, risk per operation according to total capital, etc. With all the correct parameters, the only thing I need is to know the size of the Stop Loss order, when this information is placed, the spreadsheet automatically places it, the TP, the size of the lots to be used, etc.

Re: Coding Help

#1419
Coding error

This robot works in the opposite direction to what is seen in the video. Can a mql4 programming expert check what is wrong please?

Thanks

RVI OBV.mq4
(15.07 KiB) Downloaded 24 times
indicators.zip
(2.04 KiB) Downloaded 23 times

Re: Coding Help

#1420
Hello great coders of all time.

Can you help me how can we turn this indi to show something like in the picture.

Basically an ADR but instead of daily range, an average hourly range with H4 and H1 average high/low lines for "n" or a number of previous candles.

The picture only shows the manually drawn H4 range but I also hope to see the average H1 range.

It's like a continuous H4 high/low lines but it should be the average of previous H4 candles plotted like that.
ADR.png
ATRonChart.mq4
(1.03 KiB) Downloaded 16 times


Users viewing this forum: CommonCrawl [Bot], Hydra, miccaluko155 and 2 guests