[¡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 927

 
RekkeR:
En este ejemplo, si no es muy difícil, ¿podría asomar la nariz?
:)))

int init()
{
int draw_begin;
string short_name;
//---- drawing settings
SetIndexStyle(0,DRAW_LINE);
SetIndexShift(0,MA_Shift);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
if(MA_Period<2) MA_Period=13;
draw_begin=MA_Period-1;
//---- indicator short name
switch(MA_Method)
{
case 1 : short_name="EMA("; draw_begin=0; break;
case 2 : short_name="SMMA("; break;
case 3 : short_name="LWMA("; break;
default :
MA_Method=0;
short_name="SMA(";
}
IndicatorShortName("");
SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
SetIndexBuffer(0,ExtMapBuffer);
SetIndexLabel(0,"");
//---- initialization done
return(0);
}
Eso debería ayudar.
 

Intenté editar el post, escribe demasiado texto y no pega con los cambios.

¿Es una parte editada del código o una parte extra?

 
dimon74:
Hola chicos, podríais aconsejar: deslizamiento - El valor del deslizamiento máximo en pips. ¿Qué es y para qué sirve? Siempre lo pongo a cero. Tal vez tenga sentido cambiarlo. ¿Puede ser modificado por mi empresa de corretaje? Gracias de antemano.

El deslizamiento es el valor máximo de deslizamiento cuando su corredor abre una operación (es decir, todavía quiere hacer una operación a un precio que es aún peor para usted), debe establecerlo en 2 o 3 o 5. "0" es una tolerancia demasiado pequeña que se define para el corredor en condiciones reales de mercado.

 
RekkeR:

Intenté editar el post, escribe demasiado texto y no pega con los cambios.

¿Es una parte editada del código o una parte extra?


Sólo hay que arreglar la función init()

Y el botón SRC se utiliza para pegar el código

 
Vinin:


Es sólo la función init(), que necesita ser arreglada

Y el botón SRC se utiliza para insertar el código

Gracias Víctor, me estudiaré el fin de semana, es una cosa curiosa la codificación.

Les informaré de los resultados.

 

Hombre, entiendo que te enfades al preguntar cien veces lo mismo en este hilo,

Como principiante, sin duda lo entendería, sería interesante hacerlo todo yo mismo

Puede que sea un principiante, lo resolvería yo mismo, es interesante hacerlo todo yo mismo.

Siempre me ha interesado esto, pero sigo atascado cuando miro el EA.

¿Puede ser que el problema no esté en el EA sino en el DC?

extern double StopLoss=1000.0;
extern double TakeProfit=1000.0;
extern double Lots=1.0;
extern int total;


int start() {

int dg;
double Price_1,Price_2,min,max,pa,pb,pt;

pt=MarketInfo(Symbol(),MODE_POINT);
dg=MarketInfo(Symbol(),MODE_DIGITS);
pa=MarketInfo(Symbol(),MODE_ASK);
pb=MarketInfo(Symbol(),MODE_BID);
Price_1=pb;
Price_2=pa;
min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();

double slB=NormalizeDouble(pa-StopLoss*pt,dg);
double tpB=NormalizeDouble(pa+TakeProfit*pt,dg);
double slS=NormalizeDouble(pb+StopLoss*pt,dg);
double tpS=NormalizeDouble(pb-TakeProfit*pt,dg);

  if(total<1) 
  {
   if(Price_1>max)
      OrderSend(Symbol(),OP_BUY,Lots,pa,2,slB,tpB,"My order#",16384,0,Green);

   if(Price_2<min)
      OrderSend(Symbol(),OP_SELL,Lots,pb,2,slS,tpS,"My order#",16384,0,Green);
  }

}

¿Ayuda?

 
artmedia70:

Busque la orden en el historial, y si la encuentra, compare su precio de cierre OrderClosePrice() con su nivel de StopLoss OrderStopLoss()

Si son iguales, significa que la posición se cerró con el Stop Loss.

aproximadamente entendido, gracias, me ocuparé de ello después de resolver el primer problema
 
gheka:

Entiendo que os cabreéis al preguntar cien veces lo mismo en este hilo,


¿Qué tipo de errores se producen cuando no se abre una posición? Puedes probar esto

 if(total<1) 
  {
   if(Price_1>max)
      OrderSend(Symbol(),OP_BUY,Lots,Ask,100,slB,tpB,"My order#",16384,0,Green);

   if(Price_2<min)
      OrderSend(Symbol(),OP_SELL,Lots,Bid,100,slS,tpS,"My order#",16384,0,Green);
  }
 
gheka:

Hombre, entiendo que te enfades al preguntar cien veces lo mismo en este hilo,

Como principiante, sin duda lo entendería yo mismo, porque es interesante hacerlo todo yo mismo

Puede que sea un principiante, lo resolvería yo mismo, es interesante hacerlo todo yo mismo.

Siempre me ha interesado esto, pero sigo atascado cuando miro el EA.

¿Puede ser que el problema no esté en el EA sino en el DC?

¿Ayuda?


Tal vez su empresa de corretaje no permite especificar explícitamente las posiciones de toma y parada, compruébelo - ponga ceros en la función de orden de apertura en sus lugares.
 
gheka:

Hombre, entiendo que te enfades al preguntar cien veces lo mismo en este hilo,

Como principiante, sin duda lo entendería yo mismo, porque es interesante hacerlo todo yo mismo

Puede que sea un principiante, pero todavía estoy desconcertado por el hecho de que el EA está siendo probado, pero no quiero que funcione en la cuenta demo y real.

Siempre me ha interesado esto, pero sigo atascado cuando miro el EA.

¿Puede que el problema no esté en el EA sino en el DC?

¿Ayuda?


Si al menos una posición está abierta (cualquiera - a mano, por otro EA) este EA no funcionará