[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 480

 

Ayudar a dar sentido a este Asesor Experto

basado en el indicador alligator
señal de compra cuando la línea verde cruza la azul y la roja de abajo a arriba abre una posición en la compra
señal de venta cuando la línea verde cruza la roja y la azul de arriba a abajo abre una posición en la venta
posición cerrada cuando StopLoss y TakeProfit


no hay errores durante la compilación, pero hay errores durante la prueba en el probador de la estrategia
el primer error de espera para la orden de la cadena no se abrió código borrado que contiene la cadena de la cadena de compilado no hay errores corrió en el probador de la estrategia
funciona, pero abre sólo la posición de venta a la compra no quiere
¿Podría usted por favor, mirar y firmar lo que está mal en el código

Archivos adjuntos:
all_2.mq4  2 kb
 
novicek:

Ayúdame a lidiar con este EA

indicador de caimán
una señal de compra cuando la línea verde cruza la azul y la roja cruza de abajo hacia arriba, abre una posición de Compra
una señal de venta cuando la línea verde cruza la roja y la azul desde arriba hacia abajo abre una posición de Venta
las posiciones se cierran cuando se alcanza el StopLoss y el TakeProfit


no hay errores durante la compilación, pero cuando se prueba en el probador dela estrategia hay errores
el primer error a la espera de la orden de la cadena no se abrió el código que contiene la cadena de compilado no hay errores se ejecutan en el probador de la estrategia
funciona, pero abre sólo las posiciones en la venta en la compra no quiere
¿Podríausted por favor, mirar y escribir lo que está mal en el código


mira las primeras líneas:

OrderSend(Symbol(),OP_BUY,Lot,Ask,Slippage,magic,Ask , StopLoss * Point, Ask , TakeProfit * Point);
            
OrderSend(Symbol(),OP_SELL,Lot,Bid,Slippage,magic,Bid , StopLoss * Point, Bid , TakeProfit * Point);

Ahora mire la especificación de la función OrderSend en sí misma (vea la descripción aquí https://docs.mql4.com/ru/trading/OrderSend)

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 

y comprueba si los parámetros siguen ahí

 
novicek:

Que no haya dudas sobre mi alfabetización
Lo de no poner signos de puntuación es un atracón mío, nada más.


Cuando hagas valer tu "no puntuar", no te sorprendas de que tus cuestionamientos sean frecuentemente ignorados.

La gente también tiene la costumbre de respetarse a sí misma.
También tienen la costumbre de respetar su propia lengua.

 
Gracias, pero no he podido encontrar la solución ahí, necesito aplicar bollinger a rsi, puedo hacerlo manualmente, pero ¿cómo lo hago programáticamente?
 
ZZZEROXXX:
Gracias, pero no encontré la solución ahí, necesito imponer bollinger en rsi, se puede hacer manualmente, pero ¿cómo hacerlo programáticamente?

Bollinger es la MA empujada hacia arriba y hacia abajo en StdDev. Puedes hacerlo de dos maneras.

1. Si está satisfecho con el cambio de desviación entera de Deviat, puede utilizar la función iBandsOnArray

2. Si también necesita contar fracciones decimales de Deviat, tendrá que utilizar las funciones iMAOnArray e iStdOnArray

Esto es lo que parece en el código:

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_minimum 0
#property indicator_maximum 100

#property indicator_color1 SkyBlue
#property indicator_color2 LimeGreen
#property indicator_color3 LimeGreen
#property indicator_color4 LimeGreen
#property indicator_style2 STYLE_DOT

extern int rsiPeriod=14;
extern int rsiPrice=PRICE_CLOSE;
extern int bbPeriod=20;
extern int bbShift=0;
int bbMethod=MODE_SMA;
extern double bbDeviat=2;

double rsi[], ma[], up[], dn[], stdev[];
//------------------------------------------------------------------    init
int init()
{
  int i=0;
  SetIndexBuffer(i, rsi); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "RSI"); i++;
  SetIndexBuffer(i, ma); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "MA"); i++;
  SetIndexBuffer(i, up); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "UP"); i++;
  SetIndexBuffer(i, dn); SetIndexStyle(i, DRAW_LINE); SetIndexLabel(i, "DN"); i++;
  IndicatorBuffers(5);
  SetIndexBuffer(i, stdev); SetIndexStyle(i, DRAW_NONE); // добавочный буфер расчета
  return(0);
}
//------------------------------------------------------------------    start
int start()
{
  int count=IndicatorCounted(); if (count<0) return; // если ошибка расчета
  int lim=Bars-count; if (lim>1) lim=Bars-1; // если нерасчитано более 1 бара, то полный пересчет
  // 1. получаем массив RSI
  for (int i=lim; i>=0; i--) rsi[i]=iRSI(Symbol(), Period(), rsiPeriod, rsiPrice, i);
  // 2. строим на основе RSI - МА (средняя линия болинджера), StdDev и Верхнюю и Нижнюю границу Боллинджера
  for (i=lim; i>=0; i--) 
  {
    ma[i]=iMAOnArray(rsi, 0, bbPeriod, bbShift, bbMethod, i); // средняя линия
    stdev[i]=iStdDevOnArray(rsi, 0, bbPeriod, bbShift, bbMethod, i); // отклонение
    up[i]=ma[i]+bbDeviat*stdev[i]; // верхняя граница
    dn[i]=ma[i]-bbDeviat*stdev[i]; // нижняя граница
  }
  return(0);
}
Archivos adjuntos:
_bbonrsi.mq4  3 kb
 
abolk:

Cuando pongas en práctica tu sesgo de "no puntuar", no te sorprendas de que tus mensajes cuestionadores sean frecuentemente ignorados.
La gente también tiene tendencia a respetarse a sí misma.
También tienen la costumbre de respetar su propia lengua.

Así es. Hace daño a la vista y da ganas de apartarse.
Y las dudas surgen de todos modos: "sobre mi alfabetización (educación)".
 
sergeev:

En el código, se ve así:

Gracias. Justo lo que necesitas.
 
abolk:


Cuando pongas en práctica tu sesgo de "no puntuar", no te sorprendas de que tus mensajes cuestionadores sean frecuentemente ignorados.

La gente también tiene tendencia a respetarse a sí misma.
También tienen la costumbre de respetar su propia lengua.

Yo, por ejemplo, todavía no sé dónde ponerlos, sólo sé que debe haber un punto al final, eso lo tengo claro. El ruso es el idioma más difícil. Pero tiene la ventaja de que se puede expresar de tal manera que cualquier otro idioma sería la envidia sobre todo el lenguaje de los tacos, es corto y sencillo, yo a veces lo uso cuando alguien tiene dificultades para entenderte los tacos y todo el mundo entiende inmediatamente todo y nadie te viene con preguntas estúpidas durante el día.
 
Estimado, ¿podría aconsejar cómo llamar a la información Open[1] y Close[1] de varios TFs en el Asesor Experto?
 
Un bzik y una B en ruso son cosas diferentes. Tengo un sólido B, soy lo suficientemente bueno.