Nur Nutzer, die das Produkt gekauft oder gemietet haben, können Kommentare hinterlassen
12
Hatem Abou Ouf  
Boris Sedov #:

All components should be running in one window.

I installed all components as they should. However, I am getting signals allover the place. Also, the zigzag indicator showing annoying arrows.  What is wrong? I need to replicate your result ( as it shown above in the picture)

why

Boris Sedov  
Hatem Abou Ouf #:

I installed all components as they should. However, I am getting signals allover the place. Also, the zigzag indicator showing annoying arrows.  What is wrong? I need to replicate your result ( as it shown above in the picture)


Thank you very much for your interest in my developments!

I have added additional checks to the indicators. If some indicator is not found, then you will receive an alert.
In addition, I have added significant improvements to the ZigZag+ indicator.


Dateien:
Boris Sedov  

In order for the updates to take effect, you need to compile after copying the new files.


JK_FX_2015  
Boris Sedov #:

In order for the updates to take effect, you need to compile after copying the new files.


Good job Boris, can you combine several indicators in the same dashboard?

I want to add ichimoku, plus rsi, plus moving average, plus stochastic, plus rsi, plus CCI, and let me summarize the strength of the signal

How could it be done or do I have to create different signal collections in different charts?

Boris Sedov  
JK_FX 2015 #:

How could it be done or do I have to create different signal collections in different charts?

Hello!
All of the above can be added to one collection of signals.
Describe the logic of all the signals that you want to add, I will help you do it correctly.

JK_FX_2015  
Boris Sedov #:

Hello!
All of the above can be added to one collection of signals.
Describe the logic of all the signals that you want to add, I will help you do it correctly.

Hi I did the test that way, but only the RSI appears on the Dashboard, how could the others be seen?

Dateien:
11.jpg  133 kb
22.jpg  173 kb
33.jpg  199 kb
Boris Sedov  
JK_FX 2015 #:

How could the others be seen?

Hello!
I added all the indicators as in your first screenshot. Study my code and comments inside.
Use "Config" with ready input parameters for the signal panel.


Dateien:
Boris Sedov  
If you need two or more indicators, then you need to follow certain rules.

More details about this.

//--------------------------------------------------------------------
#property indicator_chart_window
#property indicator_buffers 6 // The number of indicator buffers. Two for one indicator.

#property indicator_label1  "RSI"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrDeepSkyBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2

#property indicator_label2  "RSI"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2

#property indicator_label3  "EMA"
#property indicator_type3   DRAW_ARROW
#property indicator_color3  clrDeepSkyBlue
#property indicator_style3  STYLE_SOLID
#property indicator_width3  2

#property indicator_label4  "EMA"
#property indicator_type4   DRAW_ARROW
#property indicator_color4  clrRed
#property indicator_style4  STYLE_SOLID
#property indicator_width4  2

#property indicator_label5  "Stoch"
#property indicator_type5   DRAW_ARROW
#property indicator_color5  clrDeepSkyBlue
#property indicator_style5  STYLE_SOLID
#property indicator_width5  2

#property indicator_label6  "Stoch"
#property indicator_type6   DRAW_ARROW
#property indicator_color6  clrRed
#property indicator_style6  STYLE_SOLID
#property indicator_width6  2
//--------------------------------------------------------------------

Each individual indicator requires two separate indicator buffers. One indicator buffer is for the up arrow, and the second one is for the down arrow.

//--------------------------------------------------------------------
double bf0[],bf1[], // Arrays for indicator buffers.
       bf2[],bf3[],
       bf4[],bf5[];
//--------------------------------------------------------------------

In order for everything to work, arrays are needed to bind to indicator buffers.

int OnInit()
{
//---

SetIndexBuffer(0,bf0); // We associate arrays with indicator buffers.
SetIndexBuffer(1,bf1);

SetIndexBuffer(2,bf2);
SetIndexBuffer(3,bf3);

SetIndexBuffer(4,bf4);
SetIndexBuffer(5,bf5);

SetIndexArrow(0,217); // Assign different arrows to distinguish the signals.
SetIndexArrow(1,218);

SetIndexArrow(2,241);
SetIndexArrow(3,242);

SetIndexArrow(4,225);
SetIndexArrow(5,226);

IndicatorDigits(Digits);

//---
return(INIT_SUCCEEDED);
}

It is necessary to link arrays and indicator buffers.
To distinguish the arrows, you need to assign a code for each arrow.

if(prev_calculated==0)
   {
   s=rates_total-2;
   
   if(Limit>0 && s>(int)Limit-1) s=(int)Limit-1;
   
   for(i=rates_total-1; i>s; --i)
      {
      bf0[i]=EMPTY_VALUE; // We reset all the values that are on the left.
      bf1[i]=EMPTY_VALUE;
      
      bf2[i]=EMPTY_VALUE;
      bf3[i]=EMPTY_VALUE;
      
      bf4[i]=EMPTY_VALUE;
      bf5[i]=EMPTY_VALUE;
      }
   }
