¿En el probador en un símbolo diferente? ¿O en demo/real en un símbolo diferente? ¿O en el probador de este símbolo? ¿O en demo/real en este símbolo?
¿Por qué tienes que sacar todo de ti?
¿Qué quieres decir? ¿Qué diferencia hay en el lugar donde lo has probado? La cuestión es si Punto = 0. Y si se puede, ¿cómo escribo el código correctamente para no encontrarme con un error: división por cero?
Lo siento, soy muy friki, no lo entiendo. Tal vez usted tiene el indicador más simple con un código de algunos, tengo una analogía de entender? Porque no pude encontrar ninguno.
Tengo un código muy simple que pone puntos en el centro de la barra. Cómo hago para que aparezca el texto al pasar el ratón por encima de ellos, o una caja, lo que sea.
#property indicator_chart_window #property indicator_buffers1 #property indicator_color1 Black //---- input parameters //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,159); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //----
Gevorg Hakobyan: ¿Qué quieres decir? ¿Qué diferencia hay en el lugar donde lo has probado? La cuestión es si Punto = 0. Y si se puede, ¿cómo debo escribir el código correcto para no encontrarme con un error: división por cero?
Como quieras.
Así que comprueba el divisor a cero antes de dividir.
Pensé que te interesaba la causa, no el efecto, y la muleta adecuada.
En general, eso es lo que necesitas, pero el problema es que la descripción será bastante grande, y este método puede escribir literalmente un par de palabras - el resto simplemente no aparece
¿En el probador en un símbolo diferente? ¿O en demo/real en un símbolo diferente? ¿O en el probador de este símbolo? ¿O en demo/real en este símbolo?
¿Por qué tienes que sacar todo de ti?
Lo siento, soy muy friki, no lo entiendo.
Tal vez usted tiene el indicador más simple con un código de algunos, tengo una analogía de entender? Porque no pude encontrar ninguno.
Tengo un código muy simple que pone puntos en el centro de la barra. Cómo hago para que aparezca el texto al pasar el ratón por encima de ellos, o una caja, lo que sea.
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black
//---- input parameters
//---- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,159);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexEmptyValue(0,0.0);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
int limit=Bars-counted_bars;
//----
for(int i=limit; i>=0; i--)
{
double fabody0 = fabs(Close[i]-Open[i]);
double fabody1 = fabs(Close[i+1]-Open[i+1]);
double fabody2 = fabs(Close[i+2]-Open[i+2]);
double fabody3 = fabs(Close[i+3]-Open[i+3]);
double fabody4 = fabs(Close[i+4]-Open[i+4]);
double fabody5 = fabs(Close[i+5]-Open[i+5]);
double fabody6 = fabs(Close[i+6]-Open[i+6]);
double fabody7 = fabs(Close[i+7]-Open[i+7]);
if((fabody0>fabody1) && (fabody0>fabody2) && (fabody0>fabody3) && (fabody0>fabody4) && (fabody0>fabody5) && (fabody0>fabody6) &&(Volume[i]>Volume[i+1]))
{
if (((Close[i]>Open[i])&&(Low[i]+(High[i]-Low[i])/2>Low[i+1]+(High[i+1]-Low[i+1])*0.9))||((Close[i]<Open[i])&&(Low[i]+(High[i]-Low[i])/2<Low[i+1]+(High[i+1]-Low[i+1])*0.1)))
ExtMapBuffer1[i]=(iHigh(Symbol(),0,i)+iLow(Symbol(),0,i))/2;
}
}
//----
return(0);
}
¿Qué quieres decir? ¿Qué diferencia hay en el lugar donde lo has probado? La cuestión es si Punto = 0. Y si se puede, ¿cómo debo escribir el código correcto para no encontrarme con un error: división por cero?
Como quieras.
No he leído todo el diálogo, pero sospecho que es un problema de impresión del quinto decimal.
No, divide por Punto() y obtiene la división por cero.
No he leído todo el diálogo, pero sospecho que es un problema de impresión del quinto decimal.
¿Podría ser ese el problema?
Prueba con
Hola.
Por favor, ayuda.
Ahora el lote de cada orden siguiente se incrementa en 1, 2, 3, 4, 5...
Quiero aumentar el lote no cada orden, sino en pasos de 3, así que 1, 1, 1, 1, 2, 2, 2, 3, 3, 3...
extern double Plus_LotStop = 0.01;
extern double Plus_N_ORD = 3; //каждые N ордеров
void OnTick()
{
//---
for (int i=1; i<=OrdersStop; i++)
{
if((Close[1]<Open[1]&&Close[2]>Open[2]&&NumberOfPositions(Symbol(), -1,_Magic)<1))
{
OPENORDER (OP_BUYSTOP,PriceBS,LOTs,_Magic,i);
numB++;
PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
OPENORDER (OP_SELLSTOP,PriceSS,LOTs,_Magic,i);
numS++;
PriceSS = NormalizeDouble(PriceSS-Step_Stop*Point,Digits);
}
LOTs=LOTs+Plus_LotStop;
}
}