Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hola,
Tengo un problema con mi indicador. Este código funciona muy bien:
//| RSMA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#property indicator_separate_window
#property indicator_minimum -40
#property indicator_maximum 100
#property indicator_level1 19
#property indicator_level2 -19
#property indicator_level3 0
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Yellow
#property indicator_color3 MediumOrchid
extern int RSI_Period = 9;
extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4
extern int MA_Period = 12;
extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
double MA_Array[],RSI[], Histo[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("RSMA");
SetIndexBuffer(0,Histo);
SetIndexLabel(0,"RSMA");
SetIndexBuffer(1,MA_Array);
SetIndexLabel(1,"MA("+MA_Period+")");
SetIndexBuffer(2,RSI);
SetIndexLabel(2,"RSI("+RSI_Period+")");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit = Bars - IndicatorCounted() - 1;
//---- indicator calculation
ArrayResize(RSI,limit+1);
ArrayResize(MA_Array,limit+1);
for(int i=limit; i>=0; i--)
{
RSI= iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);
}
for(i=limit; i>=0; i--)
{
MA_Array = iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);
}
for(i=limit; i>=0; i--)
{
Histo = RSI-MA_Array;
}
//----
return(0);
}
//+------------------------------------------------------------------+Me gustaría eliminar la línea RSI y EMA, pero cuando lo hago, el valor de cambio de histograma. :/
Agrego adjunto dos indicadores. ¡Ayúdenme!
Lo siento por mi Inglés.
Hola,
Tengo un problema con mi indicador. Este código funciona muy bien:
//| RSMA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#property indicator_separate_window
#property indicator_minimum -40
#property indicator_maximum 100
#property indicator_level1 19
#property indicator_level2 -19
#property indicator_level3 0
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Yellow
#property indicator_color3 MediumOrchid
extern int RSI_Period = 9;
extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4
extern int MA_Period = 12;
extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
double MA_Array[],RSI[], Histo[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators setting
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("RSMA");
SetIndexBuffer(0,Histo);
SetIndexLabel(0,"RSMA");
SetIndexBuffer(1,MA_Array);
SetIndexLabel(1,"MA("+MA_Period+")");
SetIndexBuffer(2,RSI);
SetIndexLabel(2,"RSI("+RSI_Period+")");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit = Bars - IndicatorCounted() - 1;
//---- indicator calculation
ArrayResize(RSI,limit+1);
ArrayResize(MA_Array,limit+1);
for(int i=limit; i>=0; i--)
{
RSI= iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);
}
for(i=limit; i>=0; i--)
{
MA_Array = iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);
}
for(i=limit; i>=0; i--)
{
Histo = RSI-MA_Array;
}
//----
return(0);
}
//+------------------------------------------------------------------+[/CODE]
I would like delete RSI and EMA line, but when I do it, histogram change value. :/
I add attachment two indicators. Help me!
Sorry for my English.Cambia el inicio por esto :
[CODE]//+------------------------------------------------------------------+
//| RSMA.mq4 |||||||||
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#propiedad indicador_separación_ventana
#propiedad indicador_mínimo -40
#propiedad indicador_máximo 100
#propiedad indicador_nivel1 19
#propiedad indicador_nivel2 -19
#propiedad indicador_nivel3 0
#propiedad indicator_buffers 1
#property indicador_color1 Cal
extern int RSI_Period = 9;
extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close)/4
extern int MA_Period = 12;
extern int MA_Método = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
double MA_Array[],RSI[], Histo[];
//+------------------------------------------------------------------+
//| Función de inicialización de los indicadores personalizados
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers)3);
//---- ajuste de los indicadoresCambia el comienzo por este :
//| RSMA.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#property indicator_separate_window
#property indicator_minimum -40
#property indicator_maximum 100
#property indicator_level1 19
#property indicator_level2 -19
#property indicator_level3 0
#property indicator_buffers 1
#property indicator_color1 Lime
extern int RSI_Period = 9;
extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4
extern int MA_Period = 12;
extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
double MA_Array[],RSI[], Histo[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers)3);
//---- indicators setting¡Sí! Es un trabajo. Gracias.
Tengo el siguiente problema. Mi indicador no cambia el valor de la barra actual. Debo Refrescar el gráfico.
//| RSMA Histogram.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
#property indicator_minimum -35
#property indicator_maximum 35
#property indicator_level1 19
#property indicator_level2 -19
#property indicator_level3 0
//#property indicator_color2 Yellow
//#property indicator_color3 MediumOrchid
extern double OverSold=-19.0;
extern double OverBought=19.0;
extern int RSI_Period=9;
extern int RSI_Applied_Price=0;
extern int MA_Period=12;
extern int MA_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
extern bool ShowArrows=true;
extern color OverSoldColor=Gold;
extern color OverBoughtColor = Gold;
extern string arrowsIdentifier = "RSMA arrows";
extern int arrowsWidth = 1;
extern int IDWindow=1;
extern string _Divergence="<>";
extern string _CBars="<>";
extern int CBars=99;
extern bool CheckDivergence=false;
extern bool CheckSlowDownMomentum=false;
extern string DivergenceIndentifier="RSMA Divergence";
double MA_Array[],RSI[],Histo[];
int trend[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(3);
//---- indicators setting
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("RSMA Histogram");
SetIndexBuffer(0,Histo);
SetIndexLabel(0,"RSMA");
SetIndexBuffer(1,MA_Array);
SetIndexLabel(1,"MA("+MA_Period+")");
SetIndexBuffer(2,RSI);
SetIndexLabel(2,"RSI("+RSI_Period+")");
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
deleteArrows();
fnDeleteAllDivergence();
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int limit=Bars-IndicatorCounted();
if(limit<0) return(-1);
if(limit>0) limit--;
//---- indicator calculation
ArrayResize(trend,limit+1);
ArrayResize(RSI,limit+1);
ArrayResize(MA_Array,limit+1);
for(int i=0; i<limit; i++)
{
RSI=iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);
}
for(i=0; i<limit; i++)
{
MA_Array=iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);
}
for(i=0; i<limit; i++)
{
Histo=RSI-MA_Array;
if(Histo>OverBought)
trend=1;
else if(Histo<OverSold)
trend=-1;
manageArrow(i);
}
if(CheckDivergence==true)
{
int x= CBars/3;
for(i=0; i<x; i++)
{
double open0=iOpen(NULL,0,i);
double close0= iClose(NULL,0,i);
double open1 = iOpen(NULL,0,i+1);
double close1= iClose(NULL,0,i+1);
double open2 = iOpen(NULL,0,i+2);
double close2 = iClose(NULL, 0, i+2);
bool momentum = true;
if(CheckSlowDownMomentum==true)
{
double bar0 = MathAbs(open0-close0);
double bar1 = MathAbs(open1-close1);
double bar2 = MathAbs(open2-close2);
if(bar0<bar1 && bar1<bar2)
momentum=true;
else
momentum=false;
}
//PUT
if(Histo<Histo && Histo<Histo && open0<close0 && open1<close1 && open2<close2 && momentum==true)
{
double high0 = iHigh(NULL, 0, i);
double high2 = iHigh(NULL, 0, i+2);
TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);
TrendCreate(DivergenceIndentifier+"Main"+i,Time,high2,Time,high0,Red,STYLE_SOLID,1,0);
}
else if(Histo>Histo && Histo>Histo && open0>close0 && open1>close1 && open2>close2 && momentum==true)
{
double low0 = iLow(NULL, 0, i);
double low2 = iLow(NULL, 0, i+2);
TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);
TrendCreate(DivergenceIndentifier+"Main"+i,Time,low2,Time,low0,Red,STYLE_SOLID,1,0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
void manageArrow(int i)
{
if(ShowArrows)
{
deleteArrow(Time);
if(trend ==-1) drawArrow(i,OverBoughtColor,159,false);
if(trend == 1) drawArrow(i,OverSoldColor ,159,true );
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void fnDeleteAllDivergence()
{
string lookFor=DivergenceIndentifier;
string objectName;
int lookForLength=StringLen(lookFor);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
objectName=ObjectName(i);
if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);
}
}
//
//
//
//
//
void drawArrow(int i,color theColor,int theCode,bool up)
{
string name=arrowsIdentifier+":"+Time;
double gap=3.0*iATR(NULL,0,10,i)/4.0; //20
//
//
//
//
//
ObjectCreate(name,OBJ_ARROW,0,Time,0);
ObjectSet(name,OBJPROP_ARROWCODE,theCode);
ObjectSet(name,OBJPROP_COLOR,theColor);
ObjectSet(name,OBJPROP_WIDTH,arrowsWidth);
if(up)
ObjectSet(name,OBJPROP_PRICE1,High+gap);
else ObjectSet(name,OBJPROP_PRICE1,Low-gap);
}
//
//
//
//
//
void deleteArrows()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName=ObjectName(i);
if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deleteArrow(datetime time)
{
string lookFor=arrowsIdentifier+":"+time; ObjectDelete(lookFor);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
bool TrendCreate(string name="Line1",
datetime time1=0, // first point time
double price1=0, // first point price
datetime time2=0, // second point time
double price2=0, // second point price
const color clr=clrRed, // line color
const ENUM_LINE_STYLE style=STYLE_SOLID, // line style
const int width=1,
const int window=0 // line width // highlight to move
)
{
//--- reset the error value
ResetLastError();
//--- create a trend line by the given coordinates
if(!ObjectCreate(name,OBJ_TREND,window,time1,price1,time2,price2))
{
Print(__FUNCTION__,": failed to create a trend line! Error code = ",GetLastError());
return(false);
}
//--- set line color
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- set line display style
ObjectSetInteger(0,name,OBJPROP_STYLE,style);
//--- set line width
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
//--- enable (true) or disable (false) the mode of continuation of the line's display to the right
ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
//--- successful execution
return(true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CleanPoint(int i,double &first[],double &second[])
{
if((second!=EMPTY_VALUE) &&(second !=EMPTY_VALUE))
second=EMPTY_VALUE;
else
if((first!=EMPTY_VALUE) && (first!=EMPTY_VALUE) && (first==EMPTY_VALUE))
first=EMPTY_VALUE;
}
//
//
//
//
//
void PlotPoint(int i,double &first[],double &second[],double &from[])
{
if(first==EMPTY_VALUE)
{
if(first==EMPTY_VALUE)
{
first = from;
first = from;
second = EMPTY_VALUE;
}
else
{
second = from;
second = from;
first = EMPTY_VALUE;
}
}
else
{
first = from;
second = EMPTY_VALUE;
}
}
//+------------------------------------------------------------------+
//---
Tengo el siguiente problema. Mi indicador no cambia el valor de la barra actual. Debo Refrescar el gráfico.
Prueba así:
//| RSMA Histogram.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
#property copyright "Tartut"
#property link ""
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Lime
#property indicator_minimum -35
#property indicator_maximum 35
#property indicator_level1 19
#property indicator_level2 -19
#property indicator_level3 0
//#property indicator_color2 Yellow
//#property indicator_color3 MediumOrchid
extern double OverSold=-19.0;
extern double OverBought=19.0;
extern int RSI_Period=9;
extern int RSI_Applied_Price=0;
extern int MA_Period=12;
extern int MA_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA
extern bool ShowArrows=true;
extern color OverSoldColor=Gold;
extern color OverBoughtColor = Gold;
extern string arrowsIdentifier = "RSMA arrows";
extern int arrowsWidth = 1;
extern int IDWindow=1;
extern string _Divergence="<>";
extern string _CBars="<>";
extern int CBars=99;
extern bool CheckDivergence=false;
extern bool CheckSlowDownMomentum=false;
extern string DivergenceIndentifier="RSMA Divergence";
double MA_Array[],RSI[],Histo[];
double trend[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(4);
//---- indicators setting
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("RSMA Histogram");
SetIndexBuffer(0,Histo);
SetIndexLabel(0,"RSMA");
SetIndexBuffer(1,MA_Array);
SetIndexLabel(1,"MA("+MA_Period+")");
SetIndexBuffer(2,RSI);
SetIndexLabel(2,"RSI("+RSI_Period+")");
SetIndexBuffer(3,trend);
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
deleteArrows();
fnDeleteAllDivergence();
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
//---- indicator calculation
Comment(limit);
for(int i=0; i<limit; i++)
{
RSI=iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);
}
for(i=0; i<limit; i++)
{
MA_Array=iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);
}
for(i=0; i<limit; i++)
{
Histo=RSI-MA_Array;
if(Histo>OverBought)
trend=1;
else if(Histo<OverSold)
trend=-1;
manageArrow(i);
}
if(CheckDivergence==true)
{
int x= CBars/3;
for(i=0; i<x; i++)
{
double open0=iOpen(NULL,0,i);
double close0= iClose(NULL,0,i);
double open1 = iOpen(NULL,0,i+1);
double close1= iClose(NULL,0,i+1);
double open2 = iOpen(NULL,0,i+2);
double close2 = iClose(NULL, 0, i+2);
bool momentum = true;
if(CheckSlowDownMomentum==true)
{
double bar0 = MathAbs(open0-close0);
double bar1 = MathAbs(open1-close1);
double bar2 = MathAbs(open2-close2);
if(bar0<bar1 && bar1<bar2)
momentum=true;
else
momentum=false;
}
//PUT
if(Histo<Histo && Histo<Histo && open0<close0 && open1<close1 && open2<close2 && momentum==true)
{
double high0 = iHigh(NULL, 0, i);
double high2 = iHigh(NULL, 0, i+2);
TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);
TrendCreate(DivergenceIndentifier+"Main"+i,Time,high2,Time,high0,Red,STYLE_SOLID,1,0);
}
else if(Histo>Histo && Histo>Histo && open0>close0 && open1>close1 && open2>close2 && momentum==true)
{
double low0 = iLow(NULL, 0, i);
double low2 = iLow(NULL, 0, i+2);
TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);
TrendCreate(DivergenceIndentifier+"Main"+i,Time,low2,Time,low0,Red,STYLE_SOLID,1,0);
}
}
}
return(0);
}
//+------------------------------------------------------------------+
void manageArrow(int i)
{
if(ShowArrows)
{
deleteArrow(Time);
if(trend ==-1) drawArrow(i,OverBoughtColor,159,false);
if(trend == 1) drawArrow(i,OverSoldColor ,159,true );
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void fnDeleteAllDivergence()
{
string lookFor=DivergenceIndentifier;
string objectName;
int lookForLength=StringLen(lookFor);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
objectName=ObjectName(i);
if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);
}
}
//
//
//
//
//
void drawArrow(int i,color theColor,int theCode,bool up)
{
string name=arrowsIdentifier+":"+Time;
double gap=3.0*iATR(NULL,0,10,i)/4.0; //20
//
//
//
//
//
ObjectCreate(name,OBJ_ARROW,0,Time,0);
ObjectSet(name,OBJPROP_ARROWCODE,theCode);
ObjectSet(name,OBJPROP_COLOR,theColor);
ObjectSet(name,OBJPROP_WIDTH,arrowsWidth);
if(up)
ObjectSet(name,OBJPROP_PRICE1,High+gap);
else ObjectSet(name,OBJPROP_PRICE1,Low-gap);
}
//
//
//
//
//
void deleteArrows()
{
string lookFor = arrowsIdentifier+":";
int lookForLength = StringLen(lookFor);
for(int i=ObjectsTotal()-1; i>=0; i--)
{
string objectName=ObjectName(i);
if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deleteArrow(datetime time)
{
string lookFor=arrowsIdentifier+":"+time; ObjectDelete(lookFor);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
bool TrendCreate(string name="Line1",
datetime time1=0, // first point time
double price1=0, // first point price
datetime time2=0, // second point time
double price2=0, // second point price
const color clr=clrRed, // line color
const ENUM_LINE_STYLE style=STYLE_SOLID, // line style
const int width=1,
const int window=0 // line width // highlight to move
)
{
//--- reset the error value
ResetLastError();
//--- create a trend line by the given coordinates
if(!ObjectCreate(name,OBJ_TREND,window,time1,price1,time2,price2))
{
Print(__FUNCTION__,": failed to create a trend line! Error code = ",GetLastError());
return(false);
}
//--- set line color
ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- set line display style
ObjectSetInteger(0,name,OBJPROP_STYLE,style);
//--- set line width
ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
//--- enable (true) or disable (false) the mode of continuation of the line's display to the right
ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
//--- successful execution
return(true);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CleanPoint(int i,double &first[],double &second[])
{
if((second!=EMPTY_VALUE) &&(second !=EMPTY_VALUE))
second=EMPTY_VALUE;
else
if((first!=EMPTY_VALUE) && (first!=EMPTY_VALUE) && (first==EMPTY_VALUE))
first=EMPTY_VALUE;
}
//
//
//
//
//
void PlotPoint(int i,double &first[],double &second[],double &from[])
{
if(first==EMPTY_VALUE)
{
if(first==EMPTY_VALUE)
{
first = from;
first = from;
second = EMPTY_VALUE;
}
else
{
second = from;
second = from;
first = EMPTY_VALUE;
}
}
else
{
first = from;
second = EMPTY_VALUE;
}
}
//+------------------------------------------------------------------+
//---Prueba así :
Eres el mejor Gracias
Hola a todos, puede alguien arreglar este indicador para que muestre las barras rojas hacia abajo, ya que sólo puedo ver las verdes hacia arriba. Gracias de antemano. (Volumen Deltaforce)
También podríais arreglar esto para que pueda ajustar el grosor de las barras. (Deltaforce) Gracias de nuevo
Hola Mladen y Mr. Tools
Tengo un problema y no tengo idea de cómo hacerlo, tal vez con un indicador o con EA, pero realmente lo necesito, tal vez me puedan ayudar:
Necesito un sistema de órdenes semiautomático, es decir, obtengo manualmente la primera operación, "orden de mercado" con SL y TP, si se alcanza el SL el sistema crea una nueva orden en sentido contrario con SL (para la nueva orden es la entrada), la entrada de la primera operación es ahora el SL y el TP que siempre es el mismo valor en pips, pero me gustaría poner manualmente en la configuración, cuantos lotes o mini lotes deben abrirse en la operación progresiva, tipo martingala, pero no realmente...., hasta que el TP sea alcanzado, el sistema debería crear nuevas órdenes, cuando el TP sea alcanzado el sistema se detendrá o cerrará, hasta que yo ponga manualmente la primera orden de nuevo. Espero no haber creado un lío en la explicación ;-)
¿Hay algo como esto que pueda usar?
Muchas gracias
Hola Mladen y Mr. Tools
Tengo un problema y no tengo ni idea de cómo hacerlo, quizás con un indicador o con un EA, pero realmente lo necesito, quizás me podáis ayudar:
Necesito un sistema de órdenes semiautomático, es decir, obtengo manualmente la primera operación, "orden de mercado" con SL y TP, si se alcanza el SL el sistema crea una nueva orden en sentido contrario con SL (para la nueva orden es la entrada), la entrada de la primera operación es ahora el SL y el TP que siempre es el mismo valor en pips, pero me gustaría poner manualmente en la configuración, cuantos lotes o mini lotes deben abrirse en la operación progresiva, tipo martingala, pero no realmente...., hasta que el TP sea alcanzado, el sistema debería crear nuevas órdenes, cuando el TP sea alcanzado el sistema se detendrá o cerrará, hasta que yo ponga manualmente la primera orden de nuevo. Espero no haber creado un lío en la explicación ;-)
¿Hay algo como esto que pueda usar?
Muchas graciaslaborax
Esas reglas son demasiado flojas para hacer un EA basado en eso y hasta donde yo sé, no existe tal EA
He encontrado este EA, que es lo que estaba buscando... ¿qué te parece?
https://www.mql5.com/en/forum/184476