else s=rates_total-prev_calculated;

By adding multiple indicators, buffers need to be maintained.
Now we are resetting all the values that are located on the left.

for(i=s; i>=0; --i)
   {
   bf0[i]=EMPTY_VALUE; // We reset the values that we will calculate now.
   bf1[i]=EMPTY_VALUE;
   
   bf2[i]=EMPTY_VALUE;
   bf3[i]=EMPTY_VALUE;
   
   bf4[i]=EMPTY_VALUE;
   bf5[i]=EMPTY_VALUE;

In the main loop of our signal collection, we will reset all the values that we are calculating now.

   //-----------------------------RSI---------------------------------
   if(iRSI(NULL,0,14,PRICE_CLOSE,i)>30.0 &&
      iRSI(NULL,0,14,PRICE_CLOSE,i+1)<=30.0) bf0[i]=low[i]; // We have a separate pair of arrays for each indicator.
   else if(iRSI(NULL,0,14,PRICE_CLOSE,i)<70.0 &&
           iRSI(NULL,0,14,PRICE_CLOSE,i+1)>=70.0) bf1[i]=high[i];
   
   //-----------------------------EMA---------------------------------
   if(close[i]>iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i) &&
      close[i+1]<=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i+1)) bf2[i]=low[i];
   else if(close[i]<iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i) &&
           close[i+1]>=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,i+1)) bf3[i]=high[i];
   
   //-----------------------------Stochastic--------------------------
   if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i)>20.0 &&
      iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)<=20.0) bf4[i]=low[i];
   else if(iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i)<80.0 &&
           iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,i+1)>=80.0) bf5[i]=high[i];

We calculate all the indicators.
Each indicator uses its own pair of arrays.

That's all!

JK_FX_2015  
Boris Sedov #:
r everything to work, arrays are needed to bind to indicator buffers

ok nice job, another query, if there are 3 indicators in the same temporality and same pair, does the dashboard show it to you, example RSI/STOCASTIC/MA (enlarging the module)?


second query. Could a programmable robot read (Buffers) the dash board to put, for example, only long or only short?

Boris Sedov  
JK_FX 2015 #:

ok nice job, another query, if there are 3 indicators in the same temporality and same pair, does the dashboard show it to you, example RSI/STOCASTIC/MA (enlarging the module)?

second query. Could a programmable robot read (Buffers) the dash board to put, for example, only long or only short?

You can program all this in the signal collection.

For example, in order for the panel to show when three indicators give a signal at the same time, you need to add two more separate buffers. You will receive such a signal separately. It will turn out not three indicators, but three + one more combined of three at the same time, only four.

Only the up or down arrows, you also program this in the signal collection.

You can put the switch in the input parameters of the signal collection, but you need to follow the rule — the input variable "Limit" should be the first in the list. Only below the "Limit" variable can you add your own new input variables.

Boris Sedov  
One simple thing needs to be understood.
The signal panel checks whether there is an arrow or not.
But we can program this arrow as we need. If we need an arrow when the conditions of several different indicators coincide at once, then we do so. Let us have such an arrow. The panel will see this arrow and say — a combined signal has been received.
JK_FX_2015  
Boris Sedov #:
ecks whether there is an arrow or not.
But we can program this arrow as we need. If we need an arrow when the conditions of several different indicators coincide at once, then we do so. Let us have such an arrow. The panel will see this arrow and

ok, thank you very much, I'm doing some tests

JK_FX_2015  

ideally the indicators can be seen in the same temporality, I do not know how to do it

I was able to integrate the ichimoku, but I need to improve (At the moment there is the cross in each candle)



Boris Sedov  
JK_FX 2015 #:

I was able to integrate the ichimoku, but I need to improve.

If you need the moment of intersection of two lines, then it is done the same way as other indicators.

First, we check that one line is higher than the other on the i-th candle, and on the i+1st candle, the same line is lower or equal to the other. This is for purchase. For sale, everything is exactly the opposite.

   if(TENKANSEN[i]>KIJUNSEN[i] &&
      TENKANSEN[i+1]<=KIJUNSEN[i+1]) bf6[i]=low[i];
   else if(TENKANSEN[i]<KIJUNSEN[i] &&
           TENKANSEN[i+1]>=KIJUNSEN[i+1]) bf7[i]=high[i];

How does it work?

If TENKANSEN i-th is higher than KIJUNSEN i-th and
   TENKANSEN i+1st is lower or equal to KIJUNSEN i+1st, then bf6[i]=low[i]

Also for bf7[i]=high[i], but the signs — (< and >=) change.

MastersFX  
Hello. Thank you for you indicator.
I tried use with neuroshell indicator but it wrong every time.
Could you help with this?
Dateien:
neorushell.jpg  261 kb
Nur Nutzer, die das Produkt gekauft oder gemietet haben, können Kommentare hinterlassen
12