[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 806

 
Dersu:

GRACIAS por su atención, drknn.

Para ser honesto, no he leído sus hilos - sólo miré en este hilo, vi que nadie respondió al post repetido, decidí responder... No tengo tiempo para todo seguido, tengo que ser exigente.
 
extern string Settings = "Main Settings"; //
extern int MagicNumber = 227 ; //Número individual //.
extern double Lotes = 1 ; //lote mínimo ///.
extern int Beneficio = 5000 ; // Toma de Beneficio //
extern inttern Pérdida = 10000 ; //Stop Pérdida //.
extern int Delta = 500 ;
extern int Raznica = 700 ; //Pérdida de la parada;
//--------------------------------------------------------------------------------//
extern string Indicador2 = "Bandas" ; //
extern int int BandsPeriod = 20 ; // //periodo
extern inttern Bands_shift = 0 ; //offset //
extern double Desviaciones = 2.0 ; // //
//--------------------------------------------------------------------------------//
extern int Slip = 5 ; //Slip ///////////////
int tick,tick2,go; // //
//--------------------------------------------------------------------------------//
int inicio() //
{ /////////////////////////////////
//---------------------------------------------------------------------------------------------------------------//
// Indicador de bandas //
//---------------------------------------------------------------------------------------------------------------//
double verhB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_UPPER,0);//calcular indicador de línea superior//
double seredina=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,0,0); //calcular el indicador de línea media//
double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_LOWER,0);//calcular indicador de línea inferior//
//---------------------------------------------------------------------------------------------------------------//
doble slb,tpb,sls,tps;
doble go=(verhB-nizB);
Alert ("verhB",DoubleToStr(verhB,Digits));
Alert ("nizB ",DoubleToStr(nizB,Digits));
slb=NormalizarDoble(Demanda - (Pérdida*Punto),Dígitos) ;
tpb=NormalizarDoble(Demanda + (Beneficio*Punto),Dígitos);
sls=NormalizarDoble(Oferta + (Pérdida*Punto),Dígitos) ;
tps=NormalizarDoble(Oferta - (Beneficio*Punto),Dígitos);
if(PedidosTotal()==0)
{
if(go<=Delta/10000)
Alert("¡Delta ", DoubleToStr(go,Digits)," está llegando!!!";)
tick =OrderSend(Symbol(),4,Lots,NormalizeDouble(Ask+Raznica*Point,Digits),Slip,slb,tpb,NULL,MagicNumber,0,CLR_NONE); //introducir por/
if(tick<0) Print("Error # - ",GetLastError());

tick=OrderSend(Symbol(),5,Lots,NormalizeDouble(Bid-Raznica*Point,Digits),Slip,sls,tps,NULL,MagicNumber,0,CLR_NONE); //se establece la entrada
if(tick<0) Print("Error # - ",GetLastError());



}

return(0);}


Ayúdame a arreglar !!!! ¡¡¡Llevo una semana trasteando!!! El punto es que en una cierta distancia entre el límite superior e inferior de la Bollinger dos colgantes se pusieron en la parada de compra y venta de parada. No puedo establecer la diferencia porque escribe que el límite superior e inferior del precio de Bollinger es el mismo .... Por favor, ayude a ......

 
No mire mal los comentarios de la función
 
zhuki:
Probablemente no tengas un lote normalizado, normalízalo con:
double NormalizeDouble( valor doble, dígitos int)

¡¡No se puede redondear mucho a los dígitos!!
 
VOLDEMAR:
no mire los comentarios a las funciones equivocadas

prestar atención a

double verhB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_UPPER,0);//calcular indicador de línea superior//

double seredina=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,0,0); //calcular el indicador de línea media//

double nizB=iBands(NULL,0,BandsPeriod,Bands_shift,Deviations,PRICE_CLOSE,MODE_LOWER,0);//calcular indicador de línea inferior //

cambiarlos

 
Me salgo del tema! ¿Cómo obtener Punto = 0,00001 (5 dígitos) para alpari por medios estándar?
 
ruslanchik:
Me salgo del tema! ¿Cómo obtener Punto = 0,00001 (5 dígitos) para alpari por medios estándar?
double point(string symb){
   double p = 0;        
   int d = 0;
        
   p = MarketInfo(symb, MODE_POINT);    
   d = MarketInfo(symb, MODE_DIGITS);
   if (d == 5 || d == 3) p *= 10;
   return(p);
}
 
¡BIEN!
 

Buenas tardes

Quién miraría el código del indicador - no escucha la configuración en absoluto.

No soy bueno con el código

//---- ajustes del indicador
#property indicador_separar_ventana
#property indicator_buffers 1
#property indicator_color1 Silver
//---- parámetros del indicador
extern int FastEMA=12;
extern inttern SlowEMA=26;
extern inttern SeñalSMA=9;
//---- búferes indicadores
doble ind_buffer1[];
doble ind_buffer2[];
doble ind_buffer3[];
doble ind_buffer4[];

//+------------------------------------------------------------------+
//| Función de inicialización de indicadores personalizada |
//+------------------------------------------------------------------+
int init()
{
//---- Se utilizan 2 buffers adicionales para el conteo.
IndicatorBuffers(4);
//---- ajustes de dibujo
SetIndexStyle(0,DRAW_LINE);
SetIndexDrawBegin(0,SignalSMA);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicadores de la asignación de buffers
if(!SetIndexBuffer(0,ind_buffer1) &&
SetIndexBuffer(1,ind_buffer2) &&
SetIndexBuffer(3,ind_buffer4) &&
SetIndexBuffer(2,ind_buffer3))
Print("¡no se pueden fijar los buffers de los indicadores!");
//---- nombre para la etiqueta de la subventana DataWindow y del indicador
IndicadorNombreCorto();
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| Media móvil del oscilador |
//+------------------------------------------------------------------+
int inicio()
{
int límite;
int barras_contadas=IndicadorContado();
//---- comprobar posibles errores
if(counted_bars<0) return(-1);
//---- la última barra contada se volverá a contar
if(counted_bars>0) counted_bars--;
limit=Barras_contabilizadas;
//---- macd contada en el 1er búfer adicional
for(int i=0; i<limit; i++)
ind_buffer2[i]=iOBV(NULL, 0, PRICE_CLOSE, i);
//---- línea de señalización contada en el 2º búfer adicional
for(i=0; i<limit; i++) {
ind_buffer3[i]=iMAOnArray(ind_buffer2,Bars,10,0,MODE_SMA,i);
ind_buffer4[i]=iMAOnArray(ind_buffer2,Bars,3,0,MODE_SMA,i);
}
//---- bucle principal
for(i=0; i<limit; i++)
ind_buffer1[i]=ind_buffer2[i]-ind_buffer3[i];
//---- hecho
return(0);
}
//+------------------------------------------------------------------+

xtern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9; Estos ajustes. Los cambios en la caja no conducen a nada. La línea del indicador no cambia.

El autor ha matado mi petición

 
Probablemente tenga un borrador o un código incompleto. El indicador está cableado y ninguna de las variables externas se utiliza en el código.
Razón de la queja: