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

 
boris.45:

GRACIAS

Así que descargue los datos. Pulse F2, seleccione un par y descargue todo el historial en M1
 

¡Hola!

Por favor, aconseje cómo implementar una comparación de los valores del indicador con el precio de diferentes intervalos de tiempo (timeframe???????) en un EA. Pego el código. La búsqueda no dio nada, por más que pude leer este hilo (con 940). ¡¡¡Gracias de antemano!!!

//+------------------------------------------------------------------+
//|                                        expert SAR_1_5_15 min.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//---- input parameters
extern double    Lots=0.01;
extern int       StopLoss=300;
extern int       TakeProfit=150;
extern int       MagicNumber=123456;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
  
bool CheckOrders(int Type)
{
 bool Result=True;
 for(int i=0;i<OrdersTotal();i++)
  if(OrderSelect(i,SELECT_BY_POS))
   if(OrderMagicNumber()==MagicNumber && OrderSymbol() == Symbol())
      if(OrderType()==Type)
        {
         if(Type==OP_BUY)
           if(!OrderClose(OrderTicket(),OrderLots(),Bid,0))
             Result=False;
         if(Type==OP_SELL)
           if(!OrderClose(OrderTicket(),OrderLots(),Ask,0))
             Result=False;
         } 
        else Result=False;
 return(Result); 
}

// Проверяем наличие закрытой на текущей свече позиции типа Type. Если есть, то возвращает False  
bool CheckExists(int Type)  
{
 bool Result=True;
 for(int i=OrdersHistoryTotal()-1; i>=0;i--)
  if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
   if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderCloseTime()>=Time[0]&&OrderType()==Type)
    {
     Result=False;
     break;
     }
 return(Result); 
 }
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    // Узнаем уровень стопов и спрэд
    int Spread = MarketInfo(Symbol(), MODE_SPREAD);
    int StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);

    // Рассчитываем значения Parabolic,на 0-ом, 1-ом и 2-м барах для 1,5-ти,15-ти минутн. графиков
    double sar10 = iSAR(NULL,1,0.02,0.2,0);
    double sar11 = iSAR(NULL,1,0.02,0.2,1);
    double sar50 = iSAR(NULL,5,0.02,0.2,0);
    double sar51 = iSAR(NULL,5,0.02,0.2,1);
    double sar150 = iSAR(NULL,15,0.02,0.2,0);
    double sar151 = iSAR(NULL,15,0.02,0.2,1);
    double sar152 = iSAR(NULL,15,0.02,0.2,2);
        
   //-------------открытие позиции Buy покупка----------------- 
    if(
    (sar10>Open[0])&&    //  SAR 1 // сравниваем с ценой открытия
    (sar11>Close[0+1])&&    // минута и сравниваем с ценой закрытия
    (sar50>Open[0])&&         //  SAR 5
    (sar51>Close[0+1])&&      // минут
    (sar150>Open[0])&&        //  SAR 15
    (sar151>Close[0+1])&&    // минут
    (sar152<Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_SELL) && CheckExists(OP_BUY))
      {
       if(StopLoss <= StopLevel+Spread)
         double SL = 0;
        else
         SL = Ask - StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         double TP = 0;
        else
         TP = Ask + TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
    //-------------------Конец блока покупки -------------------
    
    //-------------Открытие позиции Sell продажа----------------  
    if(
    (sar10<Open[0])&&       //  SAR 1
    (sar11<Close[0+1])&&    // минут
    (sar50<Open[0])&&       //  SAR 5
    (sar51<Close[0+1])&&    // минут
    (sar150<Open[0])&&        //  SAR 15
    (sar151<Close[0+1])&&     // минут
    (sar153>Close[0+2])      // начало тренда
    )
     if(CheckOrders(OP_BUY) && CheckExists(OP_SELL))
      {
       if(StopLoss <= StopLevel+Spread)
         SL = 0;
        else
         SL = Bid + StopLoss*Point;
       if(TakeProfit <= StopLevel-Spread)
         TP = 0;
        else
         TP = Bid - TakeProfit*Point;
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 10, SL, TP, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//-----------------конец блока продажи ----------------------
   return(0);
  }
//+------------------------------------------------------------------+
 
¡Hola, respetados programadores!
Tengo un Asesor Experto que comercia por las escalas. El problema es que no siempre abre y cierra las posiciones correctamente, creo que por deslizamiento. Por favor, añada el parámetro Slippage al EA. Gracias
Archivos adjuntos:
 

Hola a todos.

¿Podría decirme cómo configurar este EA ? https://www.mql5.com/ru/code/9434

Quiero que abra la posición de cobertura o que cierre la posición con beneficio si llega a cierto menos o más.

No sé dónde cambiar los parámetros.

Allí hay parámetros: profitplus 1.0

beneficio mínimo -1,0

beneficio 1.0

No sé dónde cambiarlo.

No sé dónde cambiar los parámetros, gracias.

 

¿Puedes decirme dónde encontrar un EA que abra una posición en la apertura de una vela diaria?

cp.

 
glasha:
¡Hola, respetados programadores!
Tengo un Asesor Experto que comercia por las escalas. El problema es que no siempre abre y cierra las posiciones correctamente, creo que por deslizamiento. Por favor, añada el parámetro Slippage al EA. Gracias
Archivos adjuntos:
 
igrok2008:

¡Hola!

¿Puede usted por favor aconsejar cómo implementar una comparación de los valores del indicador con el precio de diferentes intervalos de tiempo (timeframe???????) en el Asesor de Expertos. Pego el código. La búsqueda no dio nada, por más que pude leer este hilo (con 940). Gracias de antemano.

Por lo que tengo entendido aquí es donde se compara. Si me equivoco, que me corrijan.

if(
(sar10>Open[0])&& // SAR 1 // comparar con el precio de apertura
(sar11>Close[0+1])&& // comparar con el precio de cierre
(sar50>Open[0])&& // SAR 5
(sar51>Close[0+1])&& // minutos
(sar150>Open[0])&& // SAR 15
(sar151>Close[0+1])&& // minutos
(sar152<Close[0+2]) // inicio de tendencia
)

 

1. cómo se coordina el programa en diferentes plazos en un real o en un probador.

Ejemplo: en la hora, observamos y buscamos una tendencia, en la media hora y por debajo de la (.) entrada/salida.

Gracias.

 
Buenas tardes gente, por favor aconsejen como puedo hacer este indicador de señal de cruce de EMA para que en cada cruce no emita un pitido sino los que yo quiera.
 
x8profit:
Hola chicos, ¿podéis decirme cómo hacer este indicador de señal de cruce de EMA para que en cada cruce emita no un pitido sino tantos pitidos como yo quiera?

No he mirado el código, pero lo primero que se me ha ocurrido: en la parte del código donde se genera un pitido, hacer un bucle y dar salida al número de sus iteraciones al externo. La señal se emitirá tantas veces como establezcas en los ajustes...

Aunque... Será una pausa en el trabajo del indicador con la duración de la señal *número de iteraciones del ciclo.