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

 
Karabas >> :

Hola, ¿podríais decirme si es posible cambiar el color del indicador? Digamos que hay dos medias móviles con diferentes períodos en la ventana principal con diferentes colores. >> Gracias


Haga clic con el botón derecho del ratón en una de las medias móviles y aparecerá una ventana, haga clic en "propiedades de la media móvil" y allí verá dónde cambiar el color

 
xruss >> :

Cls_B y Cls_S permiten cerrar una posición y no pueden contradecir a Opn_B Opn_S. aquí hay que escribir en el código una serie de tiempo que marque la barra en la que se abrió la orden de compra o venta y en la que debe cerrarse para que no se abran más posiciones durante este periodo((

No me refiero a sustituir las condiciones de apertura que ya tienes, sino a añadir otras nuevas. Según entiendo, usted quiere prohibir que el EA abra una posición en una señal de apertura, si no hay una señal de cierre en la misma señal. Así que añade:

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

Y si lo haces a tu manera, ¿cómo calculas la barra en la que debe cerrarse una posición en algún momento? :)

 

Hola

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,0);
 double Macd_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,1);
 double signal_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,0);
 double signal_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < signal_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > signal_1 && signal_1 < 0))
     if( CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Esta es la primera opción.

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,0);
 double Macd_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,1);
 double signal_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,0);
 double signal_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < Macd_0 && signal_1 < Macd_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL)) //продажа
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > Macd_0&& signal_1 > Macd_1&& signal_1 < 0))
     if( CheckOrders(OP_BUY)) //покупка
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Esta es la segunda variante.

Asesor Experto basado en macd, el comercio es simple (todo se basa en 0 y 1 barra, el precio está abierto).

En el primer caso los valores macd aumentan (para la compra), para la venta disminuyen. La línea de señalización también se basa en estas condiciones.

En el segundo caso intenté realizar el cruce de la línea macd rápida y lenta. Pero aún quedan algunas dudas.............Si es correcto.........

 
Everlost >> :

No me refiero a sustituir las condiciones de apertura que ya tienes, sino a añadir otras nuevas. Según entiendo, usted quiere prohibir que el EA abra una posición en una señal de apertura, si no hay una señal de cierre en la misma señal. Así que añádelos:

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

Y si lo haces a tu manera, ¿cómo calculas la barra en la que debe cerrarse la posición en algún momento? :)

¿Cómo se abre una posición?)

porque se abre cuando Opn_B=true Cls_B=false y Cls_B no puede ser verdadero en ese momento.


digamos que tenemos una MA` que cruzó las cotizaciones del precio (formó Opn_S), abrió una posición a la baja y el SL- se movió al Breakeven. y luego el precio deslizó el SL al Breakeven y...

en mi caso, se abre una posición down(((( antes de que se forme una nueva señal de cruce de precios MA` (Cls_S)



 
xruss >> :

¿pero cómo se abrirá mi posición?:)

porque se abre cuando Opn_B=true Cls_B=false y Cls_B no puede ser verdadero en ese momento.

Bien, crea otra variable, por ejemplo, int Última_Posición=-1. Introduzca allí el tipo de orden en cuanto se abra la posición. Y añade condiciones:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

 
Everlost >> :

Bien, crea otra variable, por ejemplo, int Última_Posición=-1. Introduzca allí el tipo de orden en cuanto se abra la posición. Y añade condiciones:

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

Así es más o menos como lo hice, pero me decepcionó un poco el resultado(

A veces la tendencia se afloja, entra en una posición plana (se corrige) y luego sigue moviéndose de nuevo con una nueva fuerza y da la señal Opn_S correcta que se bloqueará de esta manera. ¿Cómo limitar la operación con una orden en la zona de la señal Opn_S a Cls_S y de Opn_B a Cls_B?

 
xruss >> :

Yo lo hice así, pero no estoy contento con el resultado((

A veces la tendencia se debilita, entra en un plano (hace una corrección) y luego sigue moviéndose con una nueva fuerza y da la señal correcta Opn_S, que por lo tanto se bloqueará. ¿Cómo limitar la operación con una orden en la zona de la señal Opn_S a Cls_S y de Opn_B a Cls_B?

Es muy sencillo - cuando se recibe la señal Cls_S o Cls_B, hay que olvidarse de la última posición abierta (volver a poner el valor de la variable Last_Position en -1).

if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;

 
¿Puedes aconsejar cómo añadir una condición al Asesor Experto, para que sepa que la operación anterior fue perdedora?
 
Dimoncheg >> :
¿Puedes decir cómo deletrear la condición en tu EA, para que sepa que la operación anterior fue deficitaria?

si (OrderProfit() < 0) {

...

}

 
Estimados expertos, por favor, no ignoren mi pregunta.

¿Existe algún indicador que cuente la volatilidad, por ejemplo diariamente? Pero no el que da un número indefinido como 0,34. Pero debería calcular el número de velas por día y dividirlo por un periodo determinado (número de días) para que el indicador conozca el valor medio. Ejemplo: Apertura 100, cierre 200; el segundo día - apertura 200, cierre 250. Volatilidad media para estos 2 días = ((200-100)+(250-200))/2 días=(100+50)/2=75
Donde descargar si está disponible.
Razón de la queja: