仕事が完了した


指定
I have an MT4 indicator (SW TRIX) that I would like to get converted to MT5.
I would like the source code with the final solution.
I will provide the full indicator when we have our communication about the project.
I am looking for someone with experience in these conversions. Thank you.
===========================================
Here is a snippet of the code:
//| |
//+------------------------------------------------------------------+
/* 2009.07.12 - choice of moving averages
- choice of prices (close, log(close) )
2009.07.16 - Peeks & Valeys
2009.07.18 - 4 colours
*/
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 7
#property indicator_color1 Gray // line
#property indicator_color2 Green // histogram up
#property indicator_color3 YellowGreen
#property indicator_color4 Maroon // histogram dn
#property indicator_color5 Tomato
#property indicator_color6 DeepSkyBlue // arrows
#property indicator_color7 Red
#property indicator_width1 1
#property indicator_width2 3
#property indicator_width3 3
#property indicator_width4 3
#property indicator_width5 3
#property indicator_width6 1
#property indicator_width7 1
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_SOLID
#property indicator_style3 STYLE_SOLID
#property indicator_style4 STYLE_SOLID
#property indicator_style5 STYLE_SOLID
#property indicator_level1 0
//---- indicator parameters
//-------------------------------------------------------------------
extern int TRIX_Period = 3;
extern string _____Averages_____ = "0=SMA, 1=EMA, 2=SMMA, 3=LWMA";
extern int Mode_Average_1 = 1;
extern int Mode_Average_2 = 1;
extern int Mode_Average_3 = 1;
extern string _____Input_Price_____ = "0=C,4=Median,5=Typical,6=Weighted";
extern int Input_Price = 0;
*------------------------------------
int i, limit=CountBars;
if (limit>Bars) limit=Bars-1;
//---- trix
//-- calculation
for(i=0; i<limit; i++) ind_buffer1a[i]=iMA(Symbol(),Period(),TRIX_Period,0,ModeAvg1,inputPrice,i);
for(i=0; i<limit; i++) ind_buffer2a[i]=iMAOnArray(ind_buffer1a,0,TRIX_Period,0,ModeAvg2,i);
for(i=0; i<limit; i++) ind_buffer7[i]=iMAOnArray(ind_buffer2a,0,TRIX_Period,0,ModeAvg3,i);
//-- TRIX
for(i=0; i<limit-1; i++) {
//-- Rate of change
if (ind_buffer7[i+1] != 0)
ind_buffer1a[i] = Scale * (ind_buffer7[i]-ind_buffer7[i+1]) / ind_buffer7[i+1];
}
for(i=0; i<limit-1; i++) ind_buffer2a[i]=iMAOnArray(ind_buffer1a,0,Signal_Period,0,MODE_EMA,i);
*------------------------------------
i=limit-1;
while(i>=0)
{
//-- draw signals
if (Draw_Signals == true) {
int shift = 0;
SignalUP[i+shift] = EMPTY_VALUE;
SignalDN[i+shift] = EMPTY_VALUE;
//-- long
bool bSignalUP = (ind_buffer6upPV[i+shift] > 0 && ind_buffer6upPV[i+shift] != EMPTY_VALUE && ind_buffer6dnPV[i+1+shift] < 0);
//-- short
bool bSignalDN = (ind_buffer6dnPV[i+shift] < 0 && ind_buffer6upPV[i+1+shift] != EMPTY_VALUE && ind_buffer6upPV[i+1+shift] > 0);
if (bSignalUP == true) {
SignalUP[i+shift] = 0;
SignalDN[i+shift] = EMPTY_VALUE;
}
if (bSignalDN == true) {
SignalUP[i+shift] = EMPTY_VALUE;
SignalDN[i+shift] = 0;
